So far we've looked at text files, where we deal with the file contents as Unicode strings. There are many cases, however, where files contain data that is not encoded text. In these situations we need to be able to work with the exact bytes that are present in the file, without any intermediate encoding or decoding. This is what binary mode is for.
Binary files
The BMP file format
To demonstrate handling of binary files, we need an interesting binary data format. BMP is an image file format that contains Device Independent Bitmaps. It's simple enough that we can make a BMP file writer from scratch. Place the following code in a module called bmp.py:
# bmp.py
"""A module for dealing with BMP bitmap...