我需要将一系列字符串分成3个用空格表示的组成部分。这些字符串有时包含子列表,但始终作为字符串的最后一部分。

我以前使用Shlex取得了巨大的成功,但是由于我最近的子列表包含其自己的空格,因此我再也无法获得预期的结果,这似乎使Shlex无法使用。

Shlex是否有替代方法可能会更好地执行任务?

一些例子是:

'BREAKFAST IN ["Rolled Oats","Cornflakes","French Toast"]'




COPIES_FOR_EXTERNAL > "0"


应该变成如下列表:

['BREAKFAST','IN', '["Rolled Oats","Cornflakes","French Toast"]']




['COPIES_FOR_EXTERNAL','>','"0"']

最佳答案

由于您知道组件的数量,并且子列表始终是最后一个元素,因此可以将str.splitmaxsplit参数一起使用:

s1 = 'BREAKFAST IN ["Rolled Oats","Cornflakes","French Toast"]'
s2 = 'COPIES_FOR_EXTERNAL > "0"'

print s1.split(None, 2) # ['BREAKFAST', 'IN', '["Rolled Oats","Cornflakes","French Toast"]']
print s2.split(None, 2) # ['COPIES_FOR_EXTERNAL', '>', '"0"']

关于python - 带括号的Python Shlex拆分,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36927940/

10-09 02:46