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