繁体   English   中英

如何使用 Python 读取 xer 文件?

[英]How to read xer-files using Python?

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

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

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

第一行是关于文件的一些元信息。 此后,每一行都以一个代码开头,该代码说明该行的其余部分包含的内容:

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

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

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

可以在此处找到此过程的 ruby​​ 版本。 总而言之,命令行将如下所示:

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

您只需要设置提供<classpath>来告诉 JVM MPXJ JAR 及其依赖项的位置。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM