我正在读取一个二进制文件 (Python 3) 并尝试在 struct 模块的帮助下转换 block 。
f = open(fn, "rb")
try:
a=f.read(2)
...
当我使用时:
unpack("h",b'\x6b\x0a')
它给了我预期的
(2667,)
但我不能在
上使用该语法b'6b0a'
虽然:
print(type(b'6b0a'))
print(type(b'\x6b\x0a'))
给出相同的类型:
<class 'bytes'>
<class 'bytes'>
我在混淆什么?我认为这曾经在 Python 2.x 中对我有用。
请您参考如下方法:
b'\x6b\x0a' 是两个字节:0x6b 0x0a。 b'6b0a' 是四个字节:0x36 0x62 0x30 0x61。
>>> binascii.unhexlify(b'6b0a')
b'k\n'
