我一直在尝试使用for循环修改文本文件中的特定单词。我希望在Fe.in文件中更改的单词是>latt_par。我想为列表中的每个vol值创建一个文件。然而,我只是不断地得到最后一个"3.05〃;。有什么方法可以指引我吗?我从Python开始。
这是我的代码
vols = [2.65, 2.85, 3.05]
temp = [100,200,300]
for x in vols:
f = open('Fe.in','r')
filedata = f.read()
f.close()
newvol = filedata.replace("latt_par", str(x))
f = open('Fe_' + str(x) +'.in','w')
f.write(newvol)
f.close()
我还想替换文件Fe.in中的另一个字符串,我想在变量temp上运行它,但我一直没能。非常感谢您的帮助!
with open('Fe.in','r') as msg:
data = msg.read()
for x in vols:
wdata = data.replace("latt_par", str(x))
with open('Fe_' + str(x) +'.in','w') as out_msg:
out_msg.write(wdata)
类似地,您不需要打开模板N次,并且with
方法允许不关闭文件而不会出现任何问题。