【发布时间】:2013-08-13 12:00:38
【问题描述】:
我有 2 个文件名为:
inp1:
recev: Na Sod B 1
accept: F Fluorin B 91 R-A = 12.44
I Iodin C 22 R-A = 22.11
Cl chlorine D 21 R-A = 24.21
recev: Mg Mag C 3
accept: F Fluorin B 82 R-A = 91.00
Mn Mangan C 23 R-A = 12.30
...(100+ lines)
inp2:
recev: Na Sod B 1 H-atom: H Hydrogen D 2
recev: Mg Mag C 3 H-atom: H Hydrogen N 3
...(100+lines)
现在,我试图用inp2 文件中的行替换inp1 中的recev 行,并放置像if len(lines) == 5 : (then replace) 这样的搜索条件。但请就如何有效替换维护inp1 文件中的所有格式提出任何想法。
期望的结果:
recev: Na Sod B 1 H-atom: H Hydrogen D 2
accept: F Fluorin B 91 R-A = 12.44
I Iodin C 22 R-A = 22.11
Cl chlorine D 21 R-A = 24.21
recev: Mg Mag C 3 H-atom: H Hydrogen N 3
accept: F Fluorin B 82 R-A = 91.00
Mn Mangan C 23 R-A = 12.30
【问题讨论】:
-
您能否展示一下您想要的结果,以及您尝试过什么?
-
inp2中的条目是否与inp1中的条目顺序相同?您是否需要担心inp2中的条目在inp1中不匹配?是否只有recev:行会被更改?大概,您正在寻找标准输出上的修改数据,并且会让其他代码担心覆盖文件?总是inp2中条目的前五个字段必须与inp1中的条目匹配,还是基于少于5 个字段的匹配?为什么Cl chlorine行的格式不正确(氯的小写 c;与其他行相比,R-A=24.21周围的间距奇数)? -
耶!到目前为止,我已经生成了将在“inp2”中以与“inp1”中相同的顺序提供所有数据的代码。是的,我只想更改“recev:”行,这就是我尝试使用“if 循环”的原因。
标签: python string-formatting file-handling