Ich habe mehrere Subparser, und ich möchte verwenden parser.error
, um Fehler anzuzeigen.Get Subparser nach Name
main_parser = argparse.ArgumentParser()
subparsers = main_parser.add_subparsers(dest = 'subparser_name')
password_subparser = subparsers.add_parser('password')
password_subparser.add_argument('--username',
default = None, required = False,
dest = "username", help='Target username')
web_subparser = subparsers.add_parser('web')
web_subparser.add_argument('--port',
default = 8765, required = False, type = int,
dest = "port", help='Listening port')
args = main_parser.parse_args()
Normalerweise kann ich main_parser.error
verwenden, aber den Fehler genauer zu machen, ist die aktuelle subparser verwenden soll, zB password_subparser
Jetzt habe ich den Namen des aktuellen subparser wissen, auch bekannt als args.subparser_name
Aber ich kann nicht password_subparser
von main_parser
finden, irgendwelche Ideen?
ist Es gibt keine Methode, wie, main_parser.get_subparser(subparser_name)
Müssen Sie? Sie erhalten die Referenz wie folgt: password_subparser = main_parser.add_subparsers (dest = 'subparser_name') 'und verwenden Sie sie wie gewohnt. –
@ cᴏʟᴅsᴘᴇᴇᴅ Ich habe 10 Subparser, ich kann identifizieren, welcher Subparser verwendet wird, aber nur der Name – daisy
wo definierst du '' password_subparser''? –