Pregunta

Algunas archivo de resultados producidos por los programas Fortran informar los números de precisión doble (en notación científica) utilizando el D carta en lugar de E, por ejemplo:

1.2345D+02
# instead of
1.2345E+02

necesito para procesar enormes cantidades de datos utilizando Python, y me he dado cuenta de que no puede leer los números en la notación D, por ejemplo:

>>> A = 1.0D+01
  File "<stdin>", line 1
    A = 1.0D+01
           ^
SyntaxError: invalid syntax

¿Puedo cambiar la configuración regional y dejar que Python sabe que significa D E? Realmente no me gustaría hacer una búsqueda global y reemplazar!

¿Fue útil?

Solución

La forma más sencilla, desde el programa de Python, sería sólo para añadir un paso antes de interpretar cada entrada:

>>> val = "1.5698D+03"  # 1,569.8
>>> print float(val.replace('D', 'E'))
1569.8

Otros consejos

Si se trata de una gran cantidad de datos y / o están haciendo mucho cálculos con esos datos, es posible considerar el uso del FORTRAN de usar numpy módulo que soporta el formato FORTRAN de doble precisión fuera de la caja.

>>> numpy.float('1.5698D+03')
1569.8
scroll top