编辑大文件中的特定行

时间:2018-09-20 07:44:22

标签: python

我想在特定行中编辑一个大文件。 所以在编辑之前先读取整个文件不是一个好主意,这就是为什么我不这样做 想要使用:

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”所在的行

2 个答案:

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