2009-11-08 5 views

Répondre

8

optparse attend une liste de valeurs qui ont été brisées style shell (qui est ce que argv[1:] est). Pour obtenir le même départ avec une chaîne, essayez ceci:

parser = optparse.OptionParser() 
# Set up your OptionParser 

inp = raw_input("Enter some crap: ") 

try: (options, args) = parser.parse_args(shlex.split(inp)) 
except: 
    # Error handling. 

L'argument optionnel de parse_args est l'endroit où vous remplacez dans votre chaîne convertie.

Soyez avisé que shlex.split peut exception, tout comme parse_args. Lorsque vous traitez avec l'entrée de l'utilisateur, il est sage d'attendre les deux cas.

4

Utilisez le shlex module pour diviser la première entrée.

>>> import shlex 
>>> shlex.split(raw_input()) 
this is "a test" of shlex 
['this', 'is', 'a test', 'of', 'shlex'] 
+0

je dois analyser l'entrée .. Comment puis-je faire cela après avoir fait dans une liste? – Sriram

+3

... utilisez optparse? –

Questions connexes