好记性不如铅笔头

python && jython, 编程

python学习笔记:读写二进制文件

最近有兄弟让我帮忙处理一个二进制文件,正好趁此机会备份一下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 】

http://blog.csdn.net/ithomer/article/details/5974029 】

http://blog.csdn.net/JGood/article/details/4290158 】

发表评论

14 + 5 =

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据