我想并行化此代码:
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
也不是线程安全的。解决此问题的最佳方法是什么?
最佳答案
将队列包装在类似文件的自定义对象中。按照文档。该问题有更多详细信息:Creating a custom file like object python suggestions?
关于python - 实现写入队列的类似文件的对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55453741/