如何在特定匹配中写入文件

时间:2013-05-27 12:55:30

标签: python

我在"C:\Temp"位置有一个文件,文件名为arun.txt。该文件的内容如下所示

test=
pqr=
lmn=

我想找到'pqr ='的行,并将其修改为'pwr = xyz'

我对python不是很专业。

但是我编写了以下代码,但它既没有做任何事情也没有返回任何错误。

f = open('C:\Temp\arun.txt', 'r+')
        for line in f.readline():
                if line == "pqr=":
                        f.write('pqr=xyz')

如果我在这里做错了什么,请有人建议我。

2 个答案:

答案 0 :(得分:1)

with open("input.txt") as input, open("output.txt", "w") as output:
    for line in input:
        if line.startswith("pqr="):
            output.write("pqr=xyz\n")
        else:
            output.write(line)

答案 1 :(得分:1)

带有参数inplace=True

fileinput.input将您的print语句重定向到临时文件,该文件将重命名为原始文件以允许进行现场编辑。

for line in fileinput.input('Temp', inplace=True):
    line = line.rstrip('\n')
    if line == 'pqr=':
        print line + 'xyz'
    else:
        print line

默认情况下,临时文件是原始文件名+ '.bak'。这使得程序进程安全,而不是仅使用out.txt作为文件名,因为您可能决定在另一个文件上运行此程序,这可能会在您写入时覆盖out.txt。另一种安全方法是重命名tempfile.NamedTemporaryFile