Python2.7 argparse.parse_已知_args解析错误
背景 我有一个脚本,使用Python2.7 argparse.parse_已知_args解析错误,python,python-2.7,argparse,Python,Python 2.7,Argparse,背景 我有一个脚本,使用parseargs部分解析输入 parser = argparse.ArgumentParser() parser.add_argument("-c", action="store_true") nspc = parser.parse_known_args() 使用parseargs的原因是允许-c选项出现在输入中的任何位置。我只想解析这个选项,然后在代码的后面我自己做额外的解析。原因是,脚本接受配置文件中的大量参数,即myscript.py直到运行时才知道这些参数 我
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_参数(“-c)”,…
,我希望-c
会被解析,但-cdef
不会。显然,-c
是一个可选参数
如何告诉解析器-c
是选项,而-cdef
不是选项?对于多字符参数名称,请使用--
在UNIX中,-cdef
通常表示-c-d-e-f
,而-cdef
是一个单一选项。argparse
遵循此约定
(例如:ls-la
相当于ls-l-a
,而ls--color
只是一个选项。)对于多字符参数名称,请使用--
在UNIX中,-cdef
通常表示-c-d-e-f
,而-cdef
是一个单一选项。argparse
遵循此约定
(例如:
ls-la
相当于ls-l-a
,而ls-color
只是一个选项。)哇,我觉得自己很笨。谢谢你的快速反应!哇,我觉得自己很笨。谢谢你的快速反应!