第十四章:应用构建模块-getopt:命令行选项解析-GNU式选项解析

14.2.6 GNU式选项解析
正常情况下,一旦遇到第一个非选项参数,选项处理就会停止。

在这里插入图片描述
要想以任意顺序混合选项和非选项参数,则要使用gnu_getopt()。

import getopt
import sys

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

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

try:
    options,remainder = getopt.gnu_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.7 结束参数处理
如果getopt()在输入参数中遇到–,那么它会停止处理余下的参数(作为选项)。这个特性可以用来传递看上去像选项的参数值,如以一个短横线(-)开头的文件名。
在这里插入图片描述

猜你喜欢

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