Как читать xer-файлы с помощью Python? - PullRequest
0 голосов
/ 18 сентября 2018

У меня есть несколько файлов Primavera .xer.Я могу открыть эти файлы в блокноте и вижу, что есть некоторые текстовые данные (они выглядят как данные базы данных).

Есть ли парсеры Python для этих файлов?

Ответы [ 2 ]

0 голосов
/ 19 декабря 2018

Формат Primavera P6 XER действительно уязвим для анализа модулем CSV. В основном это резервный формат с разделителями табуляции для реляционной базы данных.

Первая строка - это некоторая мета-информация о файле. После этого каждая строка начинается с кода, который сообщает, что содержит остальная часть строки:

  • % T дает название таблицы.
  • % F дает имена некоторых полей в этой таблице, все в одной строке.
  • % R - это запись для самой последней определенной таблицы.
  • % E - маркер конца файла.

Остальное полностью зависит от того, как вы хотите использовать данные. Со своей стороны, я сначала помещаю данные непосредственно в (свежую, новую) базу данных SQLITE, а потом беспокоюсь о приложениях.

0 голосов
/ 15 октября 2018

Не идеальное решение, но вы можете попробовать использовать MPXJ. MPXJ сам по себе является библиотекой Java, но при условии, что вы можете запустить отдельный процесс из вашего кода Python, вы можете заставить его конвертировать файл XER в JSON, который должен быть проще в использовании (этот подход используется в геме MPXJ Ruby, это просто оборачивая код Java, выполняющий преобразование, затем читая полученный JSON). Вы также должны найти структуру данных расписания в JSON, сгенерированную MPXJ, с которой проще работать, чем с содержимым файла XER, хотя у вас не будет доступа ко всем атрибутам в исходном файле XER.

Рубиновую версию этого процесса можно найти здесь . Подводя итог, командная строка будет выглядеть примерно так:

java -cp <classpath> net.sf.mpxj.sample.MpxjConvert your-file.xer your-file.json

Вам просто нужно установить поставку <classpath>, чтобы сообщить JVM, где находится MPXJ JAR и его зависимости.

...