仅仅根据文件后缀判断文件类型显然不准,在python有一个内置模块imghdr可以用来判断图片的真实类型。代码如下:

import imghdr

imgType = imghdr.what(imageFile)

将会输出gif,png,jpeg等图片类型 。其原理是通过读取文件的开头的一段字符进行类型匹配 。具体查看了下代码,imageFile只能是本地文件,不可以是url 远程文件。具体可以个修改下该模块,使其支持远程文件。

使用场景:

经常在抓取一些站点上的图片时,有些站点上的图片直接是不带文件类型的,如:http://segmentfault.com/img/bVksck ,可以通过该模块进行抓取后,为文件增加相应的后缀名,而如果发现抓取的文件不是图片类型文件时进行删除(避免抓到别人修改过的图片木马),以下是一个简单的判断删除示例:

import imghdr,os

#filename = 'img.py'

filename = 'bVksck'

imgType = imghdr.what(filename)

if imgType:

print imgType

newName = (filename + '.' + imgType)

os.rename(filename,newName)

else:

print 'the file is not a pic,rm it now'

os.remove(filename)

python判断图片类型_Python判断图片真实类型相关推荐

  1. python下载文件损坏_Python检查图片是否损坏及图片类型是否正确过程详解

    检查图片是否损坏 日常工作中,时常会需要用到图片,有时候图片在下载.解压过程中会损坏,而如果一张一张点击来检查就太不Cool了,因此我想大家都需要一个检查脚本: 测试图片,0.jpg是正常的,brok ...

  2. python怎么判断是不是列表_python判断变量是否为int、字符串、列表、元组、字典等方法...

    在实际写程序中,经常要对变量类型进行判断,除了用type(变量)这种方法外,还可以用isinstance方法判断: #!/usr/bin/env python a = 1 b = [1,2,3,4] ...

  3. python判断是不是整数1002python判断是不是整数_Python判断一个数是不是为整数的方法...

    Python判断一个数是不是为整数的方法 发布时间:2020-07-08 15:44:30 来源:亿速云 阅读:84 作者:清晨 不懂Python判断一个数是不是为整数的方法?其实想解决这个问题也不难 ...

  4. python显示图片列表_python读取图片任意范围区域

    使用python进行图片处理,现在需要读出图片的任意一块区域,并将其转化为一维数组,方便后续卷积操作的使用. 下面使用两种方法进行处理: convert 函数 from PIL import Imag ...

  5. python读取图片格式_Python读取图片尺寸、图片格式

    Python读取图片尺寸.图片格式 需要用到PIL模块,使用pip安装Pillow.Pillow是从PIL fork过来的Python 图片库. from PIL import Image im = ...

  6. python处理pdf实例_Python程序图片和pdf上文字识别实例

    实例一:先减少背景杂音,再做图片文字识别 为了提高识别率,先用opencv-python对扫描的图片做预处理(减少背景杂音),然后调用pytesseract识别图片上的文字.处理方式就是: 学习Pyt ...

  7. python获取视频缩略图_python接收图片变成缩略图

    python图像处理库:Pillow初级教程 Image类 Image.resize()和Image.thumbnail()的区别 根据代码和代码注释, 这两个函数都是对图片进行缩放, 两者的主要区别 ...

  8. python图像灰度化_python实现图片二值化及灰度处理方式

    python实现图片二值化及灰度处理方式 我就废话不多说了,直接上代码吧! 集成环境:win10 pycharm #!/usr/bin/env python3.5.2 # -*- coding: ut ...

  9. 用python字符画生日快乐_Python:图片转字符画(~情人节神器~)

    字符画真的很有意思,将图片中的像素用字符代替,就生成了字符画. 但是像素是有颜色深浅的,我们如何将带有不同颜色的像素编码为对应的字符呢? 转化方法: 将彩色图片转化为灰度图 根据颜色深浅的RGB值(值 ...

最新文章

  1. ICLR2021 | 清华大学黄高团队:显存不够?不妨抛弃端到端训练
  2. 监督学习和无监督学习
  3. gradle第二天(Building a RESTful Web Service)
  4. CTFshow php特性 web125
  5. elasticsearch 根据条件去除重复值_Excel工作表中的条件格式,不只是查找重复值,还有7种典型用法...
  6. 【数据库】《SQL必知必会 4th》部分笔记
  7. Java中如何克隆集合——ArrayList和HashSet深拷贝
  8. QT5动态创建多个按钮控件并关联信号槽函数
  9. 创建设计模式 - Singleton设计模式(最佳实践与示例)
  10. shell编程关于数组的那点事
  11. RabbitMQ的基本概念
  12. UVA1091 WF4786 Barcodes【编码检查】
  13. leetcode:String to Integer (atoi)
  14. 雅虎再掀高管离职潮 博客列三大原因
  15. JMeter常用的4种参数化方式-操作解析
  16. 计算机组成原理与体系结构
  17. STM32(八)W25Q(16/32/64/128)芯片学习总结
  18. 互联网手机卡资费对比
  19. 传输层协议TCP和UDP的区别详解
  20. android 获取摄像头像素

热门文章

  1. node js怎么进行打包发布linux,Node.js JXcore 打包
  2. pinia与vuex的区别以及pinia的使用
  3. 蓝桥杯真题 15省7-牌型种数 小明被劫持到X赌城,被迫与其他3人玩牌。 一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。 这时,小明脑子里突然冒出一个问题: 如果不考虑花色,
  4. python图像去污_百度AI攻略:图像去雾
  5. 百付宝钱包一分钱专项活动
  6. acm 巧妙借助二进制_借助此刻完全流化您的生活
  7. python 最短路径算法_最短路径python
  8. 淘宝店铺发布API接口(新),淘宝oAuth2.0店铺商品API接口,淘宝商品发布API接口,淘宝商品上架API接口,一整套发布上架店铺接口对接分享
  9. 长途运输市场现状研究分析与发展前景预测
  10. 大话设计模式 第四章 开闭原则 优惠券