如何在不将缓冲区写入磁盘的情况下将python缓冲区/文件对象提供给需要文件名的库?

时间:2019-02-26 16:39:10

标签: python file buffer temporary-files in-memory

这是一个非常接近我实际用例的示例:

import skvideo.io
from smart_open import smart_open

with smart_open("s3://{}/{}".format("my_bucket", resource_key)) as f:
    magic = NamedInMemoryTempFile(f, "video.vp8")  # is there sth like that?
    print(magic)  # probably sth. like "/python/fakepath/video.vp8"
    frames = skvideo.io.vread(magic)  # some lib that expects a filename :/ ...
    do_something_with(frames)
  • 我使用smart_open将文件从AWS S3直接读取到内存中
  • 我想使用skvideo将视频文件解码为4维numpy数组。但是skvideo不会公开将视频直接作为缓冲区传递的接口,而只能作为文件名传递

因此,我正在寻找一种将内容保留在内存中并避免由于性能原因而写入磁盘的方法。

0 个答案:

没有答案