我想从高斯格式的检查点文件中读取许多数字。相应的部分如下所示:
Cartesian Force Constants R N= 17391
6.82119997E-01 1.28823797E-01 4.64548230E-01 8.16802733E-02 -2.63533593E-01
4.30400615E-01 -1.41139143E-01 4.62611793E-02 -7.32145345E-02 6.16655830E-01
...
N数表示我必须读取17391个双打,这些是3479行。该文件太大而无法读取所有行,我寻找更智能的解决方案。
到目前为止我尝试了什么: 我用for循环搜索表达式
fchk = open(filepath,'r')
for line in fchk:
if "Cartesian Force Constants" in line:
header = line
count = int(header[50:62])
Elements = np.empty([count],dtype=np.float_)
在此之后,如果我尝试在前一个for循环内部或外部读取更多行,我得到了
ValueError: Mixing iteration and read methods would lose data