Contents
12.22. getopt模块¶
12.22.1. Python getopt 模块¶
getopt模块,是配合sys.argv使用的一个扩展。
他可以接收终端的参数。格式扩展为“-n” 或 “--n”两种类型,下面是具体解释。
#!/usr/bin/env python
# -*- coding:utf8 -*-
# auther; 18793
# Date:2020/2/29 17:02
# filename: sample01.py
'''
improt getopt
import sys
# 例一
opts,args = getopt.getopt(sys.argv[1:], "ho:", ["help", "output="])
# 例二
opts,args = getopt.getopt(sys.argv[1:], "-h-o", ["help", "output"])
解释
语法格式为 getopt.getopt(sys.argv[1:],...),
getopt.getopt 为固定语法格式。
sys.argv[1:] 不把默认文件作为传入参数。
"ho:"/"-h-o":传入参数终端格式为“-n”,代码可简写为"nn",也可全写"-n-n","n:"带个":"符号表示,后面还要传一个值(不然会出错)。
["nnn","nnn="]:传入参数终端格式为“--nnn”,“nnn=”这个带“=”符号的好使,后面还要传一个值 比如 “ --nnn value”(不然会出错)。
分别有两个传入变量:opts,args :
opts:表示传入的参数,已list传入,参数与value,没有设置value默认为"", 没有字符。
args:表示传入错误的参数,多出的一些错误格式参数会被这个args已list格式传入。
'''
import getopt
import sys
opts, args = getopt.getopt(sys.argv[1:], "-h-f:-v", ["help", "filename=", "version"])
print(opts)
for opt_name, opt_value in opts:
if opt_name in ("-h", "--help"):
print("[*] Help info")
sys.exit()
if opt_name in ('-v', '--version'):
print("[*] Version is 0.01 ")
sys.exit()
if opt_name in ('-f', '--filename'):
fileName = opt_value
print("[*] Filename is ", fileName)
# do something
sys.exit()
'''
D:\Python-code\18.python标准库\getopt模块>python sample01.py -f hujianli.txt
[('-f', 'hujianli.txt')]
[*] Filename is hujianli.txt
D:\Python-code\18.python标准库\getopt模块>python sample01.py -v --filename filename
[('-v', ''), ('--filename', 'filename')]
[*] Version is 0.01
'''
参考文献