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

  • 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

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


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.0.0.tar.gz (9.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

filetype-1.0.0-py2.py3-none-any.whl (16.4 kB view details)

Uploaded Python 2Python 3

File details

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

File metadata

  • Download URL: filetype-1.0.0.tar.gz
  • Upload date:
  • Size: 9.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for filetype-1.0.0.tar.gz
Algorithm Hash digest
SHA256 fe3afe00d40b7102b78ffd7ab85defad13657a976ebbcb818b2fdfbba3888c06
MD5 54d8bbc2f08c4517c63c56823584bb3b
BLAKE2b-256 9234ac9fa226ec59dfd66f697807e400e01cba579283d38db498982b88e5e352

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for filetype-1.0.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 3745b35eef6399b539c6b639d3a7eaa8eabe4ad91881582d8d2d89452a395707
MD5 d1f3a65cfbbc172bdc73ed17a220dd17
BLAKE2b-256 d1b163883df25da3250c6d20ecaf2525a453a75327cb7ed31726e7659f7db9fd

See more details on using hashes here.

Supported by

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