我想从文件中读取字节 1,2 和 3。我知道它对应于一个字符串(在本例中它是ELF
Linux 二进制头)
我在网上找到了以下示例,我想出了这个:
with open('hello', 'rb') as f:
f.seek(1)
bytes = f.read(3)
string = struct.unpack('s', bytes)
print st
查看官方文档struct https://docs.python.org/2.7/library/struct.html似乎经过s
作为参数应该允许我读取一个字符串。
我收到错误:
st = struct.unpack('s', bytes)
struct.error: unpack requires a string argument of length 1
编辑:使用Python 2.7
在您的特殊情况下,只需检查就足够了
if bytes == 'ELF':
一步测试所有三个字节是否为三个字符E
, L
and F
.
但如果您想检查数值,则无需在此处解压任何内容。只需使用ord(bytes[i])
(i在0、1、2中)获取三个字节的字节值。
或者你可以使用
byte_values = struct.unpack('bbb', bytes)
获取三个字节的元组。您还可以动态解压该元组,以防字节具有如下可命名的语义:
width, height, depth = struct.unpack('bbb', bytes)
Use 'BBB'
代替'bbb'
如果您的字节值是无符号的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)