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"']