Membuat argumen tersembunyi dengan argparse Python

115

Apakah mungkin untuk menambahkan Argument ke python argparse.ArgumentParsertanpa muncul di use atau help ( script.py --help)?

Peter Smit
sumber

Jawaban:

163

Ya, Anda dapat menyetel helpopsi add_argumentke argparse.SUPPRESS. Berikut adalah contoh dari dokumentasi argparse :

>>> 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.dll
sumber
Kemudian itu hanya muncul sebagai test ==SUPPRESS==. Setidaknya saat digunakan dengan add_parser.
Thomas Ahle
1

Saya melakukannya dengan menambahkan opsi untuk mengaktifkan yang tersembunyi, dan mengambilnya dengan melihatnya sysv.args.

Jika Anda melakukan ini, Anda harus menyertakan arg khusus yang Anda pilih sys.argvsecara langsung dalam daftar parse jika Anda menganggap opsi tersebut adalah -suntuk mengaktifkan opsi tersembunyi.

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")
merampok boudrie
sumber
Apakah sysv.argssalah ketik untuk sys.argv?
pppery
Ini adalah solusi yang masuk akal (setelah pengeditan saya untuk memperbaiki kesalahan ketik diterima).
Siwel