我想并行化此代码:

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.savezrequests都希望读取/写入类似文件的对象。队列不是类似于文件的队列,BytesIO也不是线程安全的。

解决此问题的最佳方法是什么?

最佳答案

将队列包装在类似文件的自定义对象中。按照文档。该问题有更多详细信息:Creating a custom file like object python suggestions?

关于python - 实现写入队列的类似文件的对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55453741/

10-11 15:54