python getopt模块_python笔记 - getopt模块

常配合sys模块,用来处理命令行参数

常用方法:

getopt

GetoptError

getopt(args, shortopts, longopts = [])用来处理命令行参数;GetoptError错误处理

args:         一般格式是配合sys模块的sys.argv

shortopts:  短格式(-)加字母 -p

longopts:   长格式(--)加单词 --port

#text.py

import sys

import getopt

try:

opts,args = getopt.getopt(sys.argv[1:],"hp:u",["help","port=","url="])

print(opts)

print(args)

except getopt.GetoptError as err:

print(str(err))

运行:

> text.py -h

[('-h', '')]

[]

> text.py -p 80

[('-p', '80')]

[]

> text.py --url https://www.baidu.com

[('--url', 'https://www.baidu.com')]

[]

> text.py 8080

[]

['8080']

> text.py -k

option -k not recognized

opts,args = getopt.getopt(sys.argv[1:],"hp:u",["help","port=","url="])

opts:

一个两元组的列表,每个元素为:( 选项串, 附加参数) ,如果没有附加参数则为空串'' 。

args:

一个列表,包含那些没有加‘-’或‘--’的参数,比如:80,p

sys.argv[1:]:

过滤掉第一个参数(sys.argv[0]是当前执行脚本的名字,不算作参数的一部分)

"hp:u":

短格式参数,':'表示后面带一个参数。hp:u定义了三个短格式参数:'h' 'p:' 'u','p:'代表p后面有一个值 -p 80

["help","port=","url="]:

长格式参数,'='表示后面带一个参数。--port 8080

#text.py

import sys

import getopt

def usage():

print("Usage: text.py -h help -p port -u URL")

try:

opts,args = getopt.getopt(sys.argv[1:],'hp:u',['help','port=','url='])

except getopt.GetoptError as err:

print(str(err))

usage()

sys.exit(0)

for o,a in opts:

if o in ('-h','--help'):

usage()

sys.exit(0)

elif o in ('-p','--port'):

print("PORT")

elif o in ('-u','--url'):

print("URL")

运行:

> text.py -h

Usage: text.py -h help -p port -u URL

> text.py -p 20

PORT

> text.py --url https://www.bilibili.com

URL

> text.py -p 80 --url https://www.bilibili.com

PORT

URL

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值