Mod:Hunt Research Group/MO energies
Appearance
python script to extract MO energies
#!/opt/local/bin/python3 # # get_MOenergy.py # # python3 script to # extract key data from gaussian log files for input into # excell spreadsheets for our database # # to run the script type # python3 get_MOenergy.py file.log # import sys import os # # check to see if the user has used the .log extenion or not # find returns -1 if the sub-string is not found, or the index of where the sub-string starts # we cut out the .log part if .log is found infile=str(sys.argv[1]) i_infile=infile.find('.log') if (i_infile == -1): base=infile else: base=infile[:i_infile] #endif log_file=base+'.log' f = open(log_file,'r') s='input file is ' print('{0:}{1:}'.format(s,log_file)) # set some basic parameters MOenergy = [] MOevenergy = [] MOnumber = [] MOenergy_search_string = 'Orbital energies and kinetic energies (alpha):' MOenergy_end_string = 'Total kinetic energy from orbitals=' go=False # read the file count=0 line=f.readline() #print('{0:}'.format(line)) while line: line=f.readline() # find where energies are if MOenergy_search_string in line: # print ('found txt') line=f.readline() go=True # endif # if MO energies are found while go: line=f.readline() # print('{0:}'.format(line)) if MOenergy_end_string in line: # print('stop') go=False else: tmp=line.rstrip().split() MOnumber.append(int(tmp[0])) MOenergy.append(float(tmp[2])) # print('{0:} {1:3d} {2:09.6f}'.format('step: ',MOnumber[count],MOenergy[count])) count=count+1 # endif # endif #endwhile s='total no MOs is ' print('{0:}{1:} \n'.format(s,count)) s='MO energy in au and eV' print('{0:}'.format(s)) x=0 while x < count : temp=MOenergy[x] * 27.2113 MOevenergy.append(temp) # print('{0:3d},{1:9.6f},{2:9.6f}'.format(MOnumber[x],MOenergy[x],MOevenergy[x])) x=x+1 #endwhile #s='\n suitable for copying to excel:' #print('{0:} \n'.format(s)) x=0 while x < count : print(' {0:3d}, {1:9.6f}, {2:9.6f}'.format(MOnumber[x],MOenergy[x],MOevenergy[x])) x=x+1 #endwhile # finish up f.close() sys.exit()