我在"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')
如果我在这里做错了什么,请有人建议我。
答案 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