最近有兄弟让我帮忙处理一个二进制文件,正好趁此机会备份一下python的二进制处理。具体的业务不说了,这里就备份下代码和网址吧。
from struct import * import sys def readFile(sourceName,dstName): print(sourceName + " ==>> " + dstName + " start"); sourcefile = open(sourceName, "rb"); dstfile = open(dstName,"w+"); while 1: buf = sourcefile.read(4); if len(buf) < 4: break; (a,b,c,skip) = unpack("BBBB", buf); value = c * 256 * 256 + b * 256 + a; print(a,b,c,skip, value); dstfile.write(str(value) + "\n"); sourcefile.close(); dstfile.close(); print(sourceName + " ==>> " + dstName + " finish"); if __name__ == "__main__": templatePath = sys.argv[1]; readFile(templatePath, templatePath + "_out");
代码很简单,就是读取二进制文件的4个字节,将前3个字节做成一个int值,写到另一个文件里面。
这里用到了python的【 pack 】方法。作者备份几个网址,这里就不粘贴了:
【 http://www.cnblogs.com/gala/archive/2011/09/22/2184801.html 】
发表评论