我是 python 新手,想为 python 代码处理可变数量的参数,以便可以处理这样的字符串 -
python abc.py -20 input1.txt input2.txt .. output.txt
-20 是可选的。必须至少有一个输入文件,但可以有任意数量的输入文件,最后还有一个必要的输出文件。我查看了 argparse,我可以做固定参数或可选参数,但无法解决这种情况。
我是 python 新手,想为 python 代码处理可变数量的参数,以便可以处理这样的字符串 -
python abc.py -20 input1.txt input2.txt .. output.txt
-20 是可选的。必须至少有一个输入文件,但可以有任意数量的输入文件,最后还有一个必要的输出文件。我查看了 argparse,我可以做固定参数或可选参数,但无法解决这种情况。
添加nargs='+'
可变编号参数。
parser.add_argument("input", nargs='+')
parser.add_argument("output")
$ ./test.py input1 input2 input3 output
Namespace(input=['input1', 'input2', 'input3'], output='output')
使用 argparse。这是来自argparse 文档的示例:
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