如何在Python中从不同的数据类型创建“字节流”

3
这里有一个小问题:我想从不同的数据类型(可变长度整数、字符串)创建一个字节流(一个字节整数表)。
val1 = 0x2
val2 = 0x0001020304050607
val3 = "blablabla"

我希望获得类似以下的流:

同时保留HTML标记,请勿解释。

byteStream = val1 + val2 + val3
byteStream = [0x02, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x62, 0x6c, 0x61, 0x62, 0x6c, 0x61, 0x62, 0x6c, 0x61]

我尝试过几种方法,比如使用中间字符串,然后将其转换为字节。但这种解决方案很丑陋,并且无法正常工作。需要任何帮助。谢谢。
1个回答

3
import struct

val1 = 0x2
val2 = 0x0001020304050607
val3 = "blablabla"

data=struct.pack('>BQ9s',val1,val2,val3)
print repr(data)

产量
'\x02\x00\x01\x02\x03\x04\x05\x06\x07blablabla'
告诉打包一个无符号整数(1字节),后跟一个无符号长整型(8字节),然后是9个字符(每个字符1字节)。可能的格式字符列表可以在这里找到。 是一个字符串(即一系列字节)。如果您最终希望得到一个列表,可以使用。

在字典中我没有找到 to_bytes 和 from_bytes 方法。 - Xavier Combelle
@Xavier Combelle: to_bytes 是Python 3.2中引入的新功能。 - unutbu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接