如何在Python中同时读取和写入文本文件?

Dj_*_* 96 5 python regex mod-rewrite text-files

我正在尝试打开一个文本文件,读取它,然后使用正则表达式函数查找要编辑的行,然后修改我的文本文件。然而,发生的情况是,找到行并编辑它们后,我无法再次在文本文件中写入修改后的内容。

remove_commas = re.compile("House")
answer = {}

global line1

with open("\DEMO_houses.txt", "r") as inp:

    for line in inp:
        if remove_commas.match(line):

            line1 = line.replace(',', '')
            print line1

with open("DEMO_houses.txt", "w") as document1:
        document1.write(line1)
Run Code Online (Sandbox Code Playgroud)

发生的情况是,它只是删除我的文本文件,并只写入修改后的第一行。

文本文件是这样的:

Street : Blue, Red
House: Big, enough
Garden : green, not green
Run Code Online (Sandbox Code Playgroud)

在新的文本文件中我需要类似的内容:

Street : Blue, Red
House: Big enough
Garden : green, not green
Run Code Online (Sandbox Code Playgroud)

如果有人可以帮助我,我将非常感激。谢谢

Sve*_*ris 3

您可以尝试以下操作,目前的问题是您仅存储和写入修改行的最终出现,而是最好在内存中创建修改文件的副本,然后写出(见下文)

remove_commas = re.compile("House")
answer = {}

with open("\DEMO_houses.txt", "r") as inp:
    new_file_lines = []
    for line in inp:
        if remove_commas.match(line):
            line = line.replace(',', '')
        new_file_lines.append(line)

with open("DEMO_houses.txt", "w") as document1:
        document1.writelines(new_file_lines)
Run Code Online (Sandbox Code Playgroud)