在 Python 中用不同文件中的行替换文件中的特定行

问题描述 投票:0回答:1

我有一个 f1.txt 和 f2.po 文件,我想用 f1.txt 文件中的行替换此 f2.po 文件中的某些行(包含字符串“msgstr”)。

我的意思是,包含字符串“msgstr”的第一行应替换为.txt 文件中的第一行,包含字符串“msgstr”的第二行应替换为.txt 文件中的第二行。 我希望我能够完整地解释它。

我知道如何覆盖文件,但我不知道如何仅覆盖某些行。如果您能提供帮助,我将不胜感激。

python file file-writing
1个回答
0
投票

您可以浏览

f2.po
的每一行,只要这一行包含
"msgstr"
,请致电
readline
询问
f1.txt
中的相应行:

import fileinput

with (
    open("f1.txt", "r") as f1,
    fileinput.input(files=("f2.po"), inplace=True) as f2
):
    for line in f2:
        if "msgstr" in line:
            print(f1.readline(), end="")
        else:
            print(line, end="")

如果您不想就地修改

f2.po
,请添加第三个
open
:

with (
    open("f1.txt", "r") as f1,
    open("f2.po", "r") as f2,
    open("f3.po", "w") as f3
):
    for line in f2:
        if "msgstr" in line:
            f3.write(f1.readline())
        else:
            f3.write(line)
© www.soinside.com 2019 - 2024. All rights reserved.