read from bin file
Dave Angel
davea at ieee.org
Thu Dec 17 17:50:36 EST 2009
Jerry Hill wrote:
> On Thu, Dec 17, 2009 at 3:59 PM, luca72 <lucaberto at libero.it> wrote:
>
>> I have a bin file that i read as:
>> in_file =pen('primo.ske', 'rb')
>> leggo =uca.readlines()
>>
>> i get a list like :
>> ['\x00\x80p\x8b\x00\x00\x01\x19\x9b\x11\xa1\xa1\x1f\xc9\x12\xaf\x81!
>> \x84\x01\x00\x01\x01\x02\xff\xff\x80\x01\x03\xb0\x01\x01\x10m\x7f\n',
>> etc...]
>>
>> but if i try to print luca[0]
>> i get not the the string in the list but i get some like " {"
>> how i can get a string like the string in the list?
>>
>
> print repr(luca[0])
>
>
You have several questions there. First, readlines() doesn't make sense
if the file is binary. Unless you know that \n happens to be a delimiter
in that particular formatted file, it makes more sense to just use
read(), rather than readlines(). And in that case, you get a single
string. You can specify how many bytes you want to read() each time.
Now when you print a list, print calls repr() on each item in the list.
So Jerry is right that repr() is the direct answer to your question.
However, you may want a prettier output, such as that produced by
binascii.hexlify(). A traditional dump file has hex bytes on one side,
and printable characters on the other, with suitable spacing and such.
DaveA
More information about the Python-list
mailing list