我想并行化这段代码:
import numpy as np
import requests
# the 'in memory file' I use at the moment
bytesIO = io.BytesIO()
data = np.random.randint(0, 256, (30, 30))
np.savez(bytesIO, data=data)
# go to the beginning of the buffer again
bytesIO.seek(0)
# upload the file to a different server
requests.post("http://example.org/, files={'file': bytesIO},
data={'filename': 'My_File'})
在这里
我希望在将数据序列化到缓冲区时将其传输。可能使用2个线程,由queue连接。
对于传输,请求支持streaming uploads。
但是np.savez
和requests
都希望读取/写入类似文件的对象。队列不是类似于文件的队列,并且BytesIO
也不是线程安全的。
解决此问题的最佳方法是什么?
答案 0 :(得分:0)
将队列包装在类似文件的自定义对象中。按照文档。该问题有更多详细信息:Creating a custom file like object python suggestions?