存档

文章标签 ‘python’

python 下读取二进制文件

2009年8月29日 593 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]


分类: 技术 标签: