我想使用argparse来获取一些(3)整数参数,并将它们用作程序体中的变量。运行下面的代码,每个变量都存储在一个元素列表中。这当然不是什么大问题,但是可以设置解析器将每个值放入一个简单的整数变量吗?
import argparse
def main():
parser = argparse.ArgumentParser(description='three positional integer arguments.')
parser.add_argument('picks', type=int, nargs='+', default=10,
help='number of selections per execution')
parser.add_argument('minchunk', type=int, nargs='+', default=2,
help='min chunk size')
parser.add_argument('maxchunk', type=int, nargs='+', default=8,
help='max chunk size')
args = parser.parse_args(['1', '2', '3'])
print args
return 0
答案 0 :(得分:2)
nargs = '+'
告诉argparse
在列表中收集一个或多个参数。
如果您删除nargs = '+'
:
import argparse
def main():
parser = argparse.ArgumentParser(
description = 'three positional integer arguments.')
parser.add_argument('picks', type = int, default = 10, nargs = '?',
help = 'number of selections per execution')
parser.add_argument('minchunk', type = int, default = 2, nargs = '?',
help = 'min chunk size')
parser.add_argument('maxchunk', type = int, default = 8, nargs = '?',
help = 'max chunk size')
args = parser.parse_args()
print args
main()
产量
Namespace(maxchunk=3, minchunk=2, picks=1)
答案 1 :(得分:0)
这样的东西?
(a,b,c) = parser.parse_args(['1','2','3'])