如何应用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)
在 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)