python 下读取二进制文件
2009年8月29日
没有评论
在解析一个二进制文件的时候,想把读取的单个的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]