binascii.unhexlify ... not clear about usage, and output
Peter Otten
__peter__ at web.de
Wed May 30 04:31:50 EDT 2007
Vishal wrote:
> I have a file with a long list of hex characters, and I want to get a
> file with corresponding binary characters
>
> here's what I did:
>
>>>> import binascii
>>>> f1 = 'c:\\temp\\allhex.txt'
>>>> f2 = 'c:\\temp\\allbin.txt'
>>>> sf = open(f1, 'rU')
>>>> df = open(f2, 'w')
>>>> slines = sf.readlines()
>>>> for line in slines:
> ... x = line.rstrip('\n')
> ... y = binascii.unhexlify(x)
> ... df.write(y)
> ...
>>>> df.close()
>>>> sf.close()
Your code is OK, but you have to open f2 in binary mode if your data is
truly binary (an image, say).
> But what I get is all garbage, atleast textpad and notepad show that
> I tried doing it for only one string, and this is what I am seeing on
> the interpreter:
>
>>>> x
> '0164'
>>>> y
> '\x01d'
>
> I was expecting 'y' would come out as a string with binary
> characters!!!
What are "binary characters"?
> What am i missing here? Can someone please help.
What /exactly/ did you expect? Note that "\x01d" and "\x01\x64" are just
different renderings of the same string chr(0x01) + chr(0x64).
Peter
More information about the Python-list
mailing list