Hello You have you feet on earth Web Dreamer!

Very clever!
Beautiful hack!

Many Thanks

Karim

On 07/28/2011 05:48 PM, Web Dreamer wrote:
Karim a écrit ce mercredi 27 juillet 2011 21:30 
dans<mailman.1538.1311795072.1164.python-l...@python.org>  :

Hello All,

I would like to parse this TCL command line with shlex:

'-option1 [get_rule A1 B2] -option2 $VAR -option3 TAG'

And I want to get the splitted list:

['-option1', '[get_rule A1 B2]', '-option2',  '$VAR', '-option3',  'TAG']

Then I will gather in tuple 2 by 2 the arguments.

Do this:

s = '-option1 [get_rule A1 B2] -option2 $VAR -option3 TAG'
Now if you don't enclose [get_rule A1 B2] in cotes, you will pull your hair off!
So:
s = s.replace('[','"[')
s = s.replace(']',']"')
Now:
s
'-option1 "[get_rule A1 B2]" -option2 $VAR -option3 TAG'

Lets continue:
import shlex
optionlist = shlex.split(s)
optionlist
['-option1', '[get_rule A1 B2]', '-option2', '$VAR', '-option3', 'TAG']

Now to get your tupple of two by two arguments:
argtuple = tuple([(option, value) for option,value in 
zip(optionlist[0::2],optionlist[1::2])])
argtuple
(('-option1', '[get_rule A1 B2]'), ('-option2', '$VAR'), ('-option3', 'TAG'))


whole code:
import shlex
s = '-option1 [get_rule A1 B2] -option2 $VAR -option3 TAG'
s = s.replace('[','"[')
s = s.replace(']',']"')
optionlist = shlex.split(s)
argtuple = tuple([(option, value) for option,value in 
zip(optionlist[0::2],optionlist[1::2]))

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to