[Python]使用filetype精确判断文件类型

filetype.py

 Build Status PyPI API

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

This is a Python port from filetype Go package. Works in Python +3.

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

功能特色

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

安装

API

详情请查看 annotated API reference.

实例

简单的文件类型识别

支持类型

图片

  • 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

基准测试

使用链接中的文件进行测试,你可以点击获得到它: real files.

Environment: OSX x64 i7 2.7 Ghz

License

MIT – Tomas Aparicio

发表评论