问题描述
客户在Python脚本中要求输入新参数,该参数应具有以下两个值之一:-l
或-t
。
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("action",choices=['-l','-t'])
parser.parse_args(['-t'])
usage: [-h] {-l,-t}
: error: the following arguments are required: action
解决方法
问题在于-t
似乎正在开始一个新选项。可以通过事先插入伪参数-
(请参见docs)来处理字面包含'--'
的参数。
在运行时内:
args = parser.parse_args(['--','-t'])
或者从shell:
python myscript.py -- -t