python读取文件与多个分隔符

时间:2018-02-06 10:13:44

标签: python string numpy input

python中的另一个新手。

我正在尝试从文件中读取以下内容

  

000001 001,01 001,02 001,03 001,04 +83.44556 -4.42692396 +.0018912   -1.625533 +.0006944 -85.36787 +367.192620 +369.0000 20180130_141607 CH 01 GN 1 128

     

000002 001,01 001,02 001,04 001,05 +54.27095 -.719790446   +.0004728 -.2643017 +.0001736 +8.225120 +367.192620 +369.0000 20180130_141607 CH 02 GN 2 128

我尝试了以下命令

Z0=np.genfromtxt('1X21_DD_WN20180130_1114.Data',comments='#','!','R'],
skip_header=100,skip_footer=2)

但是数字001,01 001,02作为NAN返回。

我试过了

Z00=np.genfromtxt('1X21_DD_WN20180130_1114.Data',comments=
['#','!','R'],skip_header=100,skip_footer=2,delimiter=[' ',','])

但是我收到一条错误消息(Cannt使用灵活类型执行累积)

然后我去了以下路径

with open('1X21_DD_WN20180130_1114.Data', 'rb') as f:
    y=[[     line.replace(b',',b' ')    ] for line in f.readlines()[100:-3]]

返回y中的列表。但我不知道如何进行拆分。

现在我使用以下表达式

in_file=open('1X21_DD_WN20180130_1416.Data', 'rb')
readfile=in_file.readlines()[100:-3]
y2=np.zeros([17,1])
for line in readfile:
    y2=np.c_[y2,np.asarray(line.replace(b',',b' ').split())
    [0:17].astype(float)];

y2=y2[:,1:]
y2=y2.T  

必须有更好的方法 有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

无论如何,经过一些反复试验,我来到了这个

with open('1X21_DD_WN20180130_1416.Data', 'rb') as f:
    y=np.asarray([     line.replace(b',',b' ').replace(b'*',b'0').replace(b'TX',b'0').replace(b'Resist.',b'0').replace(b'out',b'0').replace(b'of',b'0').replace(b'range',b'0').split()[0:17]    for line in f.readlines()[100:-3]]).astype(float)