def readFile(path):
#R
with open(path,"r+") as f:
for line in f:
print(line)
f.close()
print("读文件完成")
path="D:\\tmp\\manim\\file\\1.txt"
readFile(path)
查找字符串位置,str.find(target) 返回起始点位置如果是-1则表示不存在
"123WWW".find("WWW")
文件指针偏移到指定位置
#文件路径,原字符串,要替换成的目标字符串
def replaceText(filePath,sourceText,targetText):
if(len(sourceText)!=len(targetText)):
raise Exception("原始字符串长度与目标字符串不符,容易覆盖有用信息", sourceText,targetText)
with open(filePath,'r+') as f:
line=f.readline()
index=0
# 遇到中间空行的可以自行观察并不是空字符串
while ( line!=""):
print(line)
# 本行内字符串所在位置
windex=line.find(sourceText)
if(windex!=-1):
print("windex={}".format(windex))
print("当前位置:{},替换内容起点:{}".format(f.tell(),index+windex))
f.seek(index+windex)
f.write(targetText)
# f.flush()
f.seek(index)
# 返回当前文件指针,应该是新一行的开始位置
index=f.tell()
line=f.readline()
f.close()
print("文件修改完毕")
创建一个内嵌变量的字符串,指定字符串替换掉变量。
Python并没有对在字符串中简单替换变量值提供直接的支持。 通过使用字符串的 format() 方法来解决这个问题。比如:
或者,如果被替换的变量能在变量域中找到, 那么可以结合使用 format_map() 和 vars() 。就像下面这样:
format() 和 format_map() 的一个缺陷就是它们并不能很好的处理变量缺失的情况,比如:
在python3中,有一种可读性更强,更方便的替代方法,在字符串前加 f ,需要被替代的变量外加花括号 {} ,其命名与替代变量的名称相同
多年以来由于Python缺乏对变量替换的内置支持而导致了各种不同的解决方案。在Python3中,推荐使用在字符串前加 f 的方法。
defrep_split(infile,spliter,repter):\x0d\x0awithopen(infile,'r')assp_file:\x0d\x0aforlineinsp_file:\x0d\x0anewline=line[::-1].replace(spliter,repter,1)[::-1]\x0d\x0aprint(newline)\x0d\x0a#open('out.txt','a').writelines(outline)\x0d\x0a\x0d\x0arep_split('1kk.txt','\\','')\x0d\x0a\x0d\x0a函数参数说明:第一个为输入文件,第二个为需要替换的分隔符,第三个为目标替换符号\x0d\x0a效果如下\x0d\x0a>>>\x0d\x0aa\b\cccddd\x0d\x0a\x0d\x0axxx\yzzz\x0d\x0a\x0d\x0aqw