本文介绍了如何创建“对列表"类型的参数与 argparse?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

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

其中 -sizes 选项的每个元素都是一对两个正整数.如何使用 argparse 实现这一点?

解决方案

定义自定义类型:

def 对(参数):# 为简单起见,假设 arg 是一对整数# 以逗号分隔.如果你想做更多# 验证,如果你提出 argparse.ArgumentError#遇到问题.返回 [int(x) for x in arg.split(',')]

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

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

然后

>>>p.parse_args('--sizes 1,3 4,6'.split())命名空间(大小=[[1, 3], [4, 6]])

I need to let the end user of my python script types something like:

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

where each element of the -sizes option is a pair of two positive integers. How can I achieve this with argparse ?

解决方案

Define a custom type:

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(',')]

then use this as the type for a regular argument:

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

Then

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

这篇关于如何创建“对列表"类型的参数与 argparse?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-06 00:18