可以将argparse存储位置数参数作为简单变量吗?

时间:2012-01-21 12:41:52

标签: python arguments argparse

我想使用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

2 个答案:

答案 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'])