在python中将int转换为字节流

时间:2014-06-03 19:47:24

标签: python type-conversion

我是python的新手所以如果听起来像是一个新手问题,请耐心等待。我查了一下,但不同的消息来源告诉我不同​​的事情,所以我决定在这里问一下。 doc不是很清楚。

我有一个想要转换为字节的int。

#1024 should give me 0000010000000000
print bytes([1024])
[1024]

如果我使用bytes()我假设我得到一个列表,因为当我打印时我最终得到[1024]。但是,如果我这样做

print bytes([1024])[0] 
[

我回来了。为什么是这样?所以它不返回列表?

有没有办法在给定整数的情况下获取字节流?理想情况下,我想要的东西如下:

x = tobyte(1024)
print x[0] #should give me  0  00000000
print x[1] #should give me  8  00000100

我需要能够在代码中的其他地方使用x [0],即传递给base64编码,我希望我的数据是64位

1 个答案:

答案 0 :(得分:2)

要从整数中获取单个字节,请使用struct

individual_bytes = struct.unpack("BB", struct.pack("<H", 1024))

首先,"<I"使用little-endian排序将整数打包为16位值。然后"BB"将字节串解包为两个独立的8位值。