python 下读取二进制文件

目录 技术

在解析一个二进制文件的时候,想把读取的单个的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]


暂无评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注