python - 如何使用 argparse 创建类型为 "list of pairs"的参数?

标签 python argparse

我需要让我的 python 脚本的最终用户键入如下内容:

script.py -sizes <2,2> <3,3> <6,6>

-sizes 选项的每个元素都是一对两个正整数。如何使用 argparse 实现此目的?

最佳答案

定义自定义类型:

def pair(arg):
    # For simplity, assume arg is a pair of integers
    # separated by a comma. If you want to do more
    # validation, raise argparse.ArgumentError if you
    # encounter a problem.
    return [int(x) for x in arg.split(',')]

然后将其用作常规参数的类型:

p.add_argument('--sizes', type=pair, nargs='+')

然后

>>> p.parse_args('--sizes 1,3 4,6'.split())
Namespace(sizes=[[1, 3], [4, 6]])

关于python - 如何使用 argparse 创建类型为 "list of pairs"的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33499173/

相关文章:

python - 有没有一种方法可以在 python 的 argparse 中创建参数,如果没有给出值则返回 true

python - 为什么 x -= x + 4 返回 -4 而不是 4

python - 测试字典键是否存在,不为空且不为空

python - 我的菜谱搜索程序(守护进程)的图像缓存循环出错

python - 为什么在将选项放在其余位置参数之前时 argparse 会失败?

Python 多处理通过 argparse 和 pyinstaller 抛出错误

python - Argparse 参数生成的帮助, 'metavar' 有选择

python - 为什么 Python 的 argparse 对 SystemExit 使用错误代码 2?

python - Spyder 导入 basemap 时出现 PROJ_LIB 错误

python - 在 setup.py 中将 python-dev 列为 install_requires