OptParse and Constant values

Robert Kern robert.kern at gmail.com
Thu Aug 12 18:41:40 CEST 2010

On 8/12/10 11:19 AM, J wrote:
> How do you use OptParse with constants?
> Example:
> usage = 'Usage: %prog [OPTIONS]'
>      parser = OptionParser(usage)
>      parser.add_option('-l','--level',
>                        action='store_const',
>                        default=LOG_INFO,
>                        help='Set the log level to inject into syslog (either an\
>                        integer [0 - 7] or one of LOG_EMERG, LOG_ALERT,LOG_CRIT,\
>                        LOG_ERR, LOG_WARNING, LOG_NOTICE, LOG_INFO, LOG_DEBUG')
>      (options,args) = parser.parse_args()
>      print options
> always returns {'level':None} regarless of whether I call it with an
> int (0 - 7) or the const name (LOG_*)


'store_const' means that the option is a flag without arguments and stores the 
value provided by the 'const' keyword to add_option() (it defaults to None so 
that's what you get when you use that flag). This is not what you want. You just 
want the default 'store' action.

Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
  that is made terrible by our own mad attempt to interpret it as though it had
  an underlying truth."
   -- Umberto Eco

More information about the Python-list mailing list