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
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
heic - image/heic
Video
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
mid - audio/midi
mp3 - audio/mpeg
m4a - audio/m4a
ogg - audio/ogg
flac - audio/x-flac
wav - audio/x-wav
amr - audio/amr
Archive
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
Font
woff - application/font-woff
woff2 - application/font-woff
ttf - application/font-sfnt
otf - application/font-sfnt
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.4-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c2a4bdccd3f41a0523cfd65ed3833eff035145843fb9354965f61436519a33a0 |
|
MD5 | 0a9686dd88d054f3b23d2978426f11a6 |
|
BLAKE2b-256 | 4cb9a8f89f76cfb5fb4119ab2b0e54f0d6a93cf05b9de86a2b805d67d26de94d |