0

我在"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')

如果我在这里做错了什么,任何人都可以建议我。

4

2 回答 2

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)
于 2013-05-27T12:58:14.993 回答
1

fileinput.inputwith 参数inplace=True将您的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

于 2013-05-27T12:58:56.100 回答