我在我的程序中對命令行子命令使用Python argparse模塊。我的代碼基本如下所示:Argparse subparser:在命令列表中隱藏metavar
import argparse
parser = argparse.ArgumentParser()
subparsers = parser.add_subparsers(title="subcommands", metavar="<command>")
subparser = subparsers.add_parser("this", help="do this")
subparser = subparsers.add_parser("that", help="do that")
parser.parse_args()
當運行「python test.py --help」我想列出可用的子命令。目前,我得到這樣的輸出:
usage: test.py [-h] <command> ...
optional arguments:
-h, --help show this help message and exit
subcommands:
<command>
this do this
that do that
我可以以某種方式刪除的子命令<command>
行上市,仍然保持它的使用習慣?我曾嘗試給help = argparse.SUPPRESS作爲add_subparsers的參數,但是它只是隱藏了幫助輸出中的所有子命令。
什麼'metavar'設置爲'None'(或離開其關閉)? - 或設置'metavar ='''... – mgilson
感謝您的回答!如果我將它設置爲None,我只需要獲得所有命令的列表,如果我使用'metavar =''',我會得到一個空行。在這兩種情況下,我都會在使用行中失去metavar。 –
哦,我現在得到你正在尋找的東西。不幸的是我不知道如何實現。 – mgilson