development:python:argparse

Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Següent revisió
Revisió prèvia
development:python:argparse [25/09/2025 07:47] – creat matedevelopment:python:argparse [26/09/2025 01:05] (actual) mate
Línia 1: Línia 1:
 = Python argparse = Python argparse
-  * [[https://docs.python.org/2/library/argparse.html#module-argparse]]+  * [[https://ellibrodepython.com/python-argparse]]
  
 == argparse == argparse
-<code phyton>+  * o = argparse.ArgumentParser: 
 +    * description: se muestra en la ayuda del programa 
 +    * prefix_chars: cambia el prefijo de los argumentos 
 +    * fromfile_prefix_chars: establece el prefijo para importar un archivo que contiene los argumentos 
 +    * version: numero de versión 
 +  * g = o.add_mutually_exclusive_group(): argumentos exluyentes entre si 
 +    * g.add_argument 
 +  * o.add_argument 
 +    * ''-'': argumento corto 
 +    * ''--'': argumento largo 
 +    * type: tipo int, str... 
 +    * help: texto de ayuda 
 +    * choices: lista de opciones válidas 
 +    * default: valor por defecto si no se pasa el parámetro 
 +    * required: True|False 
 +    * dest: cambia el nombre de la variable donde se almacena el valor 
 +    * nargs 
 +      * n: número de argumentos 
 +      * ''?'': argumento opcional 
 +      * ''+'': al menos 1 argumento 
 +      * ''argparse.REMAINDER'': recoge el resto de valores, usar como última opción (de todos los ''add_argument''
 +    * action 
 +      * store: Es el comportamiento por defecto que hemos visto anteriormente. Simplemente almacena el valor que se pasa con el argumento en una variable. 
 +      * store_const: Almacena una constante en la variable, cuyo valor debemos especificar en const. 
 +      * store_true: Almacena el booleano True en la variable. Muy útil para definir flags que no reciben un valor concreto. 
 +      * store_false: Análogo al anterior pero almacena False. 
 +      * append: Añade el argumento a una lista. Útil cuando un argumento es pasado múltiples veces. 
 +      * append_const: Similar a append pero almacena en la lista la constante especificada en const. 
 +      * count: Cuenta el número de veces que un determinado argumento es pasado. 
 +      * help: Muestra la ayuda del programa y finaliza sin hacer nada más. 
 +      * version: Muestra la versión del programa y finaliza la ejecución. 
 +  * se pueden crear acciones personalizadas con ''argparse.Action'' 
 + 
 +== ejemplos 
 +<code python> 
 +# calculadora.py 
 +import argparse 
 + 
 +parser = argparse.ArgumentParser(description='Calculadora, suma/resta/multiplica a y b') 
 +parser.add_argument('-a', '--numero_a', type=int, help='Parámetro a') 
 +parser.add_argument('-b', '--numero_b', type=int, help='Parámetro b') 
 +parser.add_argument('-o', '--operacion', 
 +                    type=str, 
 +                    choices=['suma', 'resta', 'multiplicacion'], 
 +                    default='suma', required=False, 
 +                    help='Operación a realizar con a y b') 
 + 
 +args = parser.parse_args() 
 +</code> 
 + 
 +<code python> 
 +# cambio_prefijo.py 
 +import argparse 
 + 
 +parser = argparse.ArgumentParser(prefix_chars='+'
 +parser.add_argument('+a'
 +parser.add_argument('+b'
 + 
 +args = parser.parse_args() 
 +print(vars(args)) 
 +</code> 
 + 
 +<code python argumentos_fichero.py> 
 +# argumentos_fichero.py 
 +import argparse 
 + 
 +parser = argparse.ArgumentParser(fromfile_prefix_chars='@'
 + 
 +parser.add_argument('-a'
 +parser.add_argument('-b'
 +parser.add_argument('-c'
 +parser.add_argument('-d'
 +parser.add_argument('-e'
 +parser.add_argument('-f'
 + 
 +args = parser.parse_args() 
 +print(vars(args)) 
 + 
 +# argumentos_fichero.py @args.txt 
 +</code> 
 + 
 +<code python excluyentes.py> 
 +# excluyentes.py 
 +import argparse 
 + 
 +parser = argparse.ArgumentParser() 
 +grupo = parser.add_mutually_exclusive_group() 
 + 
 +grupo.add_argument('-f', '--foo'
 +grupo.add_argument('-b', '--bar'
 + 
 +args = parser.parse_args() 
 +print(vars(args)) 
 +</code> 
 + 
 +<code python argumentos_variables1.py> 
 +# help_version.py 
 +import argparse 
 +parser = argparse.ArgumentParser() 
 +parser.version = '1.0' 
 +parser.add_argument('--ayuda', action='help'
 +parser.add_argument('--version', action='version'
 +args = parser.parse_args() 
 +print(vars(args)) 
 +</code> 
 + 
 +<code python argumentos_variables1.py> 
 +# argumentos_variables1.py 
 +import argparse 
 +parser = argparse.ArgumentParser() 
 +parser.add_argument('-a', nargs=5) 
 +args = parser.parse_args() 
 +print(vars(args)) 
 +</code> 
 + 
 +<code python argumentos_variables2.py> 
 +# argumentos_variables2.py 
 +import argparse 
 +parser = argparse.ArgumentParser() 
 +parser.add_argument('-a', nargs='?'
 +args = parser.parse_args() 
 +print(vars(args)) 
 +</code> 
 + 
 +<code python argumentos_variables3.py> 
 +# argumentos_variables3.py 
 +import argparse 
 +parser = argparse.ArgumentParser() 
 +parser.add_argument('-a', nargs='?'
 +args = parser.parse_args() 
 +print(vars(args)) 
 +</code> 
 + 
 +<code python argumentos_variables4.py> 
 +# argumentos_variables4.py 
 +import argparse 
 +parser = argparse.ArgumentParser() 
 +parser.add_argument('-a', nargs='+'
 +args = parser.parse_args() 
 +print(vars(args)) 
 +</code> 
 + 
 +<code python argumentos_variables5.py> 
 +# argumentos_variables5.py 
 +import argparse 
 +parser = argparse.ArgumentParser() 
 +parser.add_argument('-a'
 +parser.add_argument('-b', nargs=argparse.REMAINDER) 
 +args = parser.parse_args() 
 +print(vars(args)) 
 +</code> 
 + 
 +== ejemplos 
 +/via: [[https://docs.python.org/2/library/argparse.html#module-argparse]] 
 +<code python>
 #!/usr/bin/env python #!/usr/bin/env python
 # -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
Línia 12: Línia 166:
 parser.add_argument("-v", "--verbose", help="Mostrar información de depuración", action="store_true") parser.add_argument("-v", "--verbose", help="Mostrar información de depuración", action="store_true")
 args = parser.parse_args() args = parser.parse_args()
 +</code>
 +
 +<code python>
 +#!/usr/bin/env python
 +# -*- coding: utf-8 -*-
 + 
 +import argparse
 + 
 +parser = argparse.ArgumentParser()
 +parser.add_argument("-v", "--verbose", help="Mostrar información de depuración", action="store_true")
 +parser.add_argument("-f", "--file", help="Nombre de archivo a procesar")
 +args = parser.parse_args()
 + 
 +# Aquí procesamos lo que se tiene que hacer con cada argumento
 +if args.verbose:
 +    print "depuración activada!!!"
 + 
 +if args.file:
 +    print "El nombre de archivo a procesar es: ", args.file
 </code> </code>
  • development/python/argparse.1758811657.txt.gz
  • Darrera modificació: 25/09/2025 07:47
  • per mate