argparse 标志以跳过位置参数
argparse flag to skip positional args
我有一个通常需要位置参数的脚本:some-script POS
。但是,当存在“--version”标志时,我希望能够 "waive" 位置参数要求:some-script --version
。
在 argparse 框架内是否有合适的方法来做到这一点?
我可以选择使用 "--version" in sys.argv
,但我希望能够使用 argparse。
您必须通过设置 nargs='?'
使位置参数可选,如果不存在则在您的代码中引发错误。例如:
parser.add_argument('POSITIONAL', dest='positional', nargs='?')
...
if parsed.positional is None:
print('Positional argument "POSITIONAL" is required')
sys.exit(1)
有一个 version
action 让这成为可能:
parser.add_argument('--version', action='version', version='%(prog)s 1.0')
我有一个通常需要位置参数的脚本:some-script POS
。但是,当存在“--version”标志时,我希望能够 "waive" 位置参数要求:some-script --version
。
在 argparse 框架内是否有合适的方法来做到这一点?
我可以选择使用 "--version" in sys.argv
,但我希望能够使用 argparse。
您必须通过设置 nargs='?'
使位置参数可选,如果不存在则在您的代码中引发错误。例如:
parser.add_argument('POSITIONAL', dest='positional', nargs='?')
...
if parsed.positional is None:
print('Positional argument "POSITIONAL" is required')
sys.exit(1)
有一个 version
action 让这成为可能:
parser.add_argument('--version', action='version', version='%(prog)s 1.0')