La solución del módulo shlex permite cotizaciones escapadas, una cotización escapa a otra y todas las cosas sofisticadas admiten shell.
>>> import shlex
>>> my_splitter = shlex.shlex('''foo, bar, "one, two", three four''', posix=True)
>>> my_splitter.whitespace += ','
>>> my_splitter.whitespace_split = True
>>> print list(my_splitter)
['foo', 'bar', 'one, two', 'three', 'four']
escaparon cotizaciones ejemplo:
>>> my_splitter = shlex.shlex('''"test, a",'foo,bar",baz',bar \xc3\xa4 baz''',
posix=True)
>>> my_splitter.whitespace = ',' ; my_splitter.whitespace_split = True
>>> print list(my_splitter)
['test, a', 'foo,bar",baz', 'bar \xc3\xa4 baz']
Esto divide el tres y cuatro, que no está en la especificación. –
Necesita una solución para dividir el "tres cuatro" final. – tzot
Simplemente cambiando my_splitter.whitespace + = ',' to = ',' lo hará, pero aún necesita quitar cada elemento. –