Infer file type and MIME type of any file/buffer. No external dependencies.
Project description
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.
Features
Simple and friendly API
Supports a wide range of file types
Provides file extension and MIME type inference
File discovery by extension or MIME type
File discovery by kind (image, video, audio…)
Pluggable: add new custom type matchers
Fast, even processing large files
Only first 261 bytes representing the max file header is required, so you can just pass a list of bytes
Dependency free (just Python code, no C extensions, no libmagic bindings)
Cross-platform file recognition
Installation
pip install filetype
API
Examples
Simple file type checking
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()
Supported types
Image
dwg - image/vnd.dwg
xcf - image/x-xcf
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
Video
3gp - video/3gpp
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
Audio
aac - audio/aac
mid - audio/midi
mp3 - audio/mpeg
m4a - audio/m4a
ogg - audio/ogg
flac - audio/x-flac
wav - audio/x-wav
amr - audio/amr
aiff - audio/x-aiff
Archive
br - application/x-brotli
rpm - application/x-rpm
dcm - application/dicom
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
lzo - application/x-lzop
lz - application/x-lzip
lz4 - application/x-lz4
Font
woff - application/font-woff
woff2 - application/font-woff
ttf - application/font-sfnt
otf - application/font-sfnt
Application
wasm - application/wasm
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for filetype-1.0.9-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c7401fe0d0b624e29b53c65e2a46264133ab30324da88d41e0621837c25bd472 |
|
MD5 | 99469982c2c52933fa585bdc1e8042be |
|
BLAKE2b-256 | 6facffbd9a1e6e225fc7eaa7271aceed7f4988c1c9f2e460ffd1aa0f72b9d97b |