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

Python 无法使用replace方法替换文件中的字符串,python,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)

无法替换文件中的字符串

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)   
我希望代码替换该文件中的字符串,但我得到的是空文件

此部分:

file.seek(0)
file.truncate()
file.write(contents)
正在覆盖整个文件,而不仅仅是当前行。在位编辑文本文件通常相当困难,因此通常的方法是写入新文件。如果愿意,可以在完成后将新文件复制回旧文件

以open(“dc_setup.tcl”)作为填充,open(“new_dc_setup.tcl”,“w”)作为输出文件:
对于填充中的线:
如果旧的_str在直线上:
行=行。替换(旧的、新的)
输出文件。写入(行)

首先,不知道什么是新的。其次,如果
new\u str
是一个有效字符串,您可以在替换前后先通过
print(contents)
检查内容。print(contents)不会在替换前后打印任何内容。而且,新的字符串是有效的字符串。如果在替换之前未打印内容,则文件可能为空。检查文件内容,通过单独读取文件并查看内容来隔离问题。