从python中的文本文件的一部分解析双精度数

时间:2014-05-18 09:18:17

标签: python parsing io

我想从高斯格式的检查点文件中读取许多数字。相应的部分如下所示:

 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

0 个答案:

没有答案