J'ai plusieurs sous-lecteurs, et je voudrais utiliser parser.error
pour afficher les erreurs.Get subparser par nom
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()
En général, je peux utiliser main_parser.error
, mais pour rendre l'erreur plus précisément, je devrais utiliser le subparser courant, par exemple password_subparser
Maintenant, je sais que le nom de la subparser actuelle, alias args.subparser_name
Mais je ne peux pas trouver password_subparser
de main_parser
, des idées?
Il n'y a pas méthode comme, main_parser.get_subparser(subparser_name)
Avez-vous besoin? Vous obtenez la référence comme ceci 'password_subparser = main_parser.add_subparsers (dest = 'subparser_name')' et l'utilisez comme d'habitude. –
@ cᴏʟᴅsᴘᴇᴇᴅ J'ai 10 sous-lecteurs, je peux identifier quel sous -parateur est utilisé, mais seulement le nom – daisy
où est-ce que vous définissez '' password_subparser''? –