Python: разбить строку, уважать и сохранять кавычки [дубликаты]
На этот вопрос уже есть ответ здесь:
Разделить строку пробелами - сохранение цитированных подстрок - в Python 16 ответовИспользуя python, я хочу разбить следующую строку:
a=foo, b=bar, c="foo, bar", d=false, e="false"
Это должно привести к следующему списку:
['a=foo', 'b=bar', 'c="foo, bar"', 'd=false', 'e="false'"']
При использовании shlex в posix-режиме и разделении с помощью «,»аргумент дляc
лечится правильно. Тем не менее, он удаляет кавычки. Они нужны мне потому чтоfalse
это не то же самое, что"false"
, например.
Мой код до сих пор:
import shlex
mystring = 'a=foo, b=bar, c="foo, bar", d=false, e="false"'
splitter = shlex.shlex(mystring, posix=True)
splitter.whitespace += ','
splitter.whitespace_split = True
print list(splitter) # ['a=foo', 'b=bar', 'c=foo, bar', 'd=false', 'e=false']