3

我有一个这样的配置文件:

asaasdfg fdhshs "kgk jjjd" jdyesgs
gdgdg urur "irit jhd *" djjdj
trteyuueu ueue "jyuoro" ooyoy

等等。我可以使用我自己的解析器模块(使用正则表达式)对其进行解析,但这假定文件具有严格的结构(例如,每行中的元素由单个空格分隔)。是否有用于解析此类文件的通用 python 模块,以便将元素分隔的空格数无关紧要。

我看过这个,但它假设的文件结构与我所拥有的不同。特别是,我没有部分或键:值对。

有什么建议么?

4

1 回答 1

4

虽然并不完全清楚您需要什么,但该shlex模块会很乐意以通常有意义的方式解析带引号的字符串等内容。例如,给定您的示例输入,以下代码:

for line in sys.stdin:
    parts = shlex.split(line)
    print parts

将产生:

['asaasdfg', 'fdhshs', 'kgk jjjd', 'jdyesgs']
['gdgdg', 'urur', 'irit jhd *', 'djjdj']
['trteyuueu', 'ueue', 'jyuoro', 'ooyoy']
于 2012-07-31T18:24:45.587 回答