I have a message which reads as 14 09 00 79 3d 00 23 27. I can extract each byte from this message by calling message[4], which will give me
The easiest way to do this is to use the & operator. Convert your message to an int using int(str_msg, 16). convert int to binary string using bin(myint)
To get bits 4-6 (from left) in a byte:
>> msg = int("10110111", 2) # or 0b10110111
>> extractor = int("00011100", 2) # or 0b10110111
>> result = msg & extractor
>> print bin(result)
00010100
If you want, you can bit shift result using result >> 2. Obviously you will want to make this more dynamic but this is a dumbed down example.