Python 没有写入文件

Python doesn't write in file

替换文件中的行时遇到问题。不确定更改是否未写入文件或数据行是否未被替换。 以下是我尝试执行此操作的方法:

filename = "filename.txt"
f = open(filename, "r+")

lines = [line1, line2, line3]

for line in lines:
    data = f.read()
    new_line = "some new line"
    data.replace(line, new_line)

f.write(data)
f.close()

问题可能出在哪里?

replace 函数不会更改对象本身,但会 returns 一个新字符串。所以你需要的是:

data = data.replace(line, new_line)

根据 Roger 的评论,您的代码应如下所示:

filename = "filename.txt"
f = open(filename, "r+")

lines = [line1, line2, line3]
data = f.read()

for line in lines:
    new_line = "some new line"
    data = data.replace(line, new_line)

f.write(data)
f.close()

希望对您有所帮助。

import fileinput 

for line in fileinput.input( filename , inplace = 1 ):
   print line.replace("SOMETHING", "SOMETHING ELSE" ), # catch for double line breaks

对于内联编辑文件很有用。