当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python Getopt用法及代码示例


获取选择模块是一个基于 Unix 建立的约定的命令行选项解析器getopt()函数。它通常用于解析参数序列,例如 sys.argv。换句话说,该模块帮助脚本解析 sys.argv 中的命令行参数。它的工作原理与C类似getopt()解析命令行参数的函数。

Python getopt 函数

该模块提供的第一个函数具有相同的名称,即 getopt() 。它的主要函数是解析命令行选项和参数列表。该函数的语法如下:

用法: getopt.getopt(args, options, [long_options])

参数:
args:要传递的参数列表。
options:脚本想要识别的选项字母字符串。需要参数的选项后面应跟一个冒号 (:)。
long_options:具有长选项名称的字符串列表。需要参数的选项后面应跟一个等号 (=)。

返回类型:返回由两个元素组成的值:第一个元素是(选项,值)对的列表。第二个是选项列表被删除后留下的程序参数列表。

示例 1:


import sys 
import getopt 
  
  
def full_name(): 
    first_name = None
    last_name = None
  
    argv = sys.argv[1:] 
  
    try: 
        opts, args = getopt.getopt(argv, "f:l:") 
      
    except: 
        print("Error") 
  
    for opt, arg in opts: 
        if opt in ['-f']: 
            first_name = arg 
        elif opt in ['-l']: 
            last_name = arg 
      
  
    print( first_name +" " + last_name) 
  
full_name()     

输出:

这里我们创建了一个函数full_name(),它从命令行获取名字和姓氏后打印全名。我们还将名字缩写为‘f’,姓氏缩写为‘l’。

示例 2:现在让我们看一下这种情况,我们可以使用完整的形式,如‘first_name’和‘last_name’,而不是像‘f’或‘l’这样的缩写。下面的代码使用完整的形式来打印全名;


import sys 
import getopt 
  
def full_name(): 
    first_name = None
    last_name = None
  
    argv = sys.argv[1:] 
  
    try: 
        opts, args = getopt.getopt(argv, "f:l:",  
                                   ["first_name =", 
                                    "last_name ="]) 
      
    except: 
        print("Error") 
  
    for opt, arg in opts: 
        if opt in ['-f', '--first_name']: 
            first_name = arg 
        elif opt in ['-l', '--last_name']: 
            last_name = arg 
      
  
    print( first_name +" " + last_name) 
  
full_name() 

输出:

注意:应使用代码中参数的短形式的单破折号(“-”)和长形式的双破折号(“-”)。



相关用法


注:本文由纯净天空筛选整理自RajuKumar19大神的英文原创作品 Getopt module in Python。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。