我已经浏览了网络,无法找到答案,对不起,如果我错过了。
我试图简单地替换文件中的某些行,使用此修改后的文件执行某些操作,然后将其重写为其原始状态。所以我保留了基本文件的副本,修改了我需要做的事情,然后将基本文件重写为修改过的文件。
这是我的代码:
lines = open('fileToModify').readlines()
for i, line in enumerate(lines[:]):
if "STRING" in line:
lines[i] = line.replace("STRING", sys.argv[1])
if "STRING2" in line:
lines[i] = line.replace("STRING2", sys.argv[2])
pfile = open("fileToModify", "r+")
pfile.seek(0)
pfile.writelines(lines)
pfile.seek(0)
baseLines = open("baseFile").readlines()
pfile.writelines(baseLines)
pfile.close()
问题在于,当我将基本文件重写为修改后的文件时,基本文件的最后2个字符将被复制到修改后的文件的新行中。我不知道自己做错了什么,这对我来说真的很奇怪......
此外,如果有更好的方法来达到这个目的,我可以提出任何建议。
提前感谢!
答案 0 :(得分:1)
from shutil import copy
s1, r1 = "STRING", sys.argv[1]
s2, r2 = "STRING2", sys.argv[2]
with open("orig_file") as in_f, open("new_file", "w") as out_f:
for line in in_f:
out_f.write(line.replace(s1, r1).replace(s2, r2))
copy("new_file", "orig_file")