2012-07-26 1 views
3

J'ai beaucoup de mal à faire en sorte qu'optparse fonctionne en python. C'est la première fois que je l'utilise, donc toute aide serait grandement appréciée. J'ai lu toute la documentation, mais même avec leurs exemples, ça ne marche pas pour moi. J'essaie d'utiliser --clean pour rendre une variable booléenne égale à true. Voilà ce que j'ai:Optparse Python Set Boolean

desc = "Use this script for fun!" 
parser = optparse.OptionParser(description=desc) 
parser.add_option('--clean', help='Run cleaner option', dest = 'runclean', default = False, action = 'store_true') 
(args, opts) = parser.parse_args() 

print opts.runclean 

Je pensais que cela fixerait runclean à vrai, mais quand je fais:

print opts.runclean 

-je obtenir:

AttributeError: 'list object has no attribute 'runclean' 

Toutes les idées?

+0

** Note **: Utilisation * optparse * est déconseillée depuis la version python 2.7. Le module optparse est obsolète et ne sera pas développé davantage; le développement se poursuivra avec le module * argparse *. Voir [PEP 0389] (http://www.python.org/dev/peps/pep-0389/) pour plus d'informations. – shakaran

Répondre

3

Vous avez les valeurs de retour inversées:

(args, opts) = parser.parse_args() 

devrait être

(opts, args) = parser.parse_args() 

Tout va alors travailler.

+0

A travaillé parfaitement, merci! Je ne peux pas croire que je n'ai pas remarqué que – user1463925

0

Il est dans args.runclean

BTW, il est préférable d'utiliser argparse plutôt que optparse