Tạo đối số ẩn với Python argparse


Câu trả lời:


162

Có, bạn có thể đặt helptùy chọn add_argumentthành argparse.SUPPRESS. Đây là một ví dụ từ tài liệu của 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

Sau đó, nó chỉ hiển thị dưới dạng test ==SUPPRESS==. Ít nhất là khi được sử dụng với add_parser.
Thomas Ahle

1

Tôi làm điều đó bằng cách thêm một tùy chọn để bật những cái ẩn và lấy nó bằng cách nhìn vào sysv.args.

Nếu bạn làm điều này, bạn phải bao gồm đối số đặc biệt mà bạn chọn ra sys.argvtrực tiếp trong danh sách phân tích cú pháp nếu bạn Giả sử tùy chọn là -sbật tùy chọn ẩn.

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")

sysv.argsmột lỗi đánh máy cho sys.argv?
pppery

Đây là một giải pháp hợp lý (một khi bản chỉnh sửa của tôi để sửa lỗi chính tả được chấp nhận).
Siwel
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.