tst*_*ers 25 python variables byte variable-assignment python-3.x
如何bytes在Python 3中"声明"一个空变量?
我试图接收块的字节,然后将其更改为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))
Run Code Online (Sandbox Code Playgroud)
Mec*_*ail 49
只需使用空字节串,b''.
但是,重复连接到字符串会涉及多次复制字符串.A bytearray,这是可变的,可能会更快:
msg = bytearray() # New empty byte array
# Append data to the array
msg.extend(b"blah")
msg.extend(b"foo")
Run Code Online (Sandbox Code Playgroud)
要将字节数组解码为字符串,请使用msg.decode(encoding='utf-8').
| 归档时间: |
|
| 查看次数: |
39698 次 |
| 最近记录: |