Los argumentos que se dan después del nombre del programa en el shell de línea de comandos del sistema operativo se conocen como argumentos de línea de comandos . Python proporciona varias formas de lidiar con este tipo de argumentos. Los tres más comunes son:
Usando sys.argv
El módulo sys proporciona funciones y variables que se utilizan para manipular diferentes partes del entorno de tiempo de ejecución de Python. Este módulo proporciona acceso a algunas variables utilizadas o mantenidas por el intérprete ya funciones que interactúan fuertemente con el intérprete.
Una de esas variables es sys.argv, que es una estructura de lista simple. Su finalidad principal son:
- Es una lista de argumentos de línea de comando.
- len(sys.argv) proporciona el número de argumentos de la línea de comandos.
- sys.argv[0] es el nombre del script de Python actual.
Ejemplo: Supongamos que hay una secuencia de comandos de Python para sumar dos números y los números se pasan como argumentos de línea de comandos.
Python3
# Python program to demonstrate # command line arguments import sys # total arguments n = len(sys.argv) print("Total arguments passed:", n) # Arguments passed print("\nName of Python script:", sys.argv[0]) print("\nArguments passed:", end = " ") for i in range(1, n): print(sys.argv[i], end = " ") # Addition of numbers Sum = 0 # Using argparse module for i in range(1, n): Sum += int(sys.argv[i]) print("\n\nResult:", Sum)
Producción:
Usando el módulo getopt
El módulo getopt de Python es similar a la función getopt() de C. A diferencia del módulo sys, el módulo getopt amplía la separación de la string de entrada mediante la validación de parámetros. Permite opciones tanto cortas como largas, incluida una asignación de valor. Sin embargo, este módulo requiere el uso del módulo sys para procesar correctamente los datos de entrada. Para usar el módulo getopt, es necesario eliminar el primer elemento de la lista de argumentos de la línea de comandos.
Sintaxis: getopt.getopt(argumentos, opciones, [opciones_largas])
Parámetros: argumentos
: Lista de argumentos a pasar.
options: String de letras de opción que el script quiere reconocer. Las opciones que requieren un argumento deben ir seguidas de dos puntos (:).
long_options: Lista de strings con el nombre de opciones largas. Las opciones que requieren argumentos deben ir seguidas de un signo igual (=).
Tipo de devolución: devuelve un valor que consta de dos elementos: el primero es una lista de pares (opción, valor). El segundo es la lista de argumentos del programa que quedaron después de que se eliminó la lista de opciones.
Ejemplo:
Python3
# Python program to demonstrate # command line arguments import getopt, sys # Remove 1st argument from the # list of command line arguments argumentList = sys.argv[1:] # Options options = "hmo:" # Long options long_options = ["Help", "My_file", "Output="] try: # Parsing argument arguments, values = getopt.getopt(argumentList, options, long_options) # checking each argument for currentArgument, currentValue in arguments: if currentArgument in ("-h", "--Help"): print ("Displaying Help") elif currentArgument in ("-m", "--My_file"): print ("Displaying file_name:", sys.argv[0]) elif currentArgument in ("-o", "--Output"): print (("Enabling special output mode (% s)") % (currentValue)) except getopt.error as err: # output error, and return with an error code print (str(err))
Producción:
Usando el módulo argparse
Usar el módulo argparse es una mejor opción que las dos opciones anteriores, ya que proporciona muchas opciones, como argumentos posicionales, valor predeterminado para los argumentos, mensaje de ayuda, especificación del tipo de datos del argumento, etc.
Nota: Como argumento opcional predeterminado, incluye -h, junto con su versión larga –help.
Ejemplo 1: uso básico del módulo argparse.
Python3
# Python program to demonstrate # command line arguments import argparse # Initialize parser parser = argparse.ArgumentParser() parser.parse_args()
Producción:
Ejemplo 2: Agregar descripción al mensaje de ayuda.
Python3
# Python program to demonstrate # command line arguments import argparse msg = "Adding description" # Initialize parser parser = argparse.ArgumentParser(description = msg) parser.parse_args()
Producción:
Ejemplo 3: Definición de valor opcional
Python3
# Python program to demonstrate # command line arguments import argparse # Initialize parser parser = argparse.ArgumentParser() # Adding optional argument parser.add_argument("-o", "--Output", help = "Show Output") # Read arguments from command line args = parser.parse_args() if args.Output: print("Displaying Output as: % s" % args.Output)
Producción:
Publicación traducida automáticamente
Artículo escrito por nikhilaggarwal3 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA