将fortran双精度格式读入python

ilu*_*tar 7 python double fortran input

我试图读取一个Fortran双精度数字,如1.2345D + 02到python,但我得到以下错误:

>>> float('1.2345D+02')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for float(): 1.2345D+02
Run Code Online (Sandbox Code Playgroud)

通过使用D而不是E遵循Python科学记数法的建议,我尝试了numpy但我也得到了同样的错误:

import numpy
>>> numpy.float("1.2345D+02")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for float(): 1.2345D+02
Run Code Online (Sandbox Code Playgroud)

Python中是否有解决方案来读取那些双精度数而不仅仅将'D'更改为'E'?

编辑:我替换了字符串上的错误语法.但我仍然得到错误.

orl*_*rlp 5

怎么了float(str.replace("D", "E"))

请注意,numpy DOES支持fortran表示法:numpy.float("1.2345D+02").

你似乎有一些更深层的目的,也许揭示它会有所帮助.

  • 至少`numpy 1.5.1`*不支持`numpy.float("1.2345D + 02")`. (7认同)