python 如何将字节复制到共享内存或从共享内存复制到BytesIO?

lnvxswe2  于 2023-03-07  发布在  Python
关注(0)|答案(1)|浏览(194)

我正在创建一个SharedMemory对象,其中的数据是在一个I/O绑定进程中写入的,以便由一个单独的计算绑定进程进行后续处理。在后续处理数据时,我希望能够使用类似文件的对象进行读写,因此我希望复制到io.BytesIO对象。我不确定如何使用SharedMemory的buf内存视图对象。
如何在SharedMemory对象和BytesIO对象之间复制数据?

yqkkidmi

yqkkidmi1#

给定以下示例设置:

from io import BytesIO
from multiprocessing.shared import SharedMemory

b = BytesIO()
s = SharedMemory(create=True, size=1024)

可以直接将内存视图的内容写入bytes I/O对象

>>> b.write(s.buf)
1024                # N.B. bytes written equals size of shared memory

这适用于任何类似文件的对象,而不仅仅是BytesIO

相关问题