I have a file that looks like this:
;
[ 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
I am trying to use python to change the values in the second last and last field under the [ atomtypes ]
title. The deal is that I am running a code which iteratively updates this file, so I specifically want that field to be targeted, not the regular expression "2.931E-01" or "1.9173E-01". I know we can use things like awk, but I was wondering if this is possible from python itself.
This is what I am doing so far:
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()
I am changing the value in python, but I am not able to send that change to the file itself. How do I pull this off?
Any advice you have would be appreciated!