filetype.py

Small and dependency free Python package to infer file type and MIME type checking the  magic numbers signature of a file or buffer.

This  .

一个小巧自由开放Python开发包,主要用来获得文件类型。包要求Python .+

功能特色

•简单友好的API
•支持宽范围文件类型
•提供文件扩展名和MIME类型判断
•文件的MIME类型扩展新增
•通过文件(图像、视频、音频…)简单分析
•可插拔:添加新的自定义类型的匹配
•快,即使处理大文件
•只需要前261个字节表示的最大文件头,这样你就可以通过一个单字节
•依赖自由(只是Python代码,没有C的扩展,没有libmagic绑定)
•跨平台文件识别

安装

pip install filetype

API

详情请查看 annotated API reference .

实例

简单的文件类型识别 

复制代码
import filetype

def main():
 kind = filetype.guess('tests/fixtures/sample.jpg')
 if kind is None:
  print('Cannot guess file type!')
  return

 print('File extension: %s' % kind.extension)
 print('File MIME type: %s' % kind.mime)

if __name__ == '__main__':
 main()
复制代码

复制代码
支持类型

图片 

• jpg  –  image/jpeg
• png  –  image/png
• gif  –  image/gif
• webp  –  image/webp
• cr2  –  image/x-canon-cr2
• tif  –  image/tiff
• bmp  –  image/bmp
• jxr  –  image/vnd.ms-photo
• psd  –  image/vnd.adobe.photoshop
• ico  –  image/x-icon

视频 

• mp4  –  video/mp4
• m4v  –  video/x-m4v
• mkv  –  video/x-matroska
• webm  –  video/webm
• mov  –  video/quicktime
• avi  –  video/x-msvideo
• wmv  –  video/x-ms-wmv
• mpg  –  video/mpeg
• flv  –  video/x-flv

音频 

• mid  –  audio/midi
• mp3  –  audio/mpeg
• m4a  –  audio/m4a
• ogg  –  audio/ogg
• flac  –  audio/x-flac
• wav  –  audio/x-wav
• amr  –  audio/amr

资料库 

• epub  –  application/epub+zip
• zip  –  application/zip
• tar  –  application/x-tar
• rar  –  application/x-rar-compressed
• gz  –  application/gzip
• bz2  –  application/x-bzip2
• 7z  –  application/x-7z-compressed
• xz  –  application/x-xz
• pdf  –  application/pdf
• exe  –  application/x-msdownload
• swf  –  application/x-shockwave-flash
• rtf  –  application/rtf
• eot  –  application/octet-stream
• ps  –  application/postscript
• sqlite  –  application/x-sqlite3
• nes  –  application/x-nintendo-nes-rom
• crx  –  application/x-google-chrome-extension
• cab  –  application/vnd.ms-cab-compressed
• deb  –  application/x-deb
• ar  –  application/x-unix-archive
• Z  –  application/x-compress
• lz  –  application/x-lzip

字体 

• woff  –  application/font-woff
• woff2  –  application/font-woff
• ttf  –  application/font-sfnt
• otf  –  application/font-sfnt

Python使用filetype精确判断文件类型 (文件类型获取)的更多相关文章

  1. Python使用filetype精确判断文件类型

    Python使用filetype精确判断文件类型 判断文件类型在开发中非常常见的需求,怎样才能准确的判断文件类型呢?首先大家想到的是文件的后缀,但是非常遗憾的是这种方法是非常不靠谱的,因为文件的后缀是 ...

  2. Linux 精确判断是否同一文件--及终端获取字符串md5 的值

    背景 今天发现一个同事用 文件大小 对比,来判断编译所得的一个可执行文件是不是同一个文件. 讲道理 这种方式出错的概率很低,但是用这样的方法,一旦出错就容易被坑一把狠的. 所以我来分享一下 md5 在 ...

  3. Python判断上传文件类型

    在开发上传服务时,经常需要对上传的文件进行过滤. 本文为大家提供了python通过文件头判断文件类型的方法,非常实用. 代码如下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...

  4. 【python基础语法】OS模块处理文件绝对路径,内置的异常类型、捕获、处理(第9天课堂笔记)

    import os """ 通过文件的路径去打开文件 相对路径:相对当前的工作路径去定位文件位置 .:代表当前路径 ..:代表上一级路径(父级路径) 绝对路径:相对于电脑 ...

  5. 使用ASP.NET 上传文件 三种类型判断方法(后缀,MIME,数据流)

    #region 一. 安全性比较低,把文本文件1.txt改成1.jpg照样可以上传,但其实现方法容易理解,实现也简单,所以网上很多还是采取这种方法. Boolean fileOk = false; s ...

  6. ASP.net 判断上传文件类型的三种方法

    一. 安全性比较低,把文本文件1.txt改成1.jpg照样可以上传,但其实现方法容易理解,实现也简单,所以网上很多还是采取这种方法. Boolean fileOk = false; string pa ...

  7. 用ASP.net判断上传文件类型的三种方法

    一. 安全性比较低,把文本文件1.txt改成1.jpg照样可以上传,但其实现方法容易理解,实现也简单,所以网上很多还是采取这种方法. Boolean fileOk = false;           ...

  8. 【Python备忘】python判断文件和文件夹是否存在

    python判断文件和文件夹是否存在 import os os.path.isfile('test.txt') #如果不存在就返回False os.path.exists(directory) #如果 ...

  9. JAVA判断文件的内容类型

    Java 7 新的特性,判断文件的内容类型. Program to demonstrate Java 7 new feature : Determining the file content type ...

随机推荐

  1. JavaScript 从定义到执行,你应该知道的那些事

    JavaScript从定义到执行,JS引擎在实现层做了很多初始化工作,因此在学习JS引擎工作机制之前,我们需要引入几个相关的概念:执行环境栈.执行环境.全局对象.变量对象.活动对象.作用域和作用域链等 ...

  2. Tomcat运行javaweb项目时出现的一个bug

    Stacktrace:with root cause java.net.ConnectException: Connection refused:........................... ...

  3. Spring容器中获取bean实例的方法

    // 得到上下文环境 WebApplicationContext webContext = ContextLoader .getCurrentWebApplicationContext(); // 使 ...

  4. ArcGIS案例学习笔记_3_2_CAD数据导入建库

    ArcGIS案例学习笔记_3_2_CAD数据导入建库 计划时间:第3天下午 内容:CAD数据导入,建库和管理 目的:生成地块多边形,连接属性,管理 问题:CAD存在拓扑错误,标注位置偏移 教程:pdf ...

  5. Swift自定义UINavigationController(背景颜色、背景图片、返回按钮设置、字体大小等)

    1.0  自定义UINavigationController时,背景图片.颜色等只需要设置一次,所以我们可以重写  initializa  这个方法来实现我们想要的效果 override  class ...

  6. 文件上传以及JS链式结构

    文件上传: 文件上传使用FileUpload控件,使用控件的SaveAs方法,需要绝对路径. 获取文件的绝对路径:Server.MapPath(相对路径); 或许要上传文件的本身名字用.FileNam ...

  7. 寒假生活第一天——Github初体验

    快开学了,今天体验了一下github这个对我来说很是神秘的东西 它的定义来源于百度百科,如有异议,那就有吧.//gitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格 ...

  8. 解压.bz2失败

    报错: # tar -jxf geos-3.6.2.tar.bz2 tar (child): bzip2:无法 exec: 没有那个文件或目录tar (child): Error is not rec ...

  9. 微擎框架下拉分页(使用js模板引擎)

    1.需要分页的页面,引入一下文件 <script language="javascript" src="\addons\{$_GPC['m']}\template\ ...

  10. 2017面向对象程序设计(Java) 第4周学习指导及要求(2017.9.14-2017.9.18)

    学习目标 深入理解程序设计中算法与程序的关系: 深入理解java程序设计中类与对象的关系: 理解OO程序设计的第一个特征:封装: 需要掌握基本使用方法的预定义类有:Math类.String类.Arra ...