楼主,我亲自给你code的标准答案:
——————————————————————
import numpy as np
import string
def readCube2Array(cubeFile):
f=open(cubeFile,'r')
lines=f.readlines()
i=-1
for l in lines:
i=i+1
if string.find(l,'E-')>0:
break
print i #找到第一行你需要存的数据
s=(''.join(lines[i:])).replace(" "," " #将所有双空格换成一个空格
s=s.replace("\n"," " #把所有换行符换成单个空格
dataArray=np.fromstring(s,dtype=double, sep=' ') #调用numpy把字符串转成double类型的数组
return dataArray #返回你要的数组
filename='test677-ref.cube' #这是我的测试文件,是一个高斯09自带的cube文件,有九万多行数据
dArray=readCube2Array(filename) #这就是你想要的结果,根本不用看进度,瞬间完成
——————————这个程序的执行时间我也看了————————————————
%timeit dArray=readCube2Array(filename)
30
30
30
30
1 loops, best of 3: 380 ms per loop
大概是380ms就能执行完一个cube文件的导出,我觉得绝对比你的程序块不止几十倍。
赶紧给分了,有问题给我留言,