У меня есть выход из старого кода на языке Фортран 77. Выход написан сЧтение вывода по умолчанию Fortran в Python
write(NUM,*)
линии. Так что в основном, формат по умолчанию. Ниже приводится часть вывода:
1.25107598E-67 1.89781536E-61 1.28064971E-94 5.85754394-118 8.02718071E-94
У меня был инструмент пост-обработки написаны в F77 и READ(NUM,*)
читать входной файл правильно, как:
1.25107598000000E-67 1.89781536000000E-61 1.28064971000000E-94 5.85754394000000E-118 8.02718071000000E-94
Проблематика номер 5.85754394-118
. Он будет правильно читать, так как это означает 5.85754394E-118
в F77.
Однако, теперь я написал пост-обработки в Python и у меня есть следующий код:
Z = numpy.fromstring(lines[nl], dtype=float, sep=' ')
, который будет считывать выходную линию по линии (через петлю на nl
). Но когда он достигнет номера 5.85754394-118
, он перестанет читать, перейдя на следующую строку вывода и в основном прочитав неправильный номер. Есть ли способ прочитать его правильным способом (по умолчанию Fortran)? Я угадаю, мне нужно изменить опцию dtype
, но у вас нет подсказки.
Вы имеете в виду, что вам не удалось обработать свой странно отформатированный номер? –
Да! это правильно –
Можете ли вы немного изменить код Fortran, который пишет коррумпированное значение? См. Http://stackoverflow.com/questions/24004824/for-three-digit-exponents-fortran-drops-the-e-in-the-output –