Skip to main content
 首页 » 编程设计

python之对 Python 字节类型感到困惑

2025年05月04日21pander-it

我正在读取一个二进制文件 (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'