Python使用filetype精確判斷文件類型
?
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 is a Python port from filetype Go package. Works in Python? +3 .
一個(gè)小巧自由開放Python開發(fā)包,主要用來獲得文件類型。包要求Python 3.+
功能特色
?簡單友好的API
?支持寬范圍文件類型
?提供文件擴(kuò)展名和MIME類型判斷
?文件的MIME類型擴(kuò)展新增
?通過文件(圖像、視頻、音頻…)簡單分析
?可插拔:添加新的自定義類型的匹配
?快,即使處理大文件
?只需要前261個(gè)字節(jié)表示的最大文件頭,這樣你就可以通過一個(gè)單字節(jié)
?依賴自由(只是Python代碼,沒有C的擴(kuò)展,沒有l(wèi)ibmagic綁定)
?跨平臺文件識別
安裝
pip install filetype
API
詳情請查看?annotated API reference?.
實(shí)例
簡單的文件類型識別
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