我想分手谢谢shlex这种字符串:
str = 'This doesn''t work' 54e+5 15 .FALSE. 'Another example of "test"'
预期结果:
我的主要问题是语法在带引号的字符串中使用双引号''。 我无法工作。我尝试了以下设置:
lex = shlex.shlex(str)
lex.whitespace_split = True
lex.quotes = "'"
但即使没有空白字符,它也会在''之间分裂。
谢谢!
答案 0 :(得分:1)
理想情况下,如果您控制文本的生成方式,我会将文件写为CSV并允许csv模块正确引用项目。然后把它读回一个清单就可以了。
但鉴于文本原样,如何:
In [4]: import shlex
In [6]: text = """'This doesn''t work' 54e+5 15 .FALSE. 'Another example of "test"'"""
In [34]: [item.replace('\\"\\"',"''") for item in shlex.split(text.replace("''",'\\"\\"'))]
Out[34]: ["This doesn''t work", '54e+5', '15', '.FALSE.', 'Another example of "test"']