Argumentos con OptionParser 2007-03-05
En la versión 2.3 de Python se añadió el módulo optparse a la librería estándar, el cual nos sirve para parsear las opciones y argumentos que se pasan a nuestros programas, haciendo fácil y cómodo el lidiar con ellos.
Pondré un ejemplo:
- from optparse import OptionParser
- if __name__ == '__main__':
- usage = "%prog [options] arg1 arg2"
- parser = OptionParser(usage=usage, version="%prog 1.0")
- parser.add_option('-v','--verbose', action='store_true',
- dest='verbose', help='shows detailed information')
- parser.add_option('-q','--quiet', action='store_false',
- dest='verbose', help='hides detailed information')
- parser.add_option('-f','--filename', action='store',
- dest='filename', help='name of the file to load')
- (options, args) = parser.parse_args()
- if options.verbose:
- print "Extra info enabled"
- else:
- print "Extra info disabled"
- if options.filename:
- print "I'll open", options.filename, "file."
- if args > 0:
- print "\nArguments:"
- for x in args:
- print " ",x
Ahora veamos algunos resultados según los argumentos que pasemos (en negrita el comando ejecutado):
$ python option.py Extra info disabled
- <b>$ python option.py -v</b>
- Extra info enabled
- <b>$ python option.py -h</b>
- usage: option.py [options] arg1 arg2
- options:
- --version show program's version number and exit
- -h, --help show this help message and exit
- -v, --verbose shows detailed information
- -q, --quiet hides detailed information
- -f FILENAME, --filename=FILENAME
- name of the file to load
- <b>$ python option.py -f fichero.txt "First" "Second" "Last argument"</b>
- Extra info disabled
- I'll open fichero.txt file.
- Arguments:
- First
- Second
- Last argument
Fijaos que distingue las opciones de los argumentos, como se puede ver en el último ejemplo.
Nota: He escrito los ejemplos en inglés para no desencajar, porque las cadenas que imprime el módulo están en inglés, aunque estaría bien que pudiera hacerlo en otros idiomas.