将二进制数据视为文件对象?

发布于 2021-01-29 14:58:55

这是一些现有代码的重要组成部分,我正在尝试将这些代码适应自己的用途。

值得注意的是,这self.archive会导致文件很大,并且raw_file是从此巨型文件中(痛苦地)提取的二进制数据。

with open(self.archive, "rb") as f:
    f.seek(offset)
    raw_file = start + f.read(dlen - len(start))
    ...
    f.write(raw_file)

现有代码将类似档案的文件的内容提取到磁盘,但是我只需要从该档案中读取这些存储的文件(如果有任何意义)。

我需要使用Pygame从该文件中读取数百mbs的数据,其中大多数是图像,方法是使用,例如pygame.image.load()。与其让这段代码将文件的所有内容都写到磁盘上,然后以“非二进制”的形式再次读取它,我不如直接做类似的事情pygame.image.load(toVirtualFileObject(raw_file))。有人知道这样的事吗?

关注者
0
被浏览
105
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    这就是StringIO(在Python
    2中)和io.BytesIO(在Python
    3中)的用途。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看