如何应用optparse解析一组参数

How to apply optparse to parse a group of parameters

在 python 中,我们使用 optparse 来格式化我们的 CLI 参数。但是,我不知道如何将 add_option() 应用于支持组合或一组参数。

例如:

1) 我的 CLI 如何支持组合参数:

例如:

python test.py -ah

实际上,这个命令可以展开为:

python test.py -a -h

2) 我的 CLI 如何支持组参数:

例如:

python test.py -f f1.txt f2.txt f3.txt

本例中:space是分隔符,我们也可以定义逗号也作为分隔符。

不知道optparse能不能支持

您不应该将 optparse 用于新项目。 According to the docs:

Deprecated since version 2.7: The optparse module is deprecated and will not be developed further; development will continue with the argparse module.

您正在寻找的功能内置于 argparse:

import argparse

parser = argparse.ArgumentParser('Test program')
parser.add_argument('-a', action='store_true')
parser.add_argument('-v', action='store_true')
parser.add_argument('-f', nargs='+')
args = parser.parse_args()

print(args)

这产生:

$ python parser.py -av -f f1.txt f2.txt f3.txt
Namespace(a=True, f=['f1.txt', 'f2.txt', 'f3.txt'], v=True)