import struct test = 18446735964955840608 result = struct.pack('<Q', test) print(result)
上面这段代码用 python2 和 python3 执行结果不一样,python2 执行的结果是字符串,python3 执行的结果是字节码,怎么把 python3 执行结果转换成字符串,简单的进行 str 转换,程序会报错....
在线等各位大佬们指点
1
todd7zhang 2020-09-03 17:05:14 +08:00
struct.pack 出来的本来就应该是字节码,还想要替换什么,直接说你的初始需求呢
|
2
linw1995 2020-09-03 18:53:24 +08:00
py2 与 py3 最大的不同就是 py3 以 unicode 作为默认的字符串类型。这样在 py2 中字符串在 py3 中相当于 bytes 即 b"...",而 py3 中的字符串就相当于 py2 的 unicode 字符串即 u"..."。所以 py2 的运行结果与 py3 的相同,并不是楼主说的那样,运行结果不同。
|
3
taomujian OP 我需要把一个脚本从 py2 改成 py3,我用 wireshark 抓包后发现发送的数据包中有一段字符是 b''开头的字符串,所以想把 b''开头的给换成字符串,刚才我换了下思路发送的数据都换成 bytes 就好了,感谢 2 位的回复
|