smart splitting - how to

Robert Kern robert.kern at
Fri Dec 13 12:39:57 CET 2013

On 2013-12-13 11:28, Helmut Jarausch wrote:
> Hi,
> I'd like to read several strings by using 'input'.
> These strings are separated by white space but I'd like to allow for
> some quoting, e.g.
> "Guido van" Rossum
> should be split into 2 strings only
> Now, a simple split doesn't work since it splits the quoted text as well.
> Is there a simple way to do so?
> It would be nice if it could handle embedded quotes which are escaped
> by a backslash, too.
> Is there something simpler then a sophisticated regular expression
> or even a parser?

|1> import shlex

|2> shlex.split(r'"Guido \"van\" Rossum" invented Python')
['Guido "van" Rossum', 'invented', 'Python']

Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
  that is made terrible by our own mad attempt to interpret it as though it had
  an underlying truth."
   -- Umberto Eco

More information about the Python-list mailing list