📜  Python中的Getopt模块

📅  最后修改于: 2022-05-13 01:54:48.714000             🧑  作者: Mango

Python中的Getopt模块

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

Python getopt函数

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

示例 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()

输出:

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