Some results file produced by Fortran programs report double precision numbers (in scientific notation) using the letter D
instead of E
, for instance:
1.2345D+02
# instead of
1.2345E+02
I need to process huge amounts of this data using Python, and I just realized it cannot read the numbers in the D
notation, for instance:
>>> A = 1.0D+01
File "<stdin>", line 1
A = 1.0D+01
^
SyntaxError: invalid syntax
Can I change my locale and let Python know that D
means E
? I really would not want to make a global search-and-replace!
The simplest way, from your Python program, would be just to add a step before you interpret each entry:
If you are dealing with lots of data and/or are doing a lot computations with that data, you might consider using the fortran-friendly numpy module which supports double-precision fortran format out of the box.
Another option is the fortranformat library for Python. It will read strings and interpret them according to a FORTRAN format statement. i.e.
Install with
easy_install -U fortranformat
Any questions, email me (I'm the author).