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

如何在内存中创建文件对象

石博艺
2023-03-14
问题内容

我想制作一个内存文件以在pygame混合器中使用。我的意思是这样的(http://www.pygame.org/docs/ref/music.html#pygame.mixer.music.load它说load()方法支持文件对象)

import requests
from pygame import mixer

r = requests.get("http://example.com/some_small_file.mp3")
in_memory_file = file(r.content) #something like that
mixer.music.init()
mixer.music.load(in_memory_file)
mixer.music.play()

问题答案:

您可能正在寻找BytesIOStringIO类从Python的io包装,无论是在现有的Python
2
和Python
3中
。它们提供了类似于文件的界面,您可以在代码中使用与真实文件进行交互的方式完全相同。

StringIO 用于存储文本数据:

import io

f = io.StringIO("some initial text data")

BytesIO 必须用于二进制数据:

import io

f = io.BytesIO(b"\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01")

要存储MP3文件数据,您可能需要BytesIO该类。要从GET请求向服务器初始化它,请按照以下步骤操作:

import requests
from pygame import mixer
import io

r = requests.get("http://example.com/somesmallmp3file.mp3")
inmemoryfile = io.BytesIO(r.content)

mixer.music.init()
mixer.music.load(inmemoryfile)
mixer.music.play()


 类似资料:
  • 是否有可能从内存中(而不是磁盘上)的文件创建ZipArchive。 以下是用例:多个文件在

  • 编者按:此代码示例来自Rust 1.0之前的版本,它使用的代码在Rust 1.0中不存在。更新了一些答案,以回答更新版本的Rust的核心问题。 我正在尝试使用创建内存映射文件。目前的做法如下: 这个程序失败了 调用或对数据执行任何其他操作时。 我无法从

  • 如何在内存中而不是硬盘上创建新的

  • 问题内容: 如何在内存中(而不是在硬盘上)创建新的(由)? 我正在使用Java语言。我不想将文件保存在硬盘上。 我遇到了一个错误的API()。期待着。我没有文件(只有内容),可以创建临时文件,但这不是一个漂亮的解决方案。我需要验证签名罐子的摘要。 在不创建临时文件的情况下如何获得清单的任何示例将不胜感激。 问题答案: 要在内存中写入流,请使用:

  • 问题内容: 我刚刚接受采访,并被要求使用Java 造成内存泄漏。 不用说,我对如何开始创建它一无所知。 一个例子是什么? 问题答案: 这是在纯Java中创建真正的内存泄漏(运行代码无法访问但仍存储在内存中的对象)的好方法: 该应用程序将创建一个长期运行的线程(或使用线程池更快地泄漏)。 线程通过(可选,自定义)加载类。 该类分配大量的内存(例如),在静态字段中存储对它的强引用,然后在中存储对自身的

  • 我想在GitHub资源库中创建一个文件夹,并想在该文件夹中添加文件。我如何实现这一点?