On May 30, 1:31 pm, Peter Otten <[EMAIL PROTECTED]> wrote: > 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
Thanks Peter for the explanation. Actually what I want is: if Input is 0x0164, Output should be: 0000000101100100 where each nibble is separated and the output appears in terms of '0's and '1's. Can I do that with this function binascii.unhexlify()??? Thanks and best regards, Vishal -- http://mail.python.org/mailman/listinfo/python-list