Weird list conversion

Larry Hudson orgnut at yahoo.com
Sun Dec 13 15:42:36 EST 2015


On 12/13/2015 12:05 PM, KP wrote:
> On Sunday, 13 December 2015 11:57:57 UTC-8, Laura Creighton  wrote:
>> In a message of Sun, 13 Dec 2015 11:45:19 -0800, KP writes:
>>> Hi all,
>>>
>>>       f = open("stairs.bin", "rb")
>>>       data = list(f.read(16))
>>>       print data
>>>
>>> returns
>>>
>>> ['=', '\x04', '\x00', '\x05', '\x00', '\x01', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00']
>>>
>>> The first byte of the file is 0x3D according to my hex editor, so why does Python return '=' and not '\x3D'?
>>>
>>> As always, thanks for any help!
>>
>> 0x3d is the ascii code for '='
>
> I am aware of that - so is the rule that non-printables are returned in hex notation whereas printables come in their ASCII representation?
>
No.  The data is returned as raw bytes.
It's the print that is responsible for the way these bytes are _displayed_.

      -=- Larry -=-




More information about the Python-list mailing list