Skip to main content

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

See annotated API reference.

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

  • apng - image/apng

  • 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

  • avif - image/avif

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/mp4

  • 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

  • zstd - application/zstd

Document

  • doc - application/msword

  • docx - application/vnd.openxmlformats-officedocument.wordprocessingml.document

  • odt - application/vnd.oasis.opendocument.text

  • xls - application/vnd.ms-excel

  • xlsx - application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

  • ods - application/vnd.oasis.opendocument.spreadsheet

  • ppt - application/vnd.ms-powerpoint

  • pptx - application/vnd.openxmlformats-officedocument.presentationml.presentation

  • odp - application/vnd.oasis.opendocument.presentation

Font

  • woff - application/font-woff

  • woff2 - application/font-woff

  • ttf - application/font-sfnt

  • otf - application/font-sfnt

Application

  • wasm - application/wasm

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

filetype-1.2.0.tar.gz (998.0 kB view details)

Uploaded Source

Built Distribution

filetype-1.2.0-py2.py3-none-any.whl (20.0 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file filetype-1.2.0.tar.gz.

File metadata

  • Download URL: filetype-1.2.0.tar.gz
  • Upload date:
  • Size: 998.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.24.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.7.2

File hashes

Hashes for filetype-1.2.0.tar.gz
Algorithm Hash digest
SHA256 66b56cd6474bf41d8c54660347d37afcc3f7d1970648de365c102ef77548aadb
MD5 915c437718ad93c2cd347eb5aa465af1
BLAKE2b-256 bb29745f7d30d47fe0f251d3ad3dc2978a23141917661998763bebb6da007eb1

See more details on using hashes here.

File details

Details for the file filetype-1.2.0-py2.py3-none-any.whl.

File metadata

  • Download URL: filetype-1.2.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 20.0 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.24.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.7.2

File hashes

Hashes for filetype-1.2.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 7ce71b6880181241cf7ac8697a2f1eb6a8bd9b429f7ad6d27b8db9ba5f1c2d25
MD5 0386ec78d63783e9d61d149bfbfbbafd
BLAKE2b-256 18791b8fa1bb3568781e84c9200f951c735f3f157429f44be0495da55894d620

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page