Python问题像对象一样加入二进制文件

问题描述 投票:0回答:1

我有一些二进制对象

binary_size = b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'

binary_length = b'\x00\x00\x00'

[当我尝试加入他们时,我得到了:

binary_size.join(binary_length)
*** TypeError: sequence item 0: expected a bytes-like object, int found

以前,在将它们转换为二进制之前,它们是整数,但是如果以b开头,我不明白为什么不将它们视为二进制。

不确定是否与此相关:https://bugs.python.org/issue24892

python binary
1个回答
0
投票

您必须在将连接您的字符串的字节对象上调用join,该对象应该为空,因此b''(请注意,如果没有b,您将有一个空的str,并且在尝试时会出现错误将其与字节连接):

binary_size = b'\x00\x00\x00\x00'

binary_length = b'\xff\xff\xff'
joined = b''.join([binary_size, binary_length])

print(joined)
# b'\x00\x00\x00\x00\xff\xff\xff'

请注意,您可以简单地使用+

print(binary_size + binary_length)
# b'\x00\x00\x00\x00\xff\xff\xff'
© www.soinside.com 2019 - 2024. All rights reserved.