Python中opts模块的高级用法及示例
发布时间:2023-12-28 16:58:00
optparse是Python标准库中的一个模块,用于解析命令行参数。它提供了一种方便的方式来定义和处理命令行参数,并生成帮助信息。
optparse模块的高级用法包括:
1. 添加选项参数(选项参数指的是带有"-"或"--"前缀的参数):add_option()方法用于添加选项参数,可以指定短选项名和长选项名、参数个数、默认值、帮助信息等。
from optparse import OptionParser
parser = OptionParser()
parser.add_option("-f", "--file", dest="filename", help="input file name")
parser.add_option("-q", action="store_false", dest="verbose", default=True, help="don't print status messages to stdout")
(options, args) = parser.parse_args()
2. 添加位置参数(位置参数指的是不带"-"或"--"前缀的参数):add_argument()方法用于添加位置参数,可以指定参数名、参数个数、类型、帮助信息等。
from optparse import OptionParser
parser = OptionParser()
parser.add_argument("input", help="input file name")
parser.add_argument("output", help="output file name")
(options, args) = parser.parse_args()
3. 设置选项参数的类型和默认值:可以在add_option()方法中设置type参数来指定选项参数的类型,如int、float、string等。可以通过default参数来设置选项参数的默认值。
from optparse import OptionParser
parser = OptionParser()
parser.add_option("-n", type="int", dest="count", default=1, help="number of times to repeat")
(options, args) = parser.parse_args()
4. 使用回调函数处理选项参数:可以通过callback参数指定一个回调函数,当选项参数被解析时,会调用该回调函数进行相应的处理。
from optparse import OptionParser
def print_version(option, opt_str, value, parser):
print("Version 1.0")
parser = OptionParser()
parser.add_option("--version", action="callback", callback=print_version, help="print version information")
(options, args) = parser.parse_args()
5. 添加互斥组:可以使用add_option_group()方法添加互斥的选项参数组,同一时间只能选择一个参数。
from optparse import OptionParser, OptionGroup
parser = OptionParser()
group = OptionGroup(parser, "Dangerous Options", "Use with caution")
group.add_option("-n", "--noisy", action="store_false", dest="verbose", default=True, help="turn off verbose output")
group.add_option("-f", "--force", action="store_true", dest="force", default=False, help="force execution")
parser.add_option_group(group)
(options, args) = parser.parse_args()
示例:
from optparse import OptionParser
def parse_args():
parser = OptionParser(usage="usage: python myscript.py [options]")
parser.add_option("-f", "--file", dest="filename", help="input file name")
parser.add_option("-q", action="store_false", dest="verbose", default=True, help="don't print status messages to stdout")
(options, args) = parser.parse_args()
return options, args
options, args = parse_args()
print("Input file: %s" % options.filename)
print("Verbose mode: %s" % options.verbose)
print("Arguments: %s" % args)
这个示例定义了一个脚本,接受一个输入文件名和一个可选的不打印状态信息的开关。用户可以通过命令行传入参数来使用该脚本。
