在Python中编辑类文件对象的MP3元数据?

3 投票
4 回答
1956 浏览
提问于 2025-04-15 14:53

我们正在用Python实时生成MP3文件,并需要在内存中使用类似文件的对象来编辑ID3头信息。

PyPI上所有的ID3库似乎都要求你传入一个文件系统路径作为字符串。这让我感到非常沮丧!

为了添加ID3标签而把生成的MP3写入磁盘(或者内存盘)是不可接受的,原因有很多,尤其是性能问题。

考虑到有这么多ID3库,是否有一个ID3库可以直接处理类似文件的对象呢?

4 个回答

3

对于那些在未来某个遥远的时刻看到这个答案的人,mutagen 对我来说一直运行得很好。它的一个MP3对象的构造函数可以接受 文件路径 或者 类似文件的对象(文档里称它为“filething”)。

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

传递给 FileType 或 Metadata 的第一个参数可以是文件名,也可以是类似文件的对象,比如 StringIO(在 Python 3 中是 BytesIO),mutagen 会自动判断该怎么处理。

MP3("myfile.mp3")
MP3(myfileobj)
0

好吧,答案似乎是这样的:根本没有这种东西。对接口编程的好处,显然对那些在搞Python MP3帧的黑客来说并不重要。我们通过修改一个现有的库来解决了这个问题。

撰写回答