我有一个看起来像这样的文件:
;
[ atomtypes ]
opls_BZCG BCG1 78.113999 0.000 A 2.9310E-01 1.9173E-01
[ moleculetype ]
; Name nrexcl
BZCG 1
[ atoms ]
; nr type resnr residue atom cgnr charge mass
1 opls_BZCG 1 BZCG BCG1 1 0 78.113999
我正在尝试使用 python 更改[ atomtypes ]标题下倒数第二个和最后一个字段中的值。交易是我正在运行一个迭代更新此文件的代码,因此我特别希望该字段成为目标,而不是正则表达式“2.931E-01”或“1.9173E-01”。我知道我们可以使用 awk 之类的东西,但我想知道这是否可以通过 python 本身实现。
到目前为止,这就是我正在做的事情:
flag = 0
with open("file.itp") as f:
for line in f:
iterable = line.strip().split()
if flag:
line.strip().split()[5] = sigma
line.strip().split()[6]) = eps
print("epsilon is {} and sigma is {}".format(eps, sigma))
if "atomtypes" in iterable:
flag = 1
else:
flag = 0
f.close()
我正在更改 python 中的值,但我无法将该更改发送到文件本身。我该如何解决这个问题?
您的任何建议将不胜感激!