I'm having trouble understanding just why I would want to use bitwise operators in a high-level language like Python. From what I have learned of high- vs low-level languages is that high-level ones are typically designed to that you don't have to worry too much about the machine code going into a computer.  I don't see the point of manipulating a program bit-by-bit in a language that, to my knowledge, was designed to avoid it.
There's definitely a use for bitwise operations in Python. Aside from or-ing flags, like mgilson mentions, I used them myself for composing packet headers for CAN messages. Very often, the headers for a lower-level message protocol are composed of fields that have a length that is not a multiple of 8 bits, so you would need bitwise operators if you want to change one field only.
Python being a higher-level language does not mean you cannot do low-level stuff with it!
What are the advantages to using bitwise operations over boolean operations in Python?