Argumentos pasados por parámetro en Python

Definir la clase para leer argumentoslogo python

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

Otros artículos que pueden ser de interés:

Autor: Diego Calvo