python知识点随手笔记1-利用Image模块检查图片像素是否符合要求

该Python脚本用于批量检查图片URL的格式是否正确以及图片尺寸是否超过400像素。它利用Image模块处理图片数据,通过urllib2处理HTTP请求。脚本会记录未能成功下载或尺寸超标的图片URL。
摘要由CSDN通过智能技术生成

在工作中,有时需要批量检查图片的格式是否符合一定的要求,这种需求用短小精悍的python再适合不过了,一个Image模块就可以搞定,不过首先,你得安装Image模块,因为这个模块不是python默认自带的模块。

闲话少说,上代码如下:

 
  1. #!/usr/bin/python

  2. # -*- coding: utf-8 -*-

  3. import Image

  4. import urllib2

  5. import StringIO

  6. from urllib2 import URLError

  7. img_file=open("img1.txt","r")

  8. img_out=open("img_out.txt","w+")

  9. not_200=0

  10. count=0

  11. greater_than_400=0

  12. img_list=[]

  13. for line in img_file:

  14. count=count+1

  15. print "on picture:",count

  16. try:

  17. response = urllib2.urlopen(line)

  18. img_data = response.read()

  19. img_buffer = StringIO.StringIO(img_data)

  20. im=Image.open(img_buffer)

  21. width=im.size[0]

  22. height=im.size[1]

  23. except URLError, e:

  24. if hasattr(e,'reason'): #stands for URLError

  25. print "can not reach a server,writing..."

  26. result_url.append(line)

  27. not_200+=1

  28. img_out.write(line)

  29. print "write url success!"

  30. elif hasattr(e,'code'): #stands for HTTPError

  31. print "find http error, writing..."

  32. result_url.append(line)

  33. not_200+=1

  34. img_out.write(line)

  35. print "write url success!"

  36. else: #stands for unknown error

  37. print "unknown error, writing..."

  38. result_url.append(line)

  39. not_200+=1

  40. img_out.write(line)

  41. print "write url success!"

  42. else:

  43. if width>400 or height>400:

  44. greater_than_400+=1

  45. img_list.append(line)

  46. print "url width or height >400 :",line

  47. img_out.write(line)

  48. print "success adding url:",line

  49. response.close()

  50. finally:

  51. pass

  52. print img_list

  53. print "check finished,总共检查了:",count,"条url"

  54. print "没有返回200的url总数:",not_200

  55. print "宽或高大于400像素的url总数:",greater_than_400

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值