在原来的文件直接替换文本
使用fileinput在文件上直接替换:
#!/usr/bin/env python3
import fileinput
with fileinput.FileInput(fileToSearch, inplace=True, backup='.bak') as file:
for line in file:
print(line.replace(textToSearch, textToReplace), end='')
这种方法会把标准输出stdout重定向到文件。参数end=''是避免在文件末尾换行。
在缓存里替换
#读取文件内容到缓存里
with open('file.txt', 'r') as file :
filedata = file.read()
# 替换目标字符串
filedata = filedata.replace('old_text', 'new_text')
# 重新把替换后的字符串写回文件里
with open('file.txt', 'w') as file:
file.write(filedata)
这种方式不适合处理大文件,另外可以考虑把替换后的字符串写到新的文件里。
逐行读取,并替换
f1 = open('file1.txt', 'r')
f2 = open('file2.txt', 'w')
for line in f1:
f2.write(line.replace('old_text', 'new_text'))
f1.close()
f2.close()