命令行参数接受 -SS 也如预期的那样使用 argparse -S
Command line args accepting -SS also where as expected is -S using argparse
我有如下定义的命令行参数 -S
import argparse
parser = argparse.ArgumentParser()
parser.add_argument(
'-S',
'--save',
action='store_true',
help='Save to directory'
)
但是如果我使用 -SS 而不是 -S,python 不会抛出任何错误。我想要无效参数错误。谁能告诉我如何做到这一点?
您需要在 argparse.ArgumentParse
中使用 allow_abbrev=False
import argparse
parser = argparse.ArgumentParser(allow_abbrev=False)
parser.add_argument('-S',action='store_true',help='Save to directory')
parser.parse_args()
输出:
user@localhost:/tmp$ python3 temp.py -S
user@localhost:/tmp$ python3 temp.py -SS
usage: temp.py [-h] [-S]
temp.py: error: unrecognized arguments: -SS
用-SS
调用时出现错误
不要使用 Single Dash
。
使用 Double Dash
。因为在单个破折号中(占用一个字符),
当你做 -SS
时它等同于 -S -S
这就是为什么没有错误。
但是如果你使用 Double Dash 那么它将是
--SS => --SS
我有如下定义的命令行参数 -S
import argparse
parser = argparse.ArgumentParser()
parser.add_argument(
'-S',
'--save',
action='store_true',
help='Save to directory'
)
但是如果我使用 -SS 而不是 -S,python 不会抛出任何错误。我想要无效参数错误。谁能告诉我如何做到这一点?
您需要在 argparse.ArgumentParse
allow_abbrev=False
import argparse
parser = argparse.ArgumentParser(allow_abbrev=False)
parser.add_argument('-S',action='store_true',help='Save to directory')
parser.parse_args()
输出:
user@localhost:/tmp$ python3 temp.py -S
user@localhost:/tmp$ python3 temp.py -SS
usage: temp.py [-h] [-S]
temp.py: error: unrecognized arguments: -SS
用-SS
不要使用 Single Dash
。
使用 Double Dash
。因为在单个破折号中(占用一个字符),
当你做 -SS
时它等同于 -S -S
这就是为什么没有错误。
但是如果你使用 Double Dash 那么它将是
--SS => --SS