【发布时间】:2020-09-18 06:33:47
【问题描述】:
在 Python 2 中:
import struct
struct.pack('B', 21)[0] # returns '\x15'
在 Python 3 中:
import struct
struct.pack('B', 21)[0] # returns 21
有没有办法在 Python 3 中创建 Python 2 返回的字节字符串?任何指针将不胜感激!
【问题讨论】:
-
哦,
chr(21)! -
这是一个有趣的问题。在 python 2 中,
pack返回一个字符串,字符串的每个成员都是一个字符串。在 python 3 中,pack非常明智地返回一个字节数组,但字节数组的各个成员是 ints -
是的,我正在尝试将原始 NES 合成器的 Python 实现(用机器代码编写)转换为 Python 3,并且在 Python 2 和3!
-
在 python 级别,
pack的结果是一个不透明的 blob。打开包装时,您会得到正确的东西。当我写我的评论时,我不确定 python 的用例是否会触及 blob 的成员。我还是不确定我有没有。 -
如果你想一次发送一个字节的数据,它会咬你。
for b in data:myconnection.send(b).
标签: python c python-3.x python-2.7 struct