本文介绍了如何创建“对列表"类型的参数与 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?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!