您可以使用 FFProbe 来识别文件类型,但您很可能需要维护一个您知道如何在应用程序中处理的文件格式的数据库。但是,这里有一个快速的片段:
import json, subprocess
file_name = u'/path/to/some/file.mp3'
command=["/path/to/ffmpeg/bin/ffprobe",
'-print_format', 'json',
'-v', 'quiet',
'-show_error',
'-show_format',
#'-show_frames',
#'-show_packets',
'-show_streams',
'-show_program_version',
'-show_library_versions',
'-show_versions',
'-show_private_data',
file_name]
process_data=subprocess.Popen(command, stderr = subprocess.PIPE, stdout = subprocess.PIPE)
returncode = process_data.wait()
json_result=json.loads(process_data.stdout.read())
print json_result.get(u'format')
这个函数将返回一个看起来像这样的字典:
"format": {
"filename": "/path/to/some/file.mp3",
"nb_streams": 1,
"format_name": "mp3",
"format_long_name": "MP2/3 (MPEG audio layer 2/3)",
"start_time": "0.000000",
"duration": "12.416125",
"size": "198658",
"bit_rate": "128000",
"tags": {
"title": "Test of MP3 File ",
"artist": "Me ",
"album": "Me ",
"date": "2006",
"comment": "test ",
"track": "1",
"genre": "Other"
}
从这本字典中,您可以提取文件的“格式”,只知道该文件的路径!希望这可以帮助。