如何使用python 3查找损坏的mp3文件?

时间:2018-10-02 21:00:54

标签: python python-3.x mp3

我的个人mp3收藏在硬盘坏了后部分损坏。 我需要在文件夹和子文件夹中的很多(大约> 5k文件)中找到损坏的mp3的名称。

能否请您给我一些有关python 3库的提示,该库可以打开mp3文件,进行读取并在其中找到比特率问题。

2 个答案:

答案 0 :(得分:2)

对于各个步骤,我可以为您提供以下提示。

文件名

要获取mp3文件名,glob模块是您的朋友:glob.iglob('*.mp3', recursive=True)

处理mp3

对于处理mp3文件,您实际上可以使用满足您需要的任何命令行实用程序。一些例子:

您可以通过subprocess模块在​​python中运行这些工具。例如:

subprocess.check_output(['avprobe', 'path/to/file'])

然后,您可以根据需要解析输出;不过,仍然需要探索如何检测文件是否损坏。

潜入mp3

如果您喜欢冒险,也可以直接扫描mp3文件。 Wikipedia给出了有关文件结构的提示。因此,为了获得比特率,应执行以下操作:

with open('path/to/file', 'rb') as fp:
    fp.read(2)  # Skip the first two bytes.
    bit_rate = fp.read(1) & 0xf0

答案 1 :(得分:0)

出于我的目的,mutagen非常适合solution,并附有评论。 一切都很简单。