用于解析格式化文本文件的Pythonic方法

时间:2015-08-13 11:03:28

标签: python parsing text-files

以我正确的方式学习python我希望以这种方式解析文本文件:

game (
    name "Chess (1981)(M.C. Rakaska, S.W. Huggins) [Strategy, Chess].zip"
    file ( name Chess.bas size 19129 date 2007/01/31 19:46:20 crc 50577473 )
    file ( name Chess.exe size 46464 date 1998/12/25 19:46:00 crc 826d1c0d )
    file ( name file_id.diz size 198 date 2014/11/23 07:53:32 crc 72399680 )
)

有多个条目。

AFAIK在这里和那里阅读后,有很多方法可以做到这一点。我可以手工解析(strippin,查找数据等),我可以使用某种regexp来解析行,即使我找到了一个模块PyParse(对我来说有点复杂)。

我确信有更多的pythonic方式可以手动完成,也许使用PyParse?手工完成它似乎是一个快速的黑客......

这些文件来自zip文件,许多都在50MB左右,但我已经解决了将文本文件加载到内存中并剥离标题的问题。

任何正确的方法提示?

1 个答案:

答案 0 :(得分:0)

基本上它取决于数据的不规范性。 我可以在这里看到两个并发症;

  1. 游戏名称被双引号括起来。但是,如果名称​​包含 double qoutes?

  2. ,该怎么办?
  3. 如果文件名包含空格怎么办?

  4. 看起来这两个问题都可以使用内置re模块中的常规压缩来充分处理。所以请记住Zen of Python,在这种情况下,没有必要使它更复杂并使用完整的解析器。