用新文本替换两行之间的文本,并保持文件的其余部分不变

时间:2017-10-29 19:22:52

标签: python

我有文本文件(input.txt)

*HEADING
*NODE, NSET=ALLNODES
   1,   0.000000e+00,   0.000000e+00,   0.000000e+00
   2,   2.500000e-01,   0.000000e+00,   0.000000e+00
*ELEMENT, TYPE=S9R5, ELSET=EB1
  ...
  ...
  ...
  ...
 **
 * END OF FILE

我的目标是用换行替换行(*ELEMENT, TYPE=S9R5, ELSET=EB1)和(**)之间的所有行。

并保持文件的其余部分不变。使用:open('input.txt', 'w') as f1:的任何解决方案都会删除文件中的所有内容并编写新的两行,这不是我需要的。

1 个答案:

答案 0 :(得分:1)

这应该做的工作:

text = open("input.txt", "r").read()
with open("input.txt", "w") as f:
    for line in text.split("\n"):
        if "line 1" in line:
           line = line.replace("line 1", "line 3")
        elif "line 2" in line:
           line = line.replace("line 2", "line 4")
        f.write(line + "\n")

我将您的file复制到名为file的{​​{1}}并完全测试了input.txt,并给出了正确的code(即更改了output 1}}以预期的方式),所以希望它也适合你!