Python 替换文本文件循环中的字符串

Python replace string in loop for a text file

我一直在尝试使用 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 方法允许不关闭文件没有麻烦。