<pre><code>import os
import re
import csv
import sys
h=open("geoList.txt","r")
totallog=[]
for line in h:
if line.startswith('Receptor Name:'):
prefix=line
elif re.search(r'^\s+\d', line):
totallog.append(re.sub(r'\s+',';',((str(re.findall(r'\d+',((prefix.strip().split("/")[-1])[:-10]).split(".")[0]))+(prefix.strip().split("/")[-1])[:-10]+line).replace("']",";")).replace("['",'').strip()))
with open("Hi.CSV", 'wb') as csvfile:
logwriter = csv.writer(csvfile, quoting=csv.QUOTE_MINIMAL)
logwriter.writerow(['MUTANTPOSITION','MUTANT','RANK','AFFINITY (kcal/mol)','DistFromRmsd l.b.','BestModeRmsd u.b.'])
k=sorted(totallog,key=lambda x:float(x.split(';')[-3]))
for i in k:
logwriter.writerow(i.split(';'))
</code></pre>
<p>输出为:</p>
<pre><code>MUTANTPOSITION,MUTANT,RANK,AFFINITY (kcal/mol),DistFromRmsd l.b.,BestModeRmsd u.b.
151,Receptor,Name:I151T.B99990002,1,-10.7,0.000,0.000
151,Receptor,Name:I151T.B99990002,2,-10.4,1.859,3.037
151,Receptor,Name:I151T.B99990002,3,-10.1,1.992,3.474
151,Receptor,Name:,I151T.B99990001,1,-9.5,0.000,0.000
151,Receptor,Name:,I151T.B99990001,2,-9.4,2.083,3.784
151,Receptor,Name:,I151T.B99990001,3,-9.0,2.471,8.360
151,Receptor,Name:,I151T.B99990001,4,-9.0,1.493,3.523
</code></pre>