Alex Rivera | Logout

Python scientific notation using D instead of E

Asked 2009-12-24T17:52:22.957
19

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!

Edit
Report

1 Answer

9

Another option is the fortranformat library for Python. It will read strings and interpret them according to a FORTRAN format statement. i.e.

>>> import fortranformat as ff
>>> line = ff.FortranRecordReader('(F10.0)')
>>> line.read('1.5698D+03')
[1569.8]

Install with easy_install -U fortranformat

Any questions, email me (I'm the author).

answered 2011-07-11T23:11:35.473

Your Answer