我正在研究通过套接字从远程计算机接收图像的项目。由于我不知道图像的大小,所以我正在逐块接收图像,并将其保存到io.BytesIO()
def imgdisplayer():
nonlocal conn, display
with io.BytesIO() as f:
while True:
bytes = conn.recv(1024)
if not bytes: break
f.write(bytes)
imgobj = pickle.loads(f)
但是我的代码无法正常工作,我猜我对io.BytesIO
有误解
这里出现的错误是:
TypeError: a bytes-like object is required, not '_io.BytesIO'
有人可以帮助我解决问题或建议另一种方法进行操作吗?
答案 0 :(得分:1)
BytesIO
是一个类似文件的对象。如果需要其值,则应使用getvalue()
方法:
imgobj = pickle.loads(f.getvalue())