使用Python中的指数*解析表示float *的字符串

时间:2010-05-12 22:40:54

标签: python

我有一个大号文件,其中包含6,52353753563E-7形式的数字。所以在那个字符串中有一个指数。 float()死于此。

虽然我可以编写自定义代码来预处理字符串到float()可以吃的东西,但我正在寻找将这些转换为浮点数的pythonic方法(类似于传递到某处的格式字符串)。我必须说我很惊讶float()无法使用这样的指数来处理字符串,这是非常常见的事情。

我正在使用python 2.6,但如果需要,3.1是一个选项。

2 个答案:

答案 0 :(得分:13)

与指数无关。问题是逗号而不是小数点。

>>> float("6,52353753563E-7")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for float(): 6,52353753563E-7
>>> float("6.52353753563E-7")
6.5235375356299998e-07

有关一般方法,请参阅locale.atof()

答案 1 :(得分:1)

您的问题不在指数中,而在逗号中。 使用python 3.1:

>>> a = "6.52353753563E-7"
>>> float(a)
6.52353753563e-07