srDFT_G2/Ref/Molecules/g09_zmat_to_qp_create.py

58 lines
1.2 KiB
Python
Raw Normal View History

2019-03-26 14:03:27 +01:00
#!/usr/bin/env python2
import sys
import os
def findall(sub, string):
"""
>>> text = "Allowed Hello Hollow"
>>> tuple(findall('ll', text))
(1, 10, 16)
"""
index = 0 - len(sub)
try:
while True:
index = string.index(sub, index + len(sub))
yield index
except ValueError:
pass
filepath = sys.argv[1]
basis = sys.argv[2]
icount = 0
zmat = []
with open(filepath, "r") as fp:
cipsi = []
for line in fp:
if (icount == 0 ):
a=line.split(',')
charge = int(a[0])
spin = int(a[1])
else:
a=line.split()
if(len(a)>0):
n=a[0].count(',')
if(n > 6):
listfind=list(findall(',', a[0]))
char=a[0]
a[0]=char[0:listfind[n-1]]
b=a[0].replace(',', ' ')
b=b.replace('=', ' ')
zmat.append(b)
else:
b=" "
zmat.append(b)
icount += 1
c = filepath.split('.')
file_origin = c[0]
ezfio = file_origin+".ezfio"
zmat_file = file_origin+".zmt"
file_zmat = open(zmat_file,"w+")
for l in zmat:
file_zmat.write(l +'\n')
print("qp_create_ezfio -m %s -c %s -b %s -o %s %s" % (spin,charge,basis,ezfio,zmat_file))