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
--
http://mail.python.org/mailman/listinfo/python-list