如何在Python 3中“声明”空的bytes
变量?
我正在尝试接收字节块,稍后将其更改为utf-8字符串。
但是,我不确定如何声明将保存整个字节序列的初始变量。这个变量叫做msg
。我不能声明为None
,因为不能添加bytes
和NoneType
。我不能将其声明为unicode字符串,因为这样我将尝试将bytes
添加到字符串中。而且,随着接收程序的发展,它可能会使我陷入一个只包含部分字符的字节序列的混乱。我不能没有msg
声明,因为这样msg
将在赋值之前被引用。
以下是所讨论的代码
def handleClient(conn, addr):
print('Connection from:', addr)
msg = ?
while 1:
chunk = conn.recv(1024)
if not chunk:
break
msg = msg + chunk
msg = str(msg, 'UTF-8')
conn.close()
print('Received:', unpack(msg))
只需使用空字节字符串
b''
。但是,重复地连接到字符串需要多次复制该字符串。可变的^{} 可能更快:
要将字节数组解码为字符串,请使用
msg.decode(encoding='utf-8')
。根据文件:
使用
msg = bytes('', encoding = 'your encoding here')
。使用默认编码进行封装,只需使用
msg = b''
,但如果缓冲区不在同一编码中,则这将使整个缓冲区垃圾化相关问题 更多 >
编程相关推荐