Socket
Socket
Sign inDemoInstall

filetype

Package Overview
Dependencies
0
Maintainers
1
Alerts
File Explorer

Install Socket

Detect and block malicious and high-risk dependencies

Install

    filetype

Infer file type and MIME type of any file/buffer. No external dependencies.


Maintainers
1

Readme

filetype.py |Build Status| |PyPI| |Pyversions| |API|

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 ^^^^^^^^^^^^^^^^^^^^^^^^^

.. code-block:: python

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

.. _Python: http://python.org .. _magic numbers: https://en.wikipedia.org/wiki/Magic_number_(programming)#Magic_numbers_in_files .. _filetype: https://github.com/h2non/filetype .. _wide range: #supported-types .. _Pluggable: #add-additional-file-type-matchers .. _Fast: #benchmarks .. _pass a list of bytes: #file-header .. _annotated API reference: https://h2non.github.io/filetype.py/

.. |Build Status| image:: https://travis-ci.org/h2non/filetype.py.svg?branch=master :target: https://travis-ci.org/h2non/filetype.py .. |PyPI| image:: https://img.shields.io/pypi/v/filetype.svg?maxAge=2592000?style=flat-square :target: https://pypi.python.org/pypi/filetype .. |Pyversions| image:: https://img.shields.io/pypi/pyversions/filetype.svg?style=flat-square :target: https://pypi.python.org/pypi/filetype .. |API| image:: https://img.shields.io/badge/api-docs-green.svg :target: https://h2non.github.io/filetype.py

Keywords

FAQs


Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc