首页 > 解决方案 > 选择带有“-x”参数的 argparse 选项

问题描述

客户要求 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

标签: pythonargparse

解决方案


问题是-t似乎正在开始一个新的选择。-可以通过预先插入伪参数来处理字面上包含的参数'--'(请参阅文档)。

在运行时:

args = parser.parse_args(['--', '-t'])

或从外壳:

python myscript.py -- -t

推荐阅读