Erstellen versteckter Argumente mit Python argparse

114

Ist es möglich, einem Python ein Argument hinzuzufügen, argparse.ArgumentParserohne dass es in der Verwendung oder Hilfe ( script.py --help) angezeigt wird?

Peter Smit
quelle

Antworten:

162

Ja, können Sie die Set - helpOption add_argumentan argparse.SUPPRESS. Hier ist ein Beispiel aus der Argparse-Dokumentation :

>>> parser = argparse.ArgumentParser(prog='frobble')
>>> parser.add_argument('--foo', help=argparse.SUPPRESS)
>>> parser.print_help()
usage: frobble [-h]

optional arguments:
  -h, --help  show this help message and exit
srgerg
quelle
Dann zeigt es sich einfach als test ==SUPPRESS==. Zumindest bei Verwendung mit add_parser.
Thomas Ahle
1

Ich füge dazu eine Option hinzu, um die versteckten zu aktivieren, und greife dazu, indem ich sie mir ansehe sysv.args.

Wenn Sie dies tun, müssen Sie das spezielle Argument, aus dem Sie auswählen, sys.argvdirekt in die Analyseliste aufnehmen, wenn Sie davon ausgehen, dass die Option darin besteht -s, versteckte Optionen zu aktivieren.

parser.add_argument('-a', '-axis',
                    dest="axis", action="store_true", default=False,
                    help="Rotate the earth")
if "-s" in sys.argv or "-secret" in sys.argv:
    parser.add_argument('-s', '-secret',
                        dest="secret", action="store_true", default=False,
                        help="Enable secret options")
    parser.add_argument('-d', '-drill',
                        dest="drill", action="store_true", default=False,
                        help="drill baby, drill")
Rob Boudrie
quelle
Ist sysv.argsein Tippfehler für sys.argv?
pppery
Dies ist eine vernünftige Lösung (sobald meine Bearbeitung zur Behebung der Tippfehler akzeptiert wurde).
Siwel