我有浮點數的以下字符串:轉換固定寬度,不可分隔的浮動字符串逗號分隔值
0.621464022829E+00-.143866495639E-020.266573765475E-02-.582189744480E-07
正如你所看到的,有這串數字之間沒有空格。我試圖讓他們csv。因此,我想他們看起來像:
0.621464022829E+00,-.143866495639E-02,0.266573765475E-02,-.582189744480E-07
有沒有辦法在python中做到這一點?我試圖用numpy讀取文件,例如:
>>> w=numpy.loadtxt('coord', dtype='float')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/dist-packages/numpy/lib/npyio.py", line 856, in loadtxt
items = [conv(val) for (conv, val) in zip(converters, vals)]
ValueError: invalid literal for float():
0.621464022829E+00-.143866495639E-020.266573765475E-02-.582189744480E-07
但是由於沒有空格,所以不可能。我也試過numpy.fromfile
這似乎讀取該文件,但它顯示了這一點:
>>> w=numpy.fromfile('coord', dtype='float')
>>> w
array([ 3.53728147e-057, 3.03226305e-100, 5.64351177e-038,
3.70004839e-033, 1.24395502e-047, 3.37923148e-057,
2.93531907e-086, 3.69971918e-057, 7.25394458e-043])
我會很高興,如果有人能在這個問題提供一些線索。
編輯:所選答案的作品,但我想補充一點,由@DSM提出的解決方案是艾利一樣好:
np.genfromtxt("file.dat", delimiter=18)
究竟是誰產生輸出這樣嗎? –
@LutzHorn我也這麼認爲...但至少不是我! – muammar