3

我们在 Python 中动态生成 MP3 文件,并且需要使用类似文件的对象在内存中编辑 ID3 标头。

PyPI 上的所有 ID3 库似乎都要求您将文件系统路径作为字符串传递。我觉得这很令人沮丧!

将我们生成的 MP3 写入磁盘(或 ramdisk)只是为了添加 ID3 标签是不可接受的,原因有很多,尤其是性能。

鉴于大量的 ID3 库,是否有一个 ID3 库可以简单地处理类似文件的对象?

4

4 回答 4

3

对于那些在遥远的将来找到这个答案的人来说,mutagen对我来说非常有效,它的一个 MP3 对象的构造函数采用文件路径类似文件的对象(文档称它为“文件”)。

来自https://mutagen.readthedocs.io/en/latest/user/filelike.html

传递给 FileType 或 Metadata 的第一个参数可以是文件名或类似文件的对象,例如 StringIO(Python 3 中的 BytesIO),mutagen 将确定要做什么。

MP3("myfile.mp3")
MP3(myfileobj)
于 2017-03-13T21:14:34.557 回答
0

StringIO 有帮助吗?http://docs.python.org/library/stringio.html

于 2009-10-07T21:54:47.407 回答
0

嗯,答案似乎是不存在这样的动物。python MP3框架黑客显然失去了对接口进行编程的优势。我们通过修改现有库解决了这个问题。

于 2009-10-09T02:02:28.910 回答
-1

AFAIR 标签附加到文件末尾。您可能想学习格式并自己制作一个简单的库,这应该不是很困难。

此外,您可以考虑将它们临时存储在像 tmpfs (ramdisk) 这样的文件系统上。

于 2009-10-07T21:43:54.000 回答