我正在尝试使用 argparse 模块来解析命令行中的参数。这是示例代码
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('bar')
parser.add_argument('-foo')
args=parser.parse_args()
print args
运行这个
python argparsing.py "hello"
Namespace(bar='hello', foo=None)
但是,这不起作用
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('bar','--foo')
#parser.add_argument('-foo')
args=parser.parse_args()
print args
运行这个会出错
python argparsing.py "hello"
Traceback (most recent call last):
File "argparsing.py", line 3, in <module>
parser.add_argument('bar','-foo')
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/argparse.py", line 1267, in add_argument
kwargs = self._get_optional_kwargs(*args, **kwargs)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/argparse.py", line 1397, in _get_optional_kwargs
raise ValueError(msg % tup)
ValueError: invalid option string 'bar': must start with a character '-'
两者之间的唯一区别是我在第一个代码中分别添加参数(在两行中),但将它们添加到与失败代码中的一个语句相同的行中。有人可以帮助我更好地理解这一点吗?