【发布时间】:2013-10-14 05:50:39
【问题描述】:
这是我的 argparse 示例,比如 sample.py
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("-p", nargs="+", help="Stuff")
args = parser.parse_args()
print args
Python - 2.7.3
我希望用户在 -p 选项之后提供由空格分隔的参数列表。例如,如果您运行
$ sample.py -p x y
Namespace(p=['x', 'y'])
但我的问题是当你运行时
$ sample.py -p x -p y
Namespace(p=['y'])
既不在这里也不在那里。我想要以下之一
- 向用户抛出异常,要求他不要使用 -p 两次,而是将它们作为一个参数提供
- 假设它是相同的选项并生成一个 ['x','y'] 列表。
我可以看到 python 2.7 没有做这两个让我感到困惑。我可以让 python 执行上面记录的两种行为之一吗?
【问题讨论】:
-
你当然可以通过继承
argparse.Action来让它做你想做的事。
标签: python python-2.7 argparse