背景
我有一个脚本,其中使用parseargs
部分解析输入。
parser = argparse.ArgumentParser()
parser.add_argument("-c", action="store_true")
nspc = parser.parse_known_args()
使用parseargs的原因是允许-c选项出现在输入中的任何位置。我只想解析此选项,然后在代码中稍后自己进行其他解析。这样做的原因是,脚本从配置文件接受大量参数,即,myscript.py在运行时才知道参数。
问题我遇到的问题是,某些参数可能以字母“ c”开头,所以如果我说
$ myscript.py "some argument" -cdef
我得到错误
myscript.py:错误:参数-c:忽略显式参数'ef'
因为我说过
parser.add_argument("-c", ...
,所以我希望可以解析-c
,但不会解析。显然,-cdef
是可选参数。如何告诉解析器
-c
是一个选项,但-c
不是一个选项? 最佳答案
将--
用作多字符参数名称。
在UNIX中,-cdef
表示-c -d -e -f
是相当普遍的,而--cdef
是一个选项。 argparse
遵循此约定。
(例如:ls -la
等同于ls -l -a
,而ls --color
只是一个选项。)
关于python - Python2.7 argparse.parse_known_args错误解析,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17887044/