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

如何在python中解析数量可变的命令行参数?,python,command-line-arguments,Python,Command Line Arguments,我是python新手,希望为python代码处理数量可变的参数,这样就可以处理这样的字符串- python abc.py -20 input1.txt input2.txt .. output.txt -20是可选的。必须至少有一个输入文件,但可以有任意数量的输入文件,最后还有一个必要的输出文件。我研究了argparse,我可以使用固定参数或可选参数,但无法解决这种情况。使用argparse。下面是一个例子: 运行: 为变量数参数添加nargs='+' parser.add_argument(

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

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

-20是可选的。必须至少有一个输入文件,但可以有任意数量的输入文件,最后还有一个必要的输出文件。我研究了argparse,我可以使用固定参数或可选参数,但无法解决这种情况。

使用argparse。下面是一个例子:

运行:


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

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

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

-20
表示什么?有了这么简单的东西,只要看一下sys.argv就足够了……界面必须像这样工作吗?使用
argparse
,完全像这样做会很难看,但是如果您不介意将CLI更改为更标准的格式,这将很容易。是的,sys.srgv工作得很好。
$ prog.py 1 2 3 4
4

$ prog.py 1 2 3 4 --sum
10
parser.add_argument("input", nargs='+')
parser.add_argument("output")

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