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

2024-10-03 09:18:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我有文本文件(输入文件)在

*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:的解决方案都会删除文件中的所有内容并写入新的两行,这不是我需要的。在


Tags: 文件ofnode目标typeelementfileend
1条回答
网友
1楼 · 发布于 2024-10-03 09:18:36

这应该可以做到:

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复制到名为input.txtfile中,并对code进行了精确的测试,它给出了正确的output(即按照预期的方式更改了file),所以希望它也能为您工作!在

相关问题 更多 >