One step up from str.split()

Matimus mccredie at gmail.com
Mon Jul 14 21:56:34 EDT 2008


On Jul 14, 6:33 pm, "Joel Koltner" <zapwireDASHgro... at yahoo.com>
wrote:
> I normally use str.split() for simple splitting of command line arguments, but
> I would like to support, e.g., long file names which-- under windows -- are
> typically provided as simple quoted string.  E.g.,
>
> myapp --dosomething --loadthis "my file name.fil"
>
> ...and I'd like to get back a list wherein ListEntry[3]="my file name.fil" ,
> but just running str.split() on the above string creates:
>
> >>> ListEntry='myapp --dosomething --loadthis "my file name.fil"'
> >>> ListEntry.split()
>
> ['myapp', '--dosomething', '--loadthis', '"my', 'file', 'name.fil"']
>
> Is there an easy way to provide just this one small additional feature
> (keeping quoted names as a single entry) rather than going to a full-blown
> command-line argument parsing tool?  Even regular expressions seem like they'd
> probably be overkill here?  Or no?
>
> Thanks,
> ---Joel

look at the shlex module:

>>> import shlex
>>> txt = 'myapp --dosomething --loadthis "my file name.fil"'
>>> shlex.split(txt)
['myapp', '--dosomething', '--loadthis', 'my file name.fil']

Matt



More information about the Python-list mailing list