首页 > 技术 > python 下读取二进制文件

python 下读取二进制文件

2009年8月29日 1,532 views 发表评论 阅读评论

在解析一个二进制文件的时候,想把读取的单个的byte转换为python的char类型值

f = file(...)
buf = f.read(1024)
int(buf[0])

结果总是报错:ValueError: invalid literal for int() with base 10: ‘\x90′


这里找到了对这个问题的解释和解决的办法


在python中,file.read 得到的结果是string, 要转换成别的类型,需要用到struct。

import struct
...
value = struct.unpack(fmt, buf[0])[0]

关于 struct.unpack 的用法,可以参考这个链接,其中有 fmt 的详细的说明。


举例来讲,如果是想转换成unsigned char,就用:

uchar = struct.unpack('B', buf[0])[0]


分类: 技术 标签:
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.