我想在特定行中编辑一个大文件。 所以在编辑之前先读取整个文件不是一个好主意,这就是为什么我不这样做 想要使用:
myfile.readlines()
我必须阅读每一行,检查其中是否有特殊内容,然后我必须编辑此行。
到目前为止,我正在阅读每一行:
file = open("file.txt","r+")
i = 0
for line in file:
if line ......:
//edit this line
//this is where i need help
file.close()
所以问题是: 如何在If语句中编辑当前行,例如: 如果当前行是“ test”,我想用“ test2”替换它,然后将“ test2”写回到文件中到“ test”所在的行
答案 0 :(得分:1)
这会有所帮助
import fileinput
with fileinput.FileInput(filename, inplace=True, backup='.bak') as file:
for line in file:
print(line.replace(text_to_search, replacement_text), end='')
答案 1 :(得分:0)
好吧,就像@EzzatA在问题下方的注释中提到的那样,这似乎是读取原始文件并使用编辑后的数据创建新文件的最佳方法。 像这样:
original_file = open("example.txt","r")
new_file = open("example_converted.xml","w")
string_tobe_replace = "test"
replacement_string = "test2"
for line in original_file:
if string_tobe_replace in line:
new_line = line.replace(string_tobe_replace,replacement_string)
new_file.write(new_line)
else:
new_file.write(line)
original_file.close()
new_file.close()