第十四章:应用构建模块-getopt:命令行选项解析-一个完整的例子

14.2.4 一个完整的例子
以下代码清单中的例子是一个更完整的程序,它有5个选项:-o,-v,–output,–verbose和–version。其中-o,–output和–version选项都需要一个参数。

import getopt
import sys

version = '1.0'
verbose = False
output_filename = 'default.out'

print('ARGV      :',sys.argv[1:])

try:
    options,remainder = getopt.getopt(
        sys.argv[1:],
        'o:v',
        ['output=',
         'verbose',
         'version=',
         ])
except getopt.GetoptError as err:
    print('ERROR:',err)
    sys.exit(1)

print('OPTIONS   :',options)

for opt,arg in options:
    if opt in ('-o','--output'):
        output_filename = arg
    elif opt in ('-v','--verbose'):
        verbose = True
    elif opt == '--version':
        version = arg

print('VERSION   :',version)
print('VERBOSE   :',verbose)
print('OUTPUT    :',output_filename)
print('REMAINING :',remainder)

可以采用多种不同方式来调用这个程序。如果不带任何参数地调用这个程序,那么会使用默认设置。
在这里插入图片描述

单字符选项与其参数可以使用空白符分隔。
在这里插入图片描述

或者,也可以把选项和值结合到一个参数中。
在这里插入图片描述

也可以类似地将长格式选项与值分隔。
在这里插入图片描述

一个长格式选项与它的值结合时,选项名和值要用一个=分隔。
在这里插入图片描述

14.2.5 缩写长格式选项
只要提供了一个唯一的前缀,就不必在命令行上完整地拼写出长格式选项。
在这里插入图片描述

如果没有提供一个唯一的前缀,则会产生一个异常。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43193719/article/details/93377726