以我正确的方式学习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左右,但我已经解决了将文本文件加载到内存中并剥离标题的问题。
任何正确的方法提示?
答案 0 :(得分:0)
基本上它取决于数据的不规范性。 我可以在这里看到两个并发症;
游戏名称被双引号括起来。但是,如果名称包含 double qoutes?
如果文件名包含空格怎么办?
看起来这两个问题都可以使用内置re
模块中的常规压缩来充分处理。所以请记住Zen of Python,在这种情况下,没有必要使它更复杂并使用完整的解析器。