python 读取文件、并以十六进制的方式写入到新文件
#!/usr/bin/env python infile = file("in.mp3","rb") outfile = file("out.txt","wb") def main(): while 1: c = infile.read(1) if not c: break outfile.write(hex(ord(c))) outfile.close() infile.close() if __name__ == '__main__': main()
下面是我自己改过的
#coding:utf-8 # 程序目标,读取1.bmp,然后以16进制方式写到txt文件 def main(): f = open("1.bmp","rb") outfile = open("out.txt","wb") i = 0 while 1: c = f.read(1) i = i + 1 if not c: break if i%32 == 0: outfile.write("\n") else: if ord(c) <= 15: outfile.write("0x0"+hex(ord(c))[2:]+" ") else: outfile.write(hex(ord(c))+" ") outfile.close() f.close() if __name__=="__main__": main()
效果如下:
当然,我需要的是真正的十六进制值。然后代码变成了这样
#coding:utf-8 # 程序目标,读取1.bmp,然后以16进制方式写到txt文件 def main(): f = open("1.bmp","rb") outfile = open("out.txt","wb") i = 0 while 1: c = f.read(1) i = i + 1 if not c: break if i%32 == 0: outfile.write("\n") else: if ord(c) <= 15: outfile.write(("0x0"+hex(ord(c))[2:])[2:]+" ") else: outfile.write((hex(ord(c)))[2:]+" ") outfile.close() f.close() if __name__=="__main__": main()
文件的数据变成了