python优化网站_[练习] 用PYTHON来优化网站中的图片

我到公司以来,第一次加班,哇,加一晚上加一上午,现在还没下班的迹象,555,困。

对于网站中的一些关键的页面,多重缓存、静态化、程序代码优化……之外,为了提高用户打开页面的速度,图片是必须要优化的。

如何优化呢,其实手工优化也绝对是值得的,也是最好的方法,但是我写了一个小脚本,与其说这个脚本的作用是优化图片,

不如说是给出一个参考,就是经过图片优化,可以减少网页多大的体积。

那脚本是如何工作呢,原理简单,大致是找到所有要优化的文件,用Pil库另存到本目录下的bak文件夹中,这个文件夹要自己先建好哦。

然后统计文件大小,给出结果,所以说这个脚本是“安全”的。任你运行多次,不会真正会改图片,只会把同名文件生成到相应的bak文件中。

代码如下:

#!/usr/bin/python#-*-coding:utf-8-*-#Filenam: pic_smaller.py#Author zhangyufeng_zzimportos, sysimportImage

error_log=['']

size_count=0##############################################defget_new_one(pic):globalerror_logtry:

im=Image.open(pic)printpic, im.format, im.size, im.mode#im.show()if(im.format=='JPEG'):

im.save("bak/"+pic)finally:

error_log.append(pic)############################################################################################defget_file_size_string(file1 , file2):globalerror_log, size_countif(notos.path.isfile(file1))or(notos.path.isfile(file2)):return0try:

f1=os.path.getsize(file1)

f2=os.path.getsize(file2)

size_count+=f1-f2

f='%s \t-> \t%s\t%dKB*%dKB \t\t = \t %d KB'%(file1, file2, f1/1024, f2/1024, (f1-f2)/1024)printffinally:

error_log.append('no')###############################################mainall=os.listdir('.')

pics=[]

formats=['jpg','png','JPG','PNG']forfileinos.listdir('.'):ifos.path.isfile(file):forfrinformats:iffile.find(fr)>0:

pics.append(file)forpicinpics:

get_new_one(pic)

get_file_size_string(pic ,'bak/'+pic)printsize_count/1024,'KB'

代码很简单,而且只是利用了pil的默认图片质量,关于图片的质量,我还没找到调整的方法。

为了感谢来这里看我发这么烂的帖子的人,我“郑重”推出我自恋的最“雷人工具”----查看博客园排名的脚本 —_—!

#!/usr/bin/python#-*-coding:utf-8-*-#Filenam: get_cnblogs.py#Author zhangyufeng_zzimportosimportsysimportrefromurllibimporturlopen

string=urlopen("http://www.cnblogs.com/AllBloggers.aspx").read()#file_object = open('string.txt')#--------------------------------------------------#try:#string = file_object.read()#finally:#file_object.close()#--------------------------------------------------usr_name='amboyna'url="http://www.cnblogs.com"usr_length=len(usr_name)

i=string.count(usr_name)

r=string.find(usr_name)

usr_string=string[r-60: r+50]

name_s=usr_string.find(usr_name+"/\">") + len(usr_name) + 3name_e=usr_string.find(" ")

name=usr_string[name_s  : name_e ]

small_s=usr_string.find('')

small_e=usr_string.find('. ')

no=usr_string[small_s+7: small_e]

http_s=usr_string.find(url)

http=usr_string[ http_s : http_s+len(url)+usr_length+1]print'\n'print'----------------------------------'print'ID:\t', usr_nameprint'NAME:\t', nameprint'NO.:\t', noprint'URL:\t', httpprint'----------------------------------\n'

把usr_name 改成你的用户名就成,附:我不是不会正则,我看了半晌python的文档,没找到如何使用正则的方法,如果哪位大大很明白,请回复一下啊,谢谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值