Hachoir is a Python library to view and edit a binary stream field by field
Clone or download
nneonneo field: _getValue isn't guaranteed to exist anymore, so just use a try…

Swallowing all exceptions isn't ideal - ideally, `.value` should always work.
Latest commit e7af2d8 Jan 2, 2019



Latest release on the Python Cheeseshop (PyPI) Build status of hachoir on Travis CI No Maintenance Intended

Hachoir is a Python library to view and edit a binary stream field by field. In other words, Hachoir allows you to "browse" any binary stream just like you browse directories and files.

A file is splitted in a tree of fields, where the smallest field is just one bit. Examples of fields types: integers, strings, bits, padding types, floats, etc. Hachoir is the French word for a meat grinder (meat mincer), which is used by butchers to divide meat into long tubes; Hachoir is used by computer butchers to divide binary files into fields.

Command line tools using Hachoir parsers:

  • hachoir-grep: find a text pattern in a binary file
  • hachoir-metadata: get metadata from binary files
  • hachoir-strip: modify a file to remove metadata
  • hachoir-urwid: display the content of a binary file in text mode

Installation instructions: http://hachoir.readthedocs.io/en/latest/install.html

Hachoir is written for Python 3.3+, it uses the new yield from syntax. For Python 2, see the old Hachoir project on Bitbucket.