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

Luc*_*cas 6 python

我有一个大型文件,其中包含数字6,52353753563E-7.所以在那个字符串中有一个指数.float()死在这上面.

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

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

Joh*_*hin 14

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

>>> 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
Run Code Online (Sandbox Code Playgroud)

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