将固定宽度的非定界浮点字符串转换为逗号分隔的值

妈妈

我有以下字符串的浮点数:

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) 
科里·克莱默(Cory Kramer)

看起来您受固定宽度值的限制,而不是定界的。您必须根据字符宽度将字符串切成薄片。

>>> s = '0.621464022829E+00-.143866495639E-020.266573765475E-02-.582189744480E-07'
>>> [float(s[i:i+18]) for i in range(0, len(s), 18)]
[0.621464022829, -0.00143866495639, 0.00266573765475, -5.8218974448e-08]

要读取csv,您可以执行以下操作

with open('file.csv') as f:
    data = [[float(line[i:i+18]) for i in range(0, len(line), 18)] for line in f.readlines()]

然后,您可以把它传递给numpy,如果你想

w = numpy.array(data)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将逗号或点字符串转换为单个

将字符串或列表的映射转换为值的字符串或逗号分隔的值

PHP将逗号分隔的字符串转换为点或符号分隔的值,以存储在MySql中

C将逗号分隔的字符串转换为数组

将int []转换为逗号分隔的字符串

将逗号分隔的字符串转换为HashSet

将逗号分隔的字符串转换为列表

将数组转换为逗号分隔的字符串

将逗号分隔的字符串转换为GetFiles SearchPattern

将逗号分隔的字符串转换为列表

将数组转换为逗号分隔的字符串

Python:将元组转换为逗号分隔的字符串

将Ints数组转换为逗号分隔的字符串

将逗号分隔的字符串转换为 JSON

将逗号分隔的字符串转换为数组

将逗号分隔的字符串转换为日期时间

将浮点值转换为不带小数点分隔符的字符串

将枚举值转换为逗号分隔字符串的最有效方法

Angular 10-将FormControl数组值转换为以逗号分隔的字符串

将包含逗号分隔值的字符串转换为整数

将 pandas 数据框列值转换为逗号分隔的字符串

如何将逗号分隔值的字符串转换为数组

将逗号分隔的值字符串转换为XML后,SQL Server过程过早完成

将字符串值转换为浮点值

合并张量并将字节字符串转换为浮点字符串

将字符串中的值列表(由两个不同的定界符分隔)转换为单独的行

无法将jTextfield字符串转换为浮点值。

将字符串从结构转换为浮点值

JS:将数组对象转换为点字符串