You want split
, from the built-in shlex
module.
>>> import shlex
>>> shlex.split('this is "a test"')
['this', 'is', 'a test']
This should do exactly what you want.
If you want to preserve the quotation marks, then you can pass the posix=False
kwarg.
>>> shlex.split('this is "a test"', posix=False)
['this', 'is', '"a test"']