25

在这个代码片段(由另一个人创作)中,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.image.load,这需要一个 File 对象。但我需要做一些类似的事情pygame.image.load(toVirtualFileObject(raw_file))(即访问这个存档文件的内容作为文件对象而不先写入磁盘)。

这可以做到吗?

4

1 回答 1

29

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

于 2013-04-15T03:59:08.627 回答