如何在python中解析可变数量的命令行参数?

时间:2013-01-29 00:25:09

标签: python command-line-arguments

我是python的新手,想要为python代码处理可变数量的参数,以便可以处理这样的字符串 -

python abc.py -20 input1.txt input2.txt .. output.txt

-20是可选的。必须至少有一个输入文件,但最后可以有任意数量的输入文件和必要的输出文件。我查看了argparse,我可以做固定的参数或可选的但是无法解决这个问题。

2 个答案:

答案 0 :(得分:3)

为变量号参数添加nargs='+'

parser.add_argument("input", nargs='+')
parser.add_argument("output")

$ ./test.py input1 input2 input3 output
Namespace(input=['input1', 'input2', 'input3'], output='output')

答案 1 :(得分:-1)

使用argparse。以下是argparse docs的示例:

import argparse

parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('integers', metavar='N', type=int, nargs='+',
                   help='an integer for the accumulator')
parser.add_argument('--sum', dest='accumulate', action='store_const',
                   const=sum, default=max,
                   help='sum the integers (default: find the max)')

args = parser.parse_args()
print(args.accumulate(args.integers))

执行命令

$ prog.py 1 2 3 4
4

$ prog.py 1 2 3 4 --sum
10