我有一个 f1.txt 和 f2.po 文件,我想用 f1.txt 文件中的行替换此 f2.po 文件中的某些行(包含字符串“msgstr”)。
我的意思是,包含字符串“msgstr”的第一行应替换为.txt 文件中的第一行,包含字符串“msgstr”的第二行应替换为.txt 文件中的第二行。 我希望我能够完整地解释它。
我知道如何覆盖文件,但我不知道如何仅覆盖某些行。如果您能提供帮助,我将不胜感激。
您可以浏览
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)