Perl的Getop :: Python中的Long等价物:具有多个值的选项

时间:2015-12-30 11:47:35

标签: python

在Perl中,有一个

"="&$D5+1

具有将多个值传递给选项的功能的模块。示例,如下:

Getopt::Long  

Python中有没有相同的东西可以做同样的事情?我理解自己解析每个选项及其值,并对文件做任何事情。但我正在寻找开箱即用的东西,就像我们在Perl中所做的那样。

1 个答案:

答案 0 :(得分:4)

是的,你可以用Python argparse做到这一点。来自文档:https://docs.python.org/3/library/argparse.html#action

  

'附加' - 它存储一个列表,并将每个参数值附加到列表中。这对于允许多次指定选项很有用。用法示例:

>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('--foo', action='append')
>>> parser.parse_args('--foo 1 --foo 2'.split())
Namespace(foo=['1', '2'])

所以你的例子是:

#!/usr/bin/python
import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--file_list', action='append')

args = parser.parse_args()
if args.file_list:
    for f in args.file_list:
        print f

您可以使用python ./myscript.py --file_list a --file_list b --file_list c运行它。