Python: par de valores clave usando argparse

El módulo argparse en Python ayuda a crear un programa en un entorno de línea de comandos de una manera que parece no solo fácil de codificar sino que también mejora la interacción. También genera automáticamente mensajes de ayuda y uso y emite errores cuando los usuarios dan argumentos inválidos al programa.

Pasos para usar el módulo Argparse: 

  1. Crear un analizador : Importar el módulo argparse es la primera forma de manejar el concepto. Después de haberlo importado, debe crear un analizador o un objeto ArgumentParser que almacenará toda la información necesaria que debe pasarse desde la línea de comandos de python.
  2. Adición de argumentos : el siguiente paso es llenar ArgumentParser con información sobre los argumentos del programa. Esto implica una llamada al método add_argument(). Esta información le dice a ArgumentParser cómo tomar argumentos de la línea de comandos y convertirlos en objetos.
  3. Análisis de argumentos : la información recopilada en el paso 2 se almacena y utiliza cuando los argumentos se analizan a través de parse_args(). Los datos se almacenan inicialmente en la array sys.argv en formato de string. Llamar a parse_args() con los datos de la línea de comandos primero los convierte al tipo de datos requerido y luego invoca la acción apropiada para producir un resultado.

Par clave-valor usando Argparse: para tomar argumentos como pares clave-valor, la entrada se toma primero como una string, y usando un método split() incorporado de Python , la estamos dividiendo en dos strings separadas, aquí representando la clave y su valor. En el siguiente paso, estos se hicieron para encajar en una forma de diccionario. 

Python3

#importing argparse module
import argparse
  
# create a keyvalue class
class keyvalue(argparse.Action):
    # Constructor calling
    def __call__( self , parser, namespace,
                 values, option_string = None):
        setattr(namespace, self.dest, dict())
          
        for value in values:
            # split it into key and value
            key, value = value.split('=')
            # assign into dictionary
            getattr(namespace, self.dest)[key] = value
  
# creating parser object
parser = argparse.ArgumentParser()
  
# adding an arguments 
parser.add_argument('--kwargs', 
                    nargs='*', 
                    action = keyvalue)
  
 #parsing arguments 
args = parser.parse_args()
  
# show the dictionary
print(args.kwargs)

Producción: 

argparse command line

Publicación traducida automáticamente

Artículo escrito por vanshikagoyal43 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *