parser parse multiple metavar example python argparse

multiple - python argparse: ¿Cómo puedo mostrar la ayuda automáticamente en caso de error?



python flags example (2)

Actualmente, cuando ingreso opciones no válidas u omito argumentos posicionales, argparse me devuelve la solicitud y muestra el uso de mi aplicación. Esto está bien, pero prefiero mostrar automáticamente la lista de ayuda completa (que explica las opciones, etc.) que requerir que el usuario escriba

./myscript.py -h

¡Gracias!

Jamie


Este thread en los grupos de Google tiene el siguiente fragmento de código que parece hacer el truco (modificado ligeramente).

class DefaultHelpParser(argparse.ArgumentParser): def error(self, message): sys.stderr.write(''error: %s/n'' % message) self.print_help() sys.exit(2)


Para imprimir la ayuda, es posible que desee utilizar: la función print_help en la instancia ArgumentParser

parser = argparse.ArgumentParser() (...) parser.print_help()

Para imprimir un mensaje de ayuda en caso de error, debe crear una subclase propia de la instancia ArgumentParser , que anula el método error() . Por ejemplo así:

class MyParser(argparse.ArgumentParser): def error(self, message): sys.stderr.write(''error: %s/n'' % message) self.print_help() sys.exit(2)

Cuando este analizador encuentra una línea de argumento no analizable, imprimirá la ayuda.