Definir la clase para leer argumentos
Para utilizar argumentos pasados por parámetro en un script de Python se puede utilizar la siguiente librería
from argparse import ArgumentParser import sys # ArgumentParser con una descripción de la aplicación parser = ArgumentParser(description='%(prog)s is an ArgumentParser demo')
Ejemplo de argumentos obligatorios
# Argumento posicional con descripción parser.add_argument('fichero', help='ayuda del fichero')
Ejemplo de argumentos optativos
# Argumento posicional. Si se parametriza, requiere un valor entero # (https://docs.python.org/3/library/argparse.html#type) parser.add_argument('valor', help='help for opt3', type=int) # Argumento posicional con tres opciones posibles, puede llamarse con -f o -fruta # (https://docs.python.org/3/library/argparse.html#choices) parser.add_argument('-f','--fruta', choices=['peras', 'manzanas', 'naranjas']) # Argumento opcional con descripción. Si se parametriza requiere un entero, defecto es 10 parser.add_argument('-v', help='help for opt4', type=int, default=10) # Argumento opcional. Con 'action' damos valor si el argumento se parametriza # (https://docs.python.org/3/library/argparse.html#action) parser.add_argument('-op1', '--opcion1', help='help for opt5', action='store_true', default=False) # Argumento opcional que requiere dos argumentos parser.add_argument('-op2', nargs=2) # Argumento opcional que requiere de 1 a N argumentos parser.add_argument('-op3', nargs='+') # Argumento opcional que requiere de 0 a N argumentos parser.add_argument('-op4', nargs='*')
Lectura de argumentos en el código
# Por último parsear los argumentos args = parser.parse_args() # Imprimir los parámetros print ('Fichero:', args.fichero) print ('Numero parseado entero:', args.valor) print ('Seleccionar frutas:', args.fruta) print ('Seleccionar valor:', args.v) print ('Opcion 1:', args.opcion1) print ('Opcion 2:', args.op2) print ('Opcion 3:', args.op3) print ('Opcion 4:', args.op4) # get input data: if args.fichero != None: print("\n\nFichero de entrada: " + args.fichero ) inputfile = args.fichero else: sys.stderr.write("Por favor especifique el fichero!\n") sys.exit(2)
Ejecución de Script de Python con argumentos
Todo el contenido descrito anteriormente se guarda en un fichero llamado «prueba.py» y al ejecutarle nos daría la siguiente salida que demuestra el correcto funcionamiento.
> prueba.py fichero.txt 2
Fichero: fichero.txt Numero parseado entero: 2 Seleccionar frutas: None Selecionar valor: 10 Opcion 1: False Opcion 2: None Opcion 3: None Opcion 4: None Fichero de entrada: fichero.txt
0 comentarios