shlex parsing

Karim karim.liateni at
Fri Jul 29 11:37:34 CEST 2011

On 07/29/2011 09:24 AM, Web Dreamer wrote:
> Nobody a écrit ce jeudi 28 juillet 2011 18:37 dans
> <pan.2011. at>  :
>> On Thu, 28 Jul 2011 17:48:34 +0200, Web Dreamer wrote:
>>>> I would like to parse this TCL command line with shlex:
>>>> '-option1 [get_rule A1 B2] -option2 $VAR -option3 TAG'
>>>>>> s = s.replace('[','"[')
>>>>>> s = s.replace(']',']"')
>> Note that this approach won't work if you have nested brackets or braces.
>> That would require a real parser.
> True,
> I tried with the shlex class, but adding '[]' to a shlexobject.quotes
> doesn't work.
> Indeed, shlex expects an opening and closing quote to be the same, and [ is
> different from ] so shlex therefore expects an opening [ to be closed with [
> and not ]
> My solution indeed only works as long as there are not any nested brackets.
Yeah I saw that shlex object behavior is slighty different from 
fonction. the char minus by default is taken as a individual word and in 
it is not. get_token() method return '-' alone and you have to set 
object attributes
wordchars += '-' to have the same behavior as shlex.split().


More information about the Python-list mailing list