Python argparse 严格变量名
Python Argparse strict variable name
我试图了解 python 的 argparse 的功能(或错误?)。
在这里,我的简单代码:
import argparse
parser = argparse.ArgumentParser(usage="%(prog)s [--start]", add_help=False)
parser.add_argument("--start", help="Start prog", action="store_true")
arguments = parser.parse_args()
start_fpc = arguments.start
print arguments
当我执行这个脚本时,start
和 star
参数都被接受:
[ rsenet 2015-08-28 12:39:50] /tmp
$ python test.py --star
Namespace(start=True)
[ rsenet 2015-08-28 13:59:16] /tmp
$ python test.py --start
Namespace(start=True)
知道为什么吗?如果是,是否可以禁用此功能?
您需要禁用 allow_abbrev
选项,在 v3.5 中 was introduced。
摘自argparse doc:
- allow_abbrev_ - Allows long options to be abbreviated if the
abbreviation is unambiguous. (default:
True
)
这应该有帮助:
parser = argparse.ArgumentParser(usage="%(prog)s [--start]",
allow_abbrev=False,
add_help=False)
我试图了解 python 的 argparse 的功能(或错误?)。
在这里,我的简单代码:
import argparse
parser = argparse.ArgumentParser(usage="%(prog)s [--start]", add_help=False)
parser.add_argument("--start", help="Start prog", action="store_true")
arguments = parser.parse_args()
start_fpc = arguments.start
print arguments
当我执行这个脚本时,start
和 star
参数都被接受:
[ rsenet 2015-08-28 12:39:50] /tmp
$ python test.py --star
Namespace(start=True)
[ rsenet 2015-08-28 13:59:16] /tmp
$ python test.py --start
Namespace(start=True)
知道为什么吗?如果是,是否可以禁用此功能?
您需要禁用 allow_abbrev
选项,在 v3.5 中 was introduced。
摘自argparse doc:
- allow_abbrev_ - Allows long options to be abbreviated if the abbreviation is unambiguous. (default:
True
)
这应该有帮助:
parser = argparse.ArgumentParser(usage="%(prog)s [--start]",
allow_abbrev=False,
add_help=False)