Python argparse

  • 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
# 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()
# 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))
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
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))
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))
argumentos_variables1.py
# argumentos_variables1.py
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-a', nargs=5)
args = parser.parse_args()
print(vars(args))
argumentos_variables2.py
# argumentos_variables2.py
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-a', nargs='?')
args = parser.parse_args()
print(vars(args))
argumentos_variables3.py
# argumentos_variables3.py
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-a', nargs='?')
args = parser.parse_args()
print(vars(args))
argumentos_variables4.py
# argumentos_variables4.py
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-a', nargs='+')
args = parser.parse_args()
print(vars(args))
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))

/via: https://docs.python.org/2/library/argparse.html#module-argparse

#!/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")
args = parser.parse_args()
#!/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
  • development/python/argparse.txt
  • Darrera modificació: 26/09/2025 01:05
  • per mate