背景的
我有一个脚本,我使用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:error:参数-c:忽略显式参数'ef'
由于我说parser.add_argument("-c", ...
我希望解析-c
但-cdef
不会。显然,-c
是一个可选参数。
如何告诉解析器-c
是一个选项,但-cdef
不是?
答案 0 :(得分:4)
将--
用于多字符参数名称。
在UNIX中,-cdef
表示-c -d -e -f
相当常见,而--cdef
是单一选项。 argparse
遵循这一惯例。
(例如:ls -la
相当于ls -l -a
,而ls --color
只是一个选项。)