【发布时间】:2018-04-20 15:18:18
【问题描述】:
当我在struct中使用打包时,我发现在解包过程中我解包字节对象后有多余的字符。
例如打包前:
c = b'CONNECT'
使用struct解包后得到的值为b'CONNECT\x00\x00\x00\x00\x00'
这是我的代码:
import struct
import datetime
import binascii
string_format = '12s'
s = struct.Struct(string_format)
str = 'CONNECT'
byte = str.encode()
print(byte)
packed_data = s.pack(byte)
print(packed_data)
unpacked_data = s.unpack(packed_data)
unpacked_data = unpacked_data[0]
arr = []
for item in unpacked_data.decode():
print(item)
arr.append(item)
print(arr)
解压后如何获取b'CONNECT'。
【问题讨论】:
-
你能告诉我们你的代码吗?
-
import struct import datetime import binascii string_format = '12s' s = struct.Struct(string_format) str = 'CONNECT' byte = str.encode() print(byte) packed_data = s.pack(byte ) print(packed_data) unpacked_data = s.unpack(packed_data) unpacked_data = unpacked_data[0] arr = [] for item in unpacked_data.decode(): print(item) arr.append(item) print(arr)
标签: python-3.x struct byte argument-unpacking