分享

Python读取二进制文件 --- webpro程序爱好者 asp,asp.net,jav...

 weicat 2011-04-09
Python读取二进制文件





Python里虽然可以通过’b的标记来区别普通文件和二进制文件,但是依然是把二进制文件当作普通文本处理。要读写二进制文件,需要用struct库来作pack和unpack。

比如我最近拿到一个如下数据结构的二进制文件

Code
  1. structDEMTYPE{
  2. introw;
  3. intcol;
  4. floatxmin;
  5. floatymin;
  6. floatxmax;
  7. floatymax;
  8. floatsize;
  9. floatvmin;
  10. floatvmax;
  11. floatscale;
  12. float*data;
  13. };

其中data是一个长度为row*col的数组。要读取这样一个二进制文件,可以用这样的代码
Code

  1. row, col, xmin, ymin, xmax, ymax, size, vmin, vmax, scale =
  2. struct.unpack(<2i8f, datastring[:(4*2+4*8)])
  3. vdata =struct.unpack(<+str(row*col)+f, datastring[(4*2+4*8):])

核心是unpack的第一个参数,用来标识二进制数据的格式,其中<表示little-endian,i表示整型数,f表示单精度浮点数,数字是量词。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多