无法使用替换方法替换文件中的字符串

时间:2019-04-29 09:44:13

标签: python

无法替换文件中的字符串

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)   

我希望代码替换该文件中的字符串,但是我得到的是空文件

1 个答案:

答案 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)