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