Python实用工具介绍
2016-09-02 10:08
295 查看
1. Socket通信
server:
client:
另 socket模块的其他用法:
import socket
#获得主机名
socket.gethost()
#解析域名的ip地址
socet.gethostbyname(‘www.baidu.com’)
2. PIL库使用
示例是一个生成图片验证码的程序:
3. python 命令行程序调试工具,取代传统的print打印,使用模块pdb.
用pdb调试有多种方式可选:
1) 命令行启动目标程序,加上-m参数,这样调用myscript.py的话断点就是程序的执行第一行之前
python -m pdb code.py(程序名)
2) 比较常用的,就是在程序中间插入一段程序,相对于在一般IDE里面打上断点然后启动debug,不过这种方式是hardcode的
for x in range(width):
for y inrange(height):
importpdb
pdb.set_trace()
x =str(x) + y
draw.point((x, y), fill=rndColor())
然后正常运行脚本,到了pdb.set_trace()那就会定下来,就可以看到调试的提示符(Pdb)了。
参数介绍:
1)b(reak), 设置断点,例如 “b 77″,就是在当前脚本的77行打上断点,还能输入函数名作为参数,断点就打到具体的函数入口,如果只敲b,会显示现有的全部断点
2)condition bpnumber [condition],设置条件断点,下面语句就是对第4个断点加上条件“a==3”
(Pdb) condition 4 a==3
3)cl(ear),如果后面带有参数,就是清除指定的断点;如果不带参数就是清除所有的断点
(Pdb) b
Num Type Disp Enb Where
4 breakpoint keep yes at /Users/iphone/git/yys-test/code.py:11
5 breakpoint keep yes at /Users/iphone/git/yys-test/code.py:15
(Pdb) cl 4
Deleted breakpoint 4
(Pdb) b
Num Type Disp Enb Where
5 breakpoint keep yes at /Users/iphone/git/yys-test/code.py:15
4)disable/enable,禁用/激活断点
(Pdb) disable 15
No breakpoint numbered 15
(Pdb) disable 5
(Pdb) b
Num Type Disp Enb Where
5 breakpoint keep no at /Users/iphone/git/yys-test/code.py:15
6 breakpoint keep yes at /Users/iphone/git/yys-test/code.py:7
7 breakpoint keep yes at /Users/iphone/git/yys-test/code.py:11
5)其他一些指令参数
n(ext),让程序运行下一行,如果当前语句有一个函数调用,用n是不会进入被调用的函数体中的
s(tep),跟n相似,但是如果当前有一个函数调用,那么s会进入被调用的函数体中
c(ont(inue)),让程序正常运行,直到遇到断点
j(ump),让程序跳转到指定的行数
p,最有用的命令之一,打印某个变量
3. 时间转化与格式化
importtime,datetime
#time 转为字符串形式
c80b
printtime.strftime("%Y-%m-%d %X", time.localtime())
#字符串转为time形式
t =time.strptime("2016 - 08 - 08", "%Y - %m - %d")
#将整数按年,月,日,时, 分, 秒的形式转为datetime类型
d =datetime.datetime(2016,8,29,10,10,10)
符:
%a 英文星期简写
%A 英文星期的完全
%b 英文月份的简写
%B 英文月份的完全
%c 显示本地日期时间
%d 日期,取1-31
%H 小时, 0-23
%I 小时, 0-12
%m 月, 01 -12
%M 分钟,1-59
%j 年中当天的天数
%w 显示今天是星期几
%W 第几周
%x 当天日期
%X 本地的当天时间
%y 年份 00-99间
%Y 年份的完整拼写
4. 常用的python内建函数.
1)删减
T2.lstrip()移除字符串前面字符(默认空格),返回字符串
T2.rstrip()移除字符串后面字符(默认空格),返回字符串
T2.strip()移除字符串前后面空格,返回字符串默认空格,可以其他字符 S.strip('"')
2)切割
split([sep[,maxsplit]]),
#以sep为分隔符,把S分成一个list。maxsplit表示分割的次数。默认的分割符为空白字符
rsplit([sep[,maxsplit]])#从右到左切割
3)变形
lower(),#全部小写
upper(),#全部小写
capitalize(),#首字母大写
swapcase(),#大小写交换
capwords(s)#每个单词第一个大写,其他小写
4)连接
join(seq)
join() #它的功用是将可迭代的字符串序列连接成一条长字符串,如:
a= {‘a’:1, ‘b’:2, ‘c’:3}
b= ‘;’.join(‘%s=%s’%(k,v) for k,v in a.items())
printb
‘a=1;b=2;c=3’
5)查找
count(sub[, start[, end]]),#计算sub在S中出现的次数
find(sub[, start[, end]]),#返回S中出现sub的第一个字母的标号,如果S中没有sub则返回-1。
index(substr[, start[, end]]),#与find()相同,只是在S中没有substr时,会返回一个运行时错误
find()----找到的第一个符合字符的index
rfind()-----找到最后一个符合的字符的index
备注:
find()函数族找不到时返回-1,index()函数族则抛出ValueError异常。
另,也可以用in和 not in操作符来判断字符串中是否存在某个模板
6)删除列表里的元素
L= [2,3]
pop() #默认删除列表里的最后一个元素
L.pop()
[2]
delL[1] #表示删除列表L里的第二个元素
[2]
L.remove(3)#删除列表L里的某个值
[2]
server:
#coding:utf-8 from socket import * from time import ctime host = '' #绑定的ip port = 21567 #绑定的端口 addr = (host,port) #套接字与连接协议,这里是tcp,socket.SOCK_DGRAM是udp. tcpSerSock = socket(AF_INET,SOCK_STREAM) tcpSerSock.bind(addr) tcpSerSock.listen(5) while True: print'waiting for connetion....' #等待接收客户端请求,返回新的套接字与IP地址 connection,addr = tcpSerSock.accept() print'...connetion from :',addr whileTrue: # data = connection.recv(1024) if not data: break s = 'say' t = ctime() #print addr,s,data #sdata = 'servicer say on' print addr,t,s,data sdata = raw_input('> ') cdata = 'sorry,I am so busy' if sdata: # connection.send(sdata) connection.send('[%s] %s'% (ctime(),sdata)) else: connection.send('[%s] %s'% (ctime(),cdata))
client:
from socket import * host = '127.0.0.1' #server add port = 21567 BUFSIZ = 1024 addr = (host,port) tcpCliSock = socket(AF_INET,SOCK_STREAM) tcpCliSock.connect(addr) while True: data =raw_input('> ') if not data: break tcpCliSock.send(data) data =tcpCliSock.recv(BUFSIZ) if not data: break print data tcpCliSock.close()
另 socket模块的其他用法:
import socket
#获得主机名
socket.gethost()
#解析域名的ip地址
socet.gethostbyname(‘www.baidu.com’)
2. PIL库使用
import Image # 打开一个jpg图像文件,注意路径要改成你自己的: im = Image.open('/Users/iphone/Pictures/qiao.jpg') # 获得图像尺寸: w, h = im.size # 缩放到50%: im.thumbnail((w//2, h//2)) # 把缩放后的图像用jpeg格式保存: im.save('/Users/iphone/Pictures/qiao1.jpg','jpeg') 其他功能如切片、旋转、滤镜、输出文字、调色板等一应俱全。 比如,模糊效果也只需几行代码:import Image, ImageFilter im = Image.open('/Users/iphone/Pictures/qiao.jpg') im2 = im.filter(ImageFilter.BLUR)im2.save('/Users/iphone/Pictures/qiao2.jpg','jpeg')
示例是一个生成图片验证码的程序:
#encoding=utf-8 import Image, ImageDraw, ImageFont, ImageFilter import random # 随机字母: def rndChar(): returnchr(random.randint(65, 90)) # 随机颜色1: def rndColor(): return(random.randint(64, 255), random.randint(64, 255), random.randint(64, 255)) # 随机颜色2: def rndColor2(): return(random.randint(32, 127), random.randint(32, 127), random.randint(32, 127)) # 240 x 60: width = 60 * 4 height = 60 image = Image.new('RGB', (width, height), (255, 255,255)) # 创建Font对象: font = ImageFont.truetype('/Library/Fonts/Arial.ttf',36) # 创建Draw对象: draw = ImageDraw.Draw(image) # 填充每个像素: for x in range(width): for y inrange(height): draw.point((x, y), fill=rndColor()) # 输出文字: for t in range(4): draw.text((60 * t + 10, 10), rndChar(), font=font, fill=rndColor2()) # 模糊: image = image.filter(ImageFilter.BLUR) image.save('code.jpg', 'jpeg'); image.show('code.jpg')
3. python 命令行程序调试工具,取代传统的print打印,使用模块pdb.
用pdb调试有多种方式可选:
1) 命令行启动目标程序,加上-m参数,这样调用myscript.py的话断点就是程序的执行第一行之前
python -m pdb code.py(程序名)
2) 比较常用的,就是在程序中间插入一段程序,相对于在一般IDE里面打上断点然后启动debug,不过这种方式是hardcode的
for x in range(width):
for y inrange(height):
importpdb
pdb.set_trace()
x =str(x) + y
draw.point((x, y), fill=rndColor())
然后正常运行脚本,到了pdb.set_trace()那就会定下来,就可以看到调试的提示符(Pdb)了。
参数介绍:
1)b(reak), 设置断点,例如 “b 77″,就是在当前脚本的77行打上断点,还能输入函数名作为参数,断点就打到具体的函数入口,如果只敲b,会显示现有的全部断点
2)condition bpnumber [condition],设置条件断点,下面语句就是对第4个断点加上条件“a==3”
(Pdb) condition 4 a==3
3)cl(ear),如果后面带有参数,就是清除指定的断点;如果不带参数就是清除所有的断点
(Pdb) b
Num Type Disp Enb Where
4 breakpoint keep yes at /Users/iphone/git/yys-test/code.py:11
5 breakpoint keep yes at /Users/iphone/git/yys-test/code.py:15
(Pdb) cl 4
Deleted breakpoint 4
(Pdb) b
Num Type Disp Enb Where
5 breakpoint keep yes at /Users/iphone/git/yys-test/code.py:15
4)disable/enable,禁用/激活断点
(Pdb) disable 15
No breakpoint numbered 15
(Pdb) disable 5
(Pdb) b
Num Type Disp Enb Where
5 breakpoint keep no at /Users/iphone/git/yys-test/code.py:15
6 breakpoint keep yes at /Users/iphone/git/yys-test/code.py:7
7 breakpoint keep yes at /Users/iphone/git/yys-test/code.py:11
5)其他一些指令参数
n(ext),让程序运行下一行,如果当前语句有一个函数调用,用n是不会进入被调用的函数体中的
s(tep),跟n相似,但是如果当前有一个函数调用,那么s会进入被调用的函数体中
c(ont(inue)),让程序正常运行,直到遇到断点
j(ump),让程序跳转到指定的行数
p,最有用的命令之一,打印某个变量
3. 时间转化与格式化
importtime,datetime
#time 转为字符串形式
c80b
printtime.strftime("%Y-%m-%d %X", time.localtime())
#字符串转为time形式
t =time.strptime("2016 - 08 - 08", "%Y - %m - %d")
#将整数按年,月,日,时, 分, 秒的形式转为datetime类型
d =datetime.datetime(2016,8,29,10,10,10)
符:
%a 英文星期简写
%A 英文星期的完全
%b 英文月份的简写
%B 英文月份的完全
%c 显示本地日期时间
%d 日期,取1-31
%H 小时, 0-23
%I 小时, 0-12
%m 月, 01 -12
%M 分钟,1-59
%j 年中当天的天数
%w 显示今天是星期几
%W 第几周
%x 当天日期
%X 本地的当天时间
%y 年份 00-99间
%Y 年份的完整拼写
4. 常用的python内建函数.
1)删减
T2.lstrip()移除字符串前面字符(默认空格),返回字符串
T2.rstrip()移除字符串后面字符(默认空格),返回字符串
T2.strip()移除字符串前后面空格,返回字符串默认空格,可以其他字符 S.strip('"')
2)切割
split([sep[,maxsplit]]),
#以sep为分隔符,把S分成一个list。maxsplit表示分割的次数。默认的分割符为空白字符
rsplit([sep[,maxsplit]])#从右到左切割
3)变形
lower(),#全部小写
upper(),#全部小写
capitalize(),#首字母大写
swapcase(),#大小写交换
capwords(s)#每个单词第一个大写,其他小写
4)连接
join(seq)
join() #它的功用是将可迭代的字符串序列连接成一条长字符串,如:
a= {‘a’:1, ‘b’:2, ‘c’:3}
b= ‘;’.join(‘%s=%s’%(k,v) for k,v in a.items())
printb
‘a=1;b=2;c=3’
5)查找
count(sub[, start[, end]]),#计算sub在S中出现的次数
find(sub[, start[, end]]),#返回S中出现sub的第一个字母的标号,如果S中没有sub则返回-1。
index(substr[, start[, end]]),#与find()相同,只是在S中没有substr时,会返回一个运行时错误
find()----找到的第一个符合字符的index
rfind()-----找到最后一个符合的字符的index
备注:
find()函数族找不到时返回-1,index()函数族则抛出ValueError异常。
另,也可以用in和 not in操作符来判断字符串中是否存在某个模板
6)删除列表里的元素
L= [2,3]
pop() #默认删除列表里的最后一个元素
L.pop()
[2]
delL[1] #表示删除列表L里的第二个元素
[2]
L.remove(3)#删除列表L里的某个值
[2]
相关文章推荐
- Python:实用抓图工具开发介绍(含需求分析、设计、编码、单元测试、打包、系统测试、发布各环节)
- Python:实用抓图工具开发介绍(含需求分析、设计、编码、单元测试、打包、系统测试、发布各环节)
- python实用小工具介绍
- ARM开发软件及实用工具介绍
- 转帖:ARM 开发软件及实用工具介绍
- ARM 开发软件及实用工具介绍
- The Python Profilers (python性能优化工具介绍)
- 介绍Python程序员常用的IDE和其它开发工具
- ARM开发软件及实用工具介绍
- 介绍Python程序员常用的IDE和其它开发工具
- ARM 开发软件及实用工具介绍
- ARM开发软件及实用工具介绍(转)
- Python几种开发工具介绍
- ARM开发软件及实用工具介绍(转)
- 几个实用工具软件的介绍
- 介绍一款超实用的演讲必备工具 ZoomIt
- python的几种开发工具介绍
- 介绍一个实用的小工具
- Python几种开发工具介绍
- (转)介绍Python程序员常用的IDE和其它开发工具