Python-getopt

getopt这个函数 就是用来抽取 sys.argv 获得的用户输入来确定执行步骤。

1、getopt

getopt是个模块,而这个模块里面又有getopt 函数。

getopt.getopt(args, shortopts, longopts=[])

该函数返回opts和args两个值:

  • opts 是一个存有所有选项及其输入值的元组.当输入确定后,这个值不能被修改。
    • shortopts 是短参数,类似python test.py -h # 输出帮助信息
    • longopts 是长参数,类似python test.py -help # 输出帮助信息
  • args 是去除有用的输入以后剩余的部分。
import getopt
import sys

arg = getopt.getopt(sys.argv[1:], '-h', ['help'])
print(arg)

运行程序

C:\>python test.py -h
([('-h', '')], [])

C:\>python test.py --help
([('--help', '')], [])

当存在多个选项时

import urllib.request
import getopt
import sys

#":"代表了当前参数是有值的,是一个参数名+参数值的参数
#长参数名的方式和短参数差不多,唯一的区别就是长参数如果要接收值,那必须得在后面加上一个"="
opts,args = getopt.getopt(sys.argv[1:],'-h-f:-v',['help','filename=','version'])
for opt_name,opt_value in opts:
    if opt_name in ('-h','--help'):
        print("[*] Help info")
        exit()
    if opt_name in ('-v','--version'):
        print("[*] Version is 0.01 ")
        exit()
    if opt_name in ('-f','--filename'):
        fileName = opt_value
        print("[*] Filename is ",fileName)
        exit()

运行(长名字同理)

C:\>python test.py -v
[*] Version is 0.01

C:\>python test.py -f=test
[*] Filename is  =test

C:\>python test.py -h
[*] Help info
posted @ 2022-12-20 20:30  Fanslyx  阅读(49)  评论(0)    收藏  举报