zoukankan      html  css  js  c++  java
  • 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"..font301-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])+"
    ")    # 单词,词频
        fp.close()
    
    count = getCount(r".doc1.txt")
    saveFile("count.csv",count.most_common())
  • 相关阅读:
    词典 字符串+DP
    N 色球 数学
    loj6482. LJJ 爱数数
    loj2671. 「NOI2012」骑行川藏
    无标号生成树计数
    uoj272. 【清华集训2016】石家庄的工人阶级队伍比较坚强
    uoj328. 【UTR #3】量子破碎
    loj6402. yww 与校门外的树
    loj6674. 赛道修建
    06:MySQL分组查询子查询笔记6
  • 原文地址:https://www.cnblogs.com/sweetyu/p/6257574.html
Copyright © 2011-2022 走看看