Откройте .nml (файл списка имен fortran) в python (ValueError) - PullRequest
0 голосов
/ 27 июня 2019

Я использую f90nml, чтобы открыть файл .nml (файл списка имен Fortran) в python, используя этот код:

import f90nml
nml = f90nml.read('D:\data.nml')

Но он возвращает эту ошибку:

  File "D:\...\tokenizer.py", line 101, in parse
    raise ValueError

Моя папка также содержит файл .dtd. Изображение ниже является частью файла .nml (закрытая форма):

enter image description here

Как я могу импортировать этот тип файла в python и преобразовать его в фрейм данных?

Ответы [ 2 ]

0 голосов
/ 28 июня 2019

Мне кажется, что этот файл использует XML, а не Namelist файл. Файлы списка имен Fortran имеют тенденцию следовать структуре ниже

&Title
key1 = value1,
key2 = value2, 
/

f90nml предполагает, что файл содержит одну или несколько записей списка имен в приведенной выше форме.
Вы можете проанализировать XML-файл, используя встроенный в Python объект ElementTree . Затем сделайте все, что вам нужно, чтобы перевести его в формат базы данных.

0 голосов
/ 27 июня 2019

Сложно разобраться без полного набора данных, но я бы посоветовал взглянуть на pynml, поскольку он, кажется, обладает гораздо большей функциональностью, чем f90nml.https://pynml.readthedocs.io/pynml/pynml.manager.html

...