python应用案例

常用包:图片处理(PIL或Pillow)、网页解析(goose)、工具包下载安装(easy_install、pip)、数据库(MySQLdb)、Web开发(Django)、机器学习(numpy、pandas、scipy)、游戏开发(PyGame)、文件操作(os)

相关链接:http://blog.csdn.net/Gamer_gyt/article/details/46279915

      http://www.cnblogs.com/txw1958/p/python-tutorial-list.html

http://www.lfd.uci.edu/~gohlke/pythonlibs/#libxml-python

(一)批量处理图片   PIL(Image、ImageDraw、ImageFont)、os、time(时间戳)

import os,time
from PIL import Image,ImageDraw,ImageFont #源文件夹,目标文件夹,字体文件,屏幕分辨率(宽度,高度)

srcpath, destpath, fontfile = r".\src", r"..\dest", r"..\font\301-CAI978.ttf"
width, height = 640.0, 1136.0
def zoomSize(filename,imgtype):
imgtype = "jpeg" if imgtype=="jpg" else "png"
#获取文件创建时间 例:1483882912.37 Sun Jan 08 21:41:52 2017
t= time.ctime(os.path.getctime(filename))
print filename +" 创建时间:"+ t
im = Image.open(filename) #默认mode="r"
#在图片上添加创建时间
draw = ImageDraw.Draw(im)
fontsize = min(im.size)/30
font = ImageFont.truetype(fontfile, fontsize)
draw.text((0,im.height - fontsize),t,font=font,fill=(255,0,0))
#按比例缩放,使之适应屏幕分辨率
rate = max( im.width/width, im.height/height )
if rate!=0:
im.thumbnail((im.size[0]/rate , im.size[1]/rate)) #注:此处有两个括号,thumbnail的处理对象是元组
return im def batchZoomSize():
imgBatch = {}    #字典 {文件名:对应的处理后Image对象}
#切换至源文件目录,对每张图片进行处理
os.chdir(
srcpath)
for filename in
os.listdir(os.getcwdu()): #列举当前目录下的所有文件
postfix = os.path.splitext(filename)[1] #获取元祖 (文件名,文件后缀)
if postfix == ".jpg" or postfix == ".png":
imgBatch[filename]=zoomSize(filename, postfix)
#切换至目标文件目录,保存图片至目标文件夹,关闭图片文件
os.chdir(destpath)
for filename in imgBatch.keys():
imgBatch[filename].save(filename)
imgBatch[filename].close()

(二)生成序列号  random(随机数)、string(字符串)

import string,random
field = string.letters + string.digits #'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' def getRandom(size):
return "".join(random.sample(field,size)) def generate(n,group,size):
for i in range(n):
"-".join([getRandom(size) for i in range(group)])  #注意:()里面还有[],join的处理对象时列表 if __name__=="__main__":
print generate(2,4,4) #['YcwC-fzE4-93pl-ROnY', '76AI-h1Aa-BNK4-PuFR']

(三)统计单词词频  os、re(正则表达式)、collections.Counter(统计计数)

import os,re
from collections import Counter
'''
获取某一文件中的英文单词词频
例:Counter({word1:num1,word2:num2})
'''

def getCount(filename):
pattern = r'''[A-Za-z]+|\$?\d+%?$'''
with open(filename) as f:
r = re.findall(pattern,f.read())
return Counter(r)
'''
将结果保存到文件中
'''

def saveFile(filename,counter):
fp = open(filename,"w")for t in counter:
fp.write(bytes(t[0]) + "," + bytes(t[1])+"\n") # 单词,词频
fp.close() count = getCount(r".\doc\1.txt")
saveFile("count.csv",count.most_common())
上一篇:Maven入门指南② :Maven 常用命令,手动创建第一个 Maven 项目


下一篇:c语言线性表