Question about binary file reading

Rhodri James rhodri at wildebst.demon.co.uk
Thu Mar 5 00:51:26 CET 2009


On Wed, 04 Mar 2009 23:28:32 -0000, Tino Wildenhain <tino at wildenhain.de>  
wrote:

> Rhodri James wrote:
>> On Wed, 04 Mar 2009 22:58:38 -0000, vibgyorbits <bkajey at gmail.com>  
>> wrote:
>>
>>> I'm writing a tool to do some binary file comparisons.
>>> I'm opening the file using
>>>
>>> fd=open(filename,'rb')
>>>
>>> # Need to seek to 0x80 (hex 80th) location
>>>
>>> fd.seek(0x80)
>>>
>>> # Need to read just 8 bytes and get the result back in hex format.
>>> x=fd.read(8)
>>> print x
>>>
>>> This prints out garbage. I would like to know what am i missing here.
>>
>> Your bytes are being interpreted as characters when you print the
>> buffer, and the chance of them being meaningful text is probably small.
>> Try the following:
>>
>> for b in x:
>>     print hex(ord(b))
>>
>
> better:
>
> print x.encode("hex")

Encodings make my head hurt :-)  While there are programmatic purposes
I'd leap at the "hex" encoder for, it doesn't make for the most human-
readable output.  I'll stick with the for loop, if you don't mind.


-- 
Rhodri James *-* Wildebeeste Herder to the Masses



More information about the Python-list mailing list