gpt4 book ai didi

python-2.7 - 如何使带有连字符 (-) 的命令行参数在 python v2.7 中显示为非可选参数?

转载 作者:行者123 更新时间:2023-12-03 16:50:15 25 4
gpt4 key购买 nike

我有以下 python 脚本

parser = argparse.ArgumentParser(description='Process controller.py arguments')
parser.add_argument("-b", help='Build number, e.g., 1234')
args = vars(parser.parse_args())

当我运行它时,我得到...

$ python CommandLineParser.py -h
usage: CommandLineParser.py [-h] [-b B]

Process controller.py arguments

optional arguments:
-h, --help show this help message and exit
-b B Build number, e.g., 1234

如何使“-b”显示为“非可选”参数(因为它不是!)。作为额外的奖励,我如何去掉它后面的大写“B”?谢谢!

最佳答案

你需要设置requiredTruemetavar (它负责B)到'':

parser.add_argument("-b", help='Build number, e.g., 1234', required=True, metavar='')

实际上,如果在 help 模式下运行脚本,您仍然会看到您的 required 参数是可选的。这是因为一个错误:argparse required arguments displayed under "optional arguments" :

The argparse module lists required args as optional in the default help message.

还有一些解决方法建议,但我更喜欢这个:添加您自己的必需参数组:

required_group = parser.add_argument_group('required arguments')
required_group.add_argument("-b", help='Build number, e.g., 1234', required=True, metavar='')

然后,您将在命令行中看到:

$ python test.py -h
usage: test.py [-h] -b

Process controller.py arguments

optional arguments:
-h, --help show this help message and exit

required arguments:
-b Build number, e.g., 1234

关于python-2.7 - 如何使带有连字符 (-) 的命令行参数在 python v2.7 中显示为非可选参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18774216/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com