Python中用于验证文件的优秀音频库有哪些?

6 投票
3 回答
1577 浏览
提问于 2025-04-16 20:37

我已经在检查文件的内容类型、大小和扩展名(Django(音频)文件验证),但我需要一个库来读取文件,确认它确实是我想要的格式(主要是mp3和mp4)。

我去过这个网站:http://wiki.python.org/moin/Audio/,但没有找到合适的解决方案。我在这方面已经研究了一段时间,有点迷茫。现在非常依赖Stack Overflow来解决这个问题……

提前谢谢你们。

编辑: 我在Django中已经使用了UploadedFile.content_type():

“上传文件时的内容类型头(例如:text/plain或application/pdf)。就像任何用户提供的数据一样,你不能完全相信上传的文件真的是这种类型。你仍然需要验证文件的内容是否与内容类型头所声明的一致——“相信但要验证”。

所以,我已经在读取头信息了。但我该如何验证文件的实际内容呢?

3 个回答

0

使用 sndhdr

这个工具的功能比单纯判断文件类型要多一些。它会读取文件并获取文件的头部信息。不过,这种方法也不是百分之百可靠。如果想要更准确的结果,可能就只能使用 ffmpeg 这个工具了。

2

你可以在Python中这样调用一个Unix子 shell:

>>> filename = 'Giant Steps.mp3'
>>> import os
>>> type = os.system('file %s' % filename)
Giant Steps.mp3: ISO Media, MPEG v4 system, iTunes AAC-LC

** 如果你想了解更多关于'file'命令的细节,可以查看手册页。

查看这个帖子,了解其他选项


2

如果仅仅检查文件的头部信息不够好,我建议你使用 mutagen 来加载文件。如果文件不正确,它会抛出一个异常。

顺便说一下,我觉得你的方法不太适合大规模使用。真的有必要读取文件的每一个字节吗?你为什么不信任文件的头部信息呢?

撰写回答