24小时热门版块排行榜    

查看: 2758  |  回复: 24
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

秋雨子

金虫 (小有名气)

[求助] homo和lumo批量提取的脚本

最近在弄一批分子,一万个左右 ,想提取其中的homo和lumo能量值,但是发现很难实现,因为才接触脚本半年,还是自学的,所以搞不定了,有哪位大侠给个小脚本?我只会一点shell,提取个Energy还行,homo和lumo不好提取,若可以分享一下不胜感激!
回复此楼
To the time to life, rather than to life in time
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

asaka

银虫 (初入文坛)

★ ★ ★ ★ ★
zhou2009(金币+5): 2011-12-11 20:11:34
shell版实在是太慢,既然要用到python,那就纯python吧,速度快多了。
CODE:
#!/usr/bin/env python
import sys
block='Population'
eigen='eigenvalues'
occst='occ'
virst='vir'
sepst='--'
for filename in sys.argv[1:] :
  f=open(filename,'r')
  txt=f.read().splitlines()
  f.close()
  for line in txt :
    if line.find(block) > -1 or line.find(eigen) > -1 :
      if line.find(block) > -1 :
        eocc=[]
        evir=[]
      elif line.find(occst) > -1 :
        data=line.split(sepst)[1]
        eocc=eocc+[float(i) for i in data.split()]
      elif line.find(virst) > -1 :
        data=line.split(sepst)[1]
        evir=evir+[float(i) for i in data.split()]
  print "File :",filename
  if len(eocc) > 0 : print "  HOMO :",max(eocc)
  if len(evir) > 0 : print "  LUMO :",min(evir)

11楼2011-12-09 17:40:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 25 个回答

秋雨子

金虫 (小有名气)

没有人回复呢 ?!
To the time to life, rather than to life in time
2楼2011-12-06 14:11:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

秋雨子

金虫 (小有名气)

3楼2011-12-07 11:23:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

abbott

金虫 (著名写手)

不要用QQ问我东西

★ ★
小红豆(金币+2): 感谢交流。 2011-12-14 18:07:53
你先贴一个样板文件,,,,
否则谁知道你要从什么文档中提取你要的东西啊.
Chemistry[]==[]Chem[]is[]try!!!
4楼2011-12-08 10:57:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见