Есть ли пакет Python для разбора читаемых файлов данных с разделами

1

Я ищу метод для разбора читаемых (т.е. не двоичных) файлов данных с разделами.

Я использовал ConfigObj для чтения конфигурационных файлов (INI файлов?), но у меня возникла проблема с многострочными списками. В частности, ConfigObj не позволяет членам списка содержать возврат каретки. Другими словами, следующее не удается проанализировать:

[section]
data = [(1, 0.1),
        (2, 0.2),
        (3, 0.3)]

Удаление каретки возвращает проблему

[section]
data = [(1, 0.1), (2, 0.2), (3, 0.3)]

Очевидно, я мог бы просто использовать это простое исправление, но удобство чтения значительно ухудшается, когда данные выходят за пределы одной строки. Есть ли альтернативный синтаксический анализатор конфигурационных файлов, который будет работать здесь?

В качестве альтернативы, существуют ли синтаксические анализаторы для файлов csv с разделами? Например, что-то, что могло бы анализировать

[data1]
1, 0.1
2, 0.2
3, 0.3

[data2]
1, 0.1
2, 0.2
3, 0.3

Я рассматривал файлы JSON, но я был не совсем доволен внешним видом файлов данных.

ПРИМЕЧАНИЕ: столбцы 1, 2, 3 просто для иллюстрации: я не намерен сохранять номера строк.

Теги:
csv
parsing

3 ответа

3
Лучший ответ

Взгляните на файлы YAML. Для чтения есть модуль Python, называемый pyyaml. Я считаю, что YAML довольно читабельна.

  • 0
    Спасибо, я раньше сталкивался с YAML, но никогда не пробовал. Я действительно легко смог его запустить и запустить на простом наборе данных.
2

ConfigParser - это еще один стандартный библиотечный модуль, который должен позволить вам читать такие файлы:

[section]
data = 
     row1, 1, 2
     row2, 2, 3
     row3, 3, 4
  • 0
    Спасибо! Вы правы, ConfigParser работает так, как вы предлагаете. Я закончил тем, что пошел с YAML, как предложили Джим и Радомир (они были первыми :). Кроме того, у меня есть несколько неприятных раздражений с интерфейсом ConfigParser (именно поэтому я использовал ConfigObj).
  • 0
    К счастью, ConfigParser работает и совершенствуется, поэтому ваши неприятности могут исчезнуть через несколько месяцев (и за годы до того, как эта версия python станет популярной).
0

Если не json, то, возможно, YAML? http://pyyaml.org/

Ещё вопросы

Сообщество Overcoder
Наверх
Меню