Python3 getopt — 解析命令行参数
    		       		warning:
    		            这篇文章距离上次修改已过429天,其中的内容可能已经有所变动。
    		        
        		                
                getopt 是 Python 的一个标准库模块,用于解析命令行选项和参数。它可以帮助你在编写脚本时处理命令行输入。
解析命令行参数的基本步骤如下:
- 导入 getopt模块。
- 使用 getopt.getopt方法解析命令行参数。
下面是一个简单的例子,演示如何使用 getopt 解析命令行参数:
import getopt
 
def main():
    try:
        opts, args = getopt.getopt(sys.argv[1:], "ho:", ["help", "output="])
    except getopt.GetoptError as err:
        # 输出错误信息,并显示帮助信息
        print(err)
        usage()
        sys.exit(2)
 
    output = None
    for o, a in opts:
        if o in ("-h", "--help"):
            usage()
            sys.exit()
        elif o in ("-o", "--output"):
            output = a
        else:
            assert False, "unhandled option"
 
    # 处理位置参数
    for arg in args:
        print("位置参数:", arg)
 
    # 处理解析出的选项和参数
    print("输出文件名:", output)
 
if __name__ == "__main__":
    main()在这个例子中,我们定义了一个 main 函数,它解析命令行参数。-h 或 --help 选项会显示帮助信息并退出程序,-o 或 --output 选项后面需要跟一个参数,指定输出文件名。sys.argv[1:] 是传给脚本的命令行参数列表,不包括脚本名本身。
getopt.getopt 方法的参数:
- 第一个参数是要解析的命令行参数列表。
- 第二个参数是短选项的字母,后面跟一个冒号(:)表示该选项需要参数。
- 第三个参数是长选项名称的列表,可以选择性地带有 =,表示长选项后面需要参数。
getopt.getopt 返回的是两个列表:
- 第一个列表 opts包含一个个 (选项, 值) 元组,如果是短选项,值会以空格分隔;如果是长选项,值会在=后面。
- 第二个列表 args包含所有未被解析的位置参数。
在解析过程中,如果有任何错误(如未知的选项,需要的选项缺失参数),getopt.GetoptError 异常会被抛出,并包含错误信息。
评论已关闭