当前位置: 首页 > 面试题库 >

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

简学文
2023-03-14
问题内容

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

值得注意的是,这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))。有人知道这样的事吗?


问题答案:

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



 类似资料:
  • Blob对象 FileList对象 File对象 FileReader对象 综合实例:显示用户选取的本地图片 URL对象 参考链接 历史上,JavaScript无法处理二进制数据。如果一定要处理的话,只能使用charCodeAt()方法,一个个字节地从文字编码转成二进制数据,还有一种办法是将二进制数据转成Base64编码,再进行处理。这两种方法不仅速度慢,而且容易出错。ECMAScript 5引入

  • Blob对象 FileList对象 File对象 FileReader对象 综合实例:显示用户选取的本地图片 URL对象 参考链接 历史上,JavaScript无法处理二进制数据。如果一定要处理的话,只能使用charCodeAt()方法,一个个字节地从文字编码转成二进制数据,还有一种办法是将二进制数据转成Base64编码,再进行处理。这两种方法不仅速度慢,而且容易出错。ECMAScript 5引入

  • 问题内容: 我有23位表示为字符串,并且需要将此字符串作为4个字节写入二进制文件。最后一个字节始终为0。以下代码有效(Python 3.3),但感觉不太好(我对Python和编程很陌生)。您有任何改善技巧吗?似乎for循环可能有用,但是如何在循环中进行切片而不出现IndexError?请注意,当我将位提取到一个字节中时,我会反转位顺序。 问题答案: 您可以将其视为int,然后按以下方式创建4个字节

  • 我想以这种形式将短int x=0x4740写入二进制文件:0100 0000 0100 0111,当我在记事本中打开它时,它是@G。它正在工作。当我尝试编写例如短int a=0xf0ff;(二进制:1111 0000 1111 1111)时,记事本显示给我的不是我的数字二进制(➕是1100 1011 1001 1001 1100 0100 1001 0001)。如何在这个文件中编写它并获得1111

  • 问题内容: 我正在使用编写业务应用程序。现在,我需要向我返回一个服务方法(包括PDF文件内容),我需要使用将该文件下载到客户端计算机。 使用HTML5 Apis或任何JavaScript API怎么可能? 我用过了 但是出现以下错误 问题答案: 如果浏览器支持锚元素中的属性,则可能发生这种情况。

  • 问题内容: 我试图将800GB的文件上传到elasticsearch,但是我不断收到内存错误,告诉我数据二进制文件内存不足。我的系统上有64GB的RAM和3TB的存储空间 我想知道配置文件中是否有设置可以增加内存量,以便我可以上传到他的文件 谢谢 问题答案: 800GB一次发送就足够了,ES必须将所有内容都放入内存中才能进行处理,因此对于您拥有的内存量来说可能太大了。 解决此问题的一种方法是将您的