如何使用Python读取xer文件?

时间:2018-09-18 07:37:37

标签: python primavera

我有一些Primavera .xer文件。 我可以在记事本中打开这些文件,然后看到有一些文本数据(看起来像数据库数据)。

这些文件是否有Python解析器?

3 个答案:

答案 0 :(得分:0)

不是理想的解决方案,但是您可以尝试使用MPXJ。 MPXJ本身是一个Java库,但是假设您可以从Python代码启动一个单独的进程,则可以将其转换为XER文件为JSON,这应该更容易使用(这是MPXJ Ruby gem所采用的方法,包装执行转换的Java代码,然后读取结果JSON)。您还应该发现MPXJ生成的JSON中的计划数据结构比XER文件的内容更易于使用,尽管您无法访问原始XER文件中的每个属性。

此过程的红宝石版本可以在here中找到。总而言之,命令行如下所示:

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

您只需要设置供应<classpath>即可告诉JVM MPXJ JAR及其依赖项在哪里。

答案 1 :(得分:0)

Primavera P6 XER格式确实容易受到CSV模块分析的影响。它基本上是关系数据库的制表符分隔的备份格式。

第一行是有关文件的一些元信息。此后,每一行都以一个代码开始,该代码告诉该行的其余部分包含什么:

  • %T给出表的名称。
  • %F给出该表中某些字段的名称,全部都在一行上。
  • %R是最近定义的表的记录。
  • %E是文件结束标记。

其余部分完全取决于您要如何使用数据。就我而言,我首先将数据直接放入(新的)SQLITE数据库中,然后再担心应用程序。

答案 2 :(得分:0)

我知道有点晚了。但是,我一直在寻找类似的答案,但我找不到。所以,我开始开发一个名为 PyP6XER 的开源包。你可以 pip install 或者在 github 上贡献开发 https://github.com/HassanEmam/PyP6Xer

请注意,该软件包仍处于早期阶段,并且没有很好的文档记录。