Argumentos de la línea de comandos en Python
-
Utilice el módulo
sys
para procesar argumentos de la línea de comandos en Python -
Utilice el módulo
getopt
para procesar argumentos de la línea de comandos en Python -
Utilice el módulo
argparse
para procesar argumentos de la línea de comandos en Python
Los argumentos de la línea de comandos son aquellos valores que se proporcionan en la ventana de la línea de comandos mientras se ejecuta el archivo. Son acomodaticios porque nos permite pasar los valores mientras ejecutamos el programa.
En Python, se pueden usar diferentes módulos para procesar argumentos de línea de comandos, que se analizan a continuación.
Utilice el módulo sys
para procesar argumentos de la línea de comandos en Python
El sys.argv()
se utiliza para almacenar los argumentos proporcionados en la línea de comando en una estructura de tipo lista. El nombre del archivo se considera el primer argumento.
Por ejemplo,
import sys
print("Arguments without the script name ", (len(sys.argv) - 1))
print("Arguments given ")
for i in range(1, len(sys.argv)):
print(sys.argv[i])
En el ejemplo anterior, pasamos algunos argumentos en tiempo de ejecución y mostramos el número total de argumentos y sus valores.
Utilice el módulo getopt
para procesar argumentos de la línea de comandos en Python
El módulo getopt
también procesa argumentos de línea de comando. Nos permite validar los valores dados. Podemos proporcionar valores con el argumento junto con cadenas de opciones que el script pueda reconocer. Este módulo trabaja con el módulo sys para un mejor procesamiento.
El constructor getopt()
se utiliza para inicializar el objeto, que analiza los argumentos. Devuelve un getopt.error
cuando la opción no se reconoce en la lista de argumentos.
Lo usamos en el siguiente código.
import getopt
import sys
lst = sys.argv[1:]
options = "abc:"
long_options = ["A_Message", "B_Message", "C_Message"]
try:
arguments, values = getopt.getopt(lst, options, long_options)
for currentArgument, currentValue in arguments:
if currentArgument in ("-a", "--A_Message"):
print("Message A received")
elif currentArgument in ("-b", "--B_Message"):
print("Message B received")
elif currentArgument in ("-c", "--C_Message"):
print("Message C received")
except getopt.error as err:
print("Error")
Utilice el módulo argparse
para procesar argumentos de la línea de comandos en Python
El módulo argparse es, con mucho, el módulo más conveniente para trabajar con argumentos de línea de comandos. Este módulo ofrece mucha flexibilidad ya que puede manejar argumentos posicionales, argumentos opcionales y también especificar su tipo.
Podemos poner algunos valores predeterminados en caso de que falte algún argumento e incluso mostrar un mensaje de ayuda.
La función ArgumentParser()
crea un objeto analizador. La función parse.args()
lee los argumentos de la línea de comandos.
Por ejemplo,
import argparse
parser = argparse.ArgumentParser(description="Which Message?")
parser.add_argument("a")
parser.add_argument("b")
args = parser.parse_args()
print(args.a, args.b)
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn