python检查音频文件类型,MP3或FLAC

时间:2015-05-19 10:00:08

标签: python audio mp3 flac

我想检查一个音频文件,看看它的MP3或FLAC是否只需要基本检查,但我想要的不仅仅是检查文件扩展名

os.path.splitext

如果文件没有写入扩展名或有人通过带有假扩展名的文件,那么工作正常但不好;

我已经尝试但它只返回无

sndhdr.what(file)

我也尝试过使用魔法,但它会返回' application / octet-stream'这并没有多大用处。

magic.from_file(file, mime=True)

我读过Mutagen可能对此有好处,但到目前为止未能找到任何将音频编码输出为MP3或FLAC的功能

3 个答案:

答案 0 :(得分:3)

要查找文件格式,包括音频,视频,txt等,可以使用 fleep python库检查音频文件格式:

首先,您需要安装该库:

pip install fleep

这是一个测试代码:

import fleep

with open("vida.flac", "rb") as file:
    info = fleep.get(file.read(128))

print(info.type)
print(info.extension)
print(info.mime) 

以下是结果:

['audio']
['flac']
['audio/flac']

即使文件没有扩展名或有人通过带有假扩展名的文件,它也会检测并返回。

在这里,我已将vida.wav文件复制到dar.txt,并删除了扩展名

import fleep

with open("dar", "rb") as file:
    info = fleep.get(file.read(128))

print(info.type)
print(info.extension) 
print(info.mime) 

结果仍然相同。

['audio']
['flac']
['audio/flac']

归库作者所有 https://github.com/floyernick/fleep-py

答案 1 :(得分:0)

这可能会帮助您入门

<强> 21.9。 sndhdr - 确定声音文件的类型

https://docs.python.org/2/library/sndhdr.html

答案 2 :(得分:0)

你可以阅读mp3和flac的文件规范,然后可以实现一个读取和解析mp3作为二进制文件的检查器。具有类似目标的可修改示例是here