推断任何文件/缓冲区的文件类型和mime类型。没有外部依赖关系。
filetype的Python项目详细描述
小型且无依赖关系的Python包,用于推断文件类型和mime 类型检查文件或缓冲区的magic numbers签名。
这是来自filetypego包的python端口。
功能
- 简单友好的API
- 支持文件类型的wide range
- 提供文件扩展名和mime类型推断
- 按扩展名或mime类型查找文件
- 按种类(图像、视频、音频…)查找文件
- Pluggable:添加新的自定义类型匹配器
- Fast,甚至处理大文件
- 只需要前261个字节表示最大文件头,所以 你只要pass a list of bytes
- 无依赖性(只有python代码,没有c扩展,没有libmagic 装订)
- 跨平台文件识别
安装
pip install filetype
示例
简单文件类型检查
importfiletypedefmain():kind=filetype.guess('tests/fixtures/sample.jpg')ifkindisNone:print('Cannot guess file type!')returnprint('File extension: %s'%kind.extension)print('File MIME type: %s'%kind.mime)if__name__=='__main__':main()
支持的类型
图像
- jpg-image/jpeg
- jpx-image/jpx
- 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
- heic-image/heic
视频
- 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