如何解决将二进制数据视为文件对象?
这就是StringIO
(在Python
2中)和io.BytesIO
(在Python
3中)的用途。
解决方法
这是一些现有代码的重要组成部分,我正在尝试将这些代码适应自己的用途。
值得注意的是,这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))
。有人知道这样的事吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。