如何在不写入磁盘和使用最少内存的情况下将数据从源文件传输到目标文件

时间:2018-09-26 19:15:00

标签: python python-3.x stream bytesio

使用Python 3.7,我可以将字节流从文件读取到io.BytesIO对象中。

我还可以将那些字节写回到不同位置的文件中。

托管此代码的计算机受到资源的限制,并且将要移动的文件对象的大小各不相同(未知)。

我一直试图(并且失败)从数据起源的角度打开字节流并写入数据目标,而没有先将整个文件读入内存

一些代码/伪代码:示例1将从源读取并写入目标,但是必须将整个文件加载到内存中。

# Example 1
# Read from Origination into BytesIO 
buffer = io.BytesIO(origination.read())
buffer.seek(0)
# Write the stream out to the destination
destination("filenameAtDestination").upload(buffer)

我希望能够控制字节流并执行以下操作(伪代码):

with io.BytesIO(origination.read(), <1MB chunk>) as data:
    destination("filenameAtDestination").upload(data)

我希望这能适当传达我的意图。出于合规性原因,我不得不抽象出确切的始发和目的地机制。

任何提示将不胜感激

0 个答案:

没有答案