无法替换文件中的字符串
with open("dc_setup.tcl",'r+') as file:
for line in file:
if str0 in line:
line1=line
print(line1)
contents=file.read()
contents=contents.replace(line1,new_str)
file.seek(0)
file.truncate()
file.write(contents)
我希望代码替换该文件中的字符串,但是我得到的是空文件
答案 0 :(得分:1)
本节:
file.seek(0)
file.truncate()
file.write(contents)
正在覆盖整个文件,而不仅仅是当前行。通常,在原地编辑文本文件非常困难,因此通常的方法是写入新文件。完成后,您可以根据需要将新文件复制回旧文件。
with open("dc_setup.tcl") as infile, open("new_dc_setup.tcl", "w") as outfile:
for line in infile:
if old_str in line:
line = line.replace(old_str, new_str)
outfile.write(line)