Python 如何读取具有非常量的空格分隔值的文件

Python 如何读取具有非常量的空格分隔值的文件,python,pandas,Python,Pandas,概率:1 这是文件。正如您所看到的,第3行和第12行有一个非常长的变量,它也由空格分隔,但属于同一“类型”。 我试过: TIME M1 M2 K1 K2 SEP ECC R1/ROL1 R2/ROL2 TYPE 0.0000 30.000 15.000 1 1 6.9488e+05 0.00 0.000 0.000 INITIAL 0.0000 30.000 15.000 1 1 6.9488e+

概率:1

这是文件。正如您所看到的,第3行和第12行有一个非常长的变量,它也由空格分隔,但属于同一“类型”。 我试过:

TIME      M1       M2   K1 K2        SEP    ECC  R1/ROL1 R2/ROL2  TYPE
 0.0000   30.000   15.000  1  1   6.9488e+05  0.00   0.000   0.000  INITIAL 
 0.0000   30.000   15.000  1  1   6.9488e+05  0.00   0.000   0.000  PreMS aperi=694884 t1=0 f1=0 R1=7.74028 R1/RLperi1=2.53155e-05 R1/a(1-e)=1.11389e-05 t2=0 f2=0 R2=5.02787 R2/RLperi2=2.25555e-05 R2/a(1-e)=7.23555e-06 R1+2/aperi=1.83745e-05
 5.9523   27.735   14.912  2  1   7.3335e+05  0.00   0.000   0.000  TYPE_CHNGE
 5.9611   27.663   14.912  4  1   7.3459e+05  0.00   0.004   0.000  TYPE_CHNGE
 6.3588   14.790   14.903  4  1   1.0562e+06  0.00   0.004   0.000  q-inv
 6.4755   10.469   14.901  7  1   1.2381e+06  0.00   0.000   0.000  TYPE_CHNGE
 6.6301    9.158   14.897  8  1   1.3065e+06  0.00   0.000   0.000  TYPE_CHNGE
 6.6595    8.857   14.897 14  1            0 -1.00   0.000   0.000  TYPE_CHNGE
 6.6595    8.857   14.897 14  1            0 -1.00   0.000   0.000  DISRUPT 
 6.6595    8.857   14.897 14  1            0 -1.00   0.000   0.000  SN
 6.6595    8.857   14.897 14  1            0 -1.00   0.000   0.000  kick vk=392.824 vr=1.84982 theta=6.21052 phi=-0.146541 -> vn=390.999

 6.6595    8.857   14.897 14  1            0 -1.00   0.000   0.000  BEG_SYMB
12.7530    8.857   14.654 14  2            0 -1.00   0.000   0.000  OFF_MS
12.7530    8.857   14.654 14  2            0 -1.00   0.000   0.000  TYPE_CHNGE
12.7795    8.857   14.648 14  4            0 -1.00   0.000   0.000  TYPE_CHNGE
14.2105    8.857   10.438 14  5            0 -1.00   0.000   0.000  TYPE_CHNGE
14.2653    8.857    1.912 14 14            0 -1.00   0.000   0.000  TYPE_CHNGE
14.2653    8.857    1.912 14 14            0 -1.00   0.000   0.000  BEG_SYMB
14.2653    8.857    1.912 14 14            0 -1.00   0.000   0.000  q-inv
14.2653    8.857    1.912 14 14            0 -1.00   0.000   0.000  SN
20000.0000    8.857    1.912 14 14            0 -1.00   0.000   0.000  MAX_TIME
但它抱怨说:

ParserError:标记数据时出错。C错误:第12行预期有41个字段,SAW43

如何读取长值由空格分隔但属于同一变量的文件?
非常感谢您的帮助

预处理到一个临时文件中,然后用pandas读取该文件

import pandas as pd
pd.read_csv('c_log2.dat', delimiter='delim_whitespace=True').
输出:

from io import StringIO
import pandas as pd
import re

for_pd = StringIO()
with open('ale.csv') as ale:
    for line in ale:
        line = re.subn(r'\s+', ',', line.strip(), 9)
        print (line[0], file=for_pd)
for_pd.seek(0)

df = pd.read_csv(for_pd)
print (df.head())
     TIME      M1      M2  K1  K2        SEP  ECC  R1/ROL1  R2/ROL2  \
0  0.0000  30.000  15.000   1   1   694880.0  0.0    0.000      0.0   
1  0.0000  30.000  15.000   1   1   694880.0  0.0    0.000      0.0   
2  5.9523  27.735  14.912   2   1   733350.0  0.0    0.000      0.0   
3  5.9611  27.663  14.912   4   1   734590.0  0.0    0.004      0.0   
4  6.3588  14.790  14.903   4   1  1056200.0  0.0    0.004      0.0   

                                                TYPE  
0                                            INITIAL  
1  PreMS aperi=694884 t1=0 f1=0 R1=7.74028 R1/RLp...  
2                                         TYPE_CHNGE  
3                                         TYPE_CHNGE  
4                                              q-inv