Articles of argparse

¿Cómo establecer controladores de salida personalizados para argparse en Python?

He configurado el logger para imprimir tanto en el terminal stdout como en un archivo para poder tener un archivo de los mensajes de registro al que puedo referirme. Esto se logra fácilmente agregando un FileHandler a su objeto de logging . Pan comido. Lo que quiero lograr ahora es hacer que el registro argparse […]

¿Cómo agregar argumentos opcionales o una vez?

¿Cómo puedo agregar un argumento que es opcional y no se debe especificar varias veces? Válido: $ ./my.py $ ./my.py –arg MyArgValue Inválido: $ ./my.py –arg MyArgValue –arg ThisIsNotValid Si agrego un argumento como: parser.add_argument(‘–arg’, type=str) El ejemplo no válido da como resultado una cadena ThisIsNotValid . Yo esperaría un error del analizador.

Usando argparse junto con sys.argv en Python

Actualmente tengo una secuencia de comandos, que utiliza el archivo globbing a través de la variable sys.argv como esta: if len(sys.argv) > 1: for filename in sys.argv[1:]: Esto funciona muy bien para procesar un montón de archivos; Sin embargo, también me gustaría usar esto con el módulo argparse . Entonces, me gustaría que mi progtwig […]

Python doctest para scripts de shell que prueban el análisis de argumentos sin contaminar docstring con os.popen ()

¿Hay alguna forma de escribir una cadena doctest de python para probar una secuencia de comandos que se lanzará desde la línea de comandos (terminal) y que no contamine los ejemplos de documentación con las llamadas os.popen? #!/usr/bin/env python # filename: add “”” Example: >>> import os >>> os.popen(‘add -n 1 2’).read().strip() ‘3’ “”” if […]

¿Cómo hacer que el argparse de python genere texto no inglés?

El módulo argparse “genera automáticamente mensajes de ayuda y uso”. Puedo dar nombres que no estén en inglés a los argumentos y proporcionar textos de ayuda en otros idiomas; pero el resultado de la ayuda se convierte en una mezcla de al menos dos idiomas, porque términos como usage , positional arguments , optional arguments […]

¿Cómo incluir un argumento posicional en un grupo argparse mutuamente excluyente?

Sé que eso no tiene sentido múltiples argumentos posicionales en un grupo mutuamente exclusivo porque no se puede decir quién es quién. Pero necesito incluir UN argumento posicional en eso. Lo que necesito: $ myprogram -h usage: myprogram [-h] [–delete value | –update value | value] Donde value posicional es la acción predeterminada (tipo de […]

argumento nombrado en argparse

Quiero enviar argumentos a la secuencia de comandos por su nombre (algo como kwargs). Intenté algo como esto pero no hace lo que quiero: (digamos que está escrito en script.py) import argparse parser = argparse.ArgumentParser() parser.add_argument(“name”) args = parser.parse_args() y luego escribiendo en línea de comando: script.py nombre = david otra cosa, digamos que tengo […]

Causar argparse de Python para ejecutar la acción por defecto

Estoy usando la acción de argparse para agregar varios datos a una clase. Me gustaría usar esa acción en el valor predeterminado si ese argumento no se proporciona en la línea de comandos. es posible? ¡Gracias!

Python: Typehints para objetos argparse.Namespace

¿Hay alguna forma de que los analizadores estáticos de Python (p. Ej., En PyCharm, otros IDE) detecten argparse.Namespace objetos argparse.Namespace ? Ejemplo: parser = argparse.ArgumentParser() parser.add_argument(‘–somearg’) parsed = parser.parse_args([‘–somearg’,’someval’]) # type: argparse.Namespace the_arg = parsed.somearg # <- Pycharm complains that parsed object has no attribute 'somearg' Si elimino la statement de tipo en el comentario […]

argumento argparse

Tengo un pequeño problema. Utilizo argparse para analizar mis argumentos, y está funcionando muy bien. Para tener los argumentos, yo hago: p_args = parser.parse_args(argv) args = dict(p_args._get_kwargs()) Pero el problema con p_args es que no sé cómo ordenar estos argumentos por su posición en la línea de comando, porque es un dict. Entonces, ¿hay alguna […]