将fortran双精度格式读取为python


问题内容

我正在尝试将像1.2345D + 02这样的Fortran双精度数读入python,但出现以下错误:

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

通过遵循有关使用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

Python中是否有一种解决方案,可以在不将’D’更改为’E’的情况下读取那些双精度数字?

编辑:我替换了字符串上的错误语法。但是我仍然会出错。


问题答案:

这有什么错float(str.replace("D", "E"))

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

您似乎有 更深的目的 ,也许可以有所帮助。