我们在Python中动态生成MP3文件,需要使用类似文件的对象在内存中编辑ID3标头。
PyPI 上的所有ID3库都显示为,要求您将文件系统路径作为字符串传递。我觉得这很令人沮丧!
将我们生成的MP3写入磁盘(或ramdisk)只是为了添加ID3标签是不可接受的,原因有很多,尤其是性能。
鉴于ID3库的丰富,是否有一个ID3库可以简单地处理类似文件的对象?
答案 0 :(得分:2)
对于那些在遥远的未来找到这个答案的人https://ideone.com/v4BiBH,对我来说非常有效,而且其中一个MP3对象的构造函数需要 文件路径或< / em>类文件对象(文档称之为'filething')。
来自mutagen:
传递给FileType或Metadata的第一个参数可以是文件名也可以是类文件对象,例如StringIO(Python 3中的BytesIO),mutagen将会知道要做什么。
MP3("myfile.mp3") MP3(myfileobj)
答案 1 :(得分:0)
StringIO有帮助吗? http://docs.python.org/library/stringio.html
答案 2 :(得分:0)
嗯,答案似乎是没有这样的动物存在。编程到界面的优势显然在python MP3框架黑客上丢失了。我们通过修改现有的库来解决问题。
答案 3 :(得分:-1)
AFAIR标记附加到文件末尾。你可能想要研究这种格式并自己创建一个简单的库,这应该不是很困难。
另外,您可以考虑将它们临时存储在像tmpfs(ramdisk)这样的文件系统上。