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
对于内联编辑文件很有用。
替换文件中的行时遇到问题。不确定更改是否未写入文件或数据行是否未被替换。 以下是我尝试执行此操作的方法:
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
对于内联编辑文件很有用。