我想修改一個腳本。這對我來說很困難,所以我來求助。該腳本應該從一些.out
文件中提取數據,然後將它們寫入.txt
文件。問題是我有兩個不同的關鍵字來尋找。所以,我提供了腳本,我無法修改的東西,然後提供了兩個輸入文件的例子。如何修改這個腳本來搜索多個關鍵字?
#!/usr/bin/env python
# -*- coding: utf-8
#~ Data analysis
import glob, subprocess, shutil, os, math
from funciones import *
for namefile in glob.glob("*.mol2"):
lstmol2 = []
lstG=[]
os.chdir("some_directory")
searchprocess="grep -i -H 'CURRENT VALUE OF HEAT OF FORMATION =' *.out | sort -k 4 > firstfile.txt"
#~I need also to look for 'CURRENT BEST VALUE OF HEAT OF FORMATION ='
os.system(searchprocess)
fileout=open("results.txt","w")
filein=open("firstfile.txt", "r")
#~ write data in results.txt
fileout.write('\t %s \n' %(" HOF"))
for line in filein:
linediv=line.split()
HOF=float(linediv[8])
#~or [10] (for the keyword in need to add) but in both cases I need the float. I need both data of the keywords be included on this file.
lstG.append(HOF)
fileout.close()
filein.close()
輸入數據,類型1:
foofoofooofoofoofoofoofoo
foofoofooofoofoofoofoofoov
foofoofooofoofoofoofoofoo
CURRENT VALUE OF HEAT OF FORMATION = 1928
foofoofooofoofoofoofoofoo
foofoofooofoofoofoofoofoov
輸入數據,類型2:
foofoofooofoofoofoofoofoo
foofoofooofoofoofoofoofoov
foofoofooofoofoofoofoofoo
CURRENT BEST VALUE OF HEAT OF FORMATION = 1930
foofoofooofoofoofoofoofoo
foofoofooofoofoofoofoofoov
對我來說,用'HOF = float(linediv [8])'修改行到'linediv [-1]'應該可以工作,看起來它總是最後一部分。 –
謝謝.. @ PrestonHager,但我怎麼能找到這兩個關鍵字?我的意思是'形成熱的當前價值='和'當前形成熱的最佳價值=' – santimirandarp