检查文件类型是否为媒体文件?

Bru*_*yne 6 python python-3.x

我正在尝试遍历文件列表,并返回那些作为媒体文件(图像、视频、gif、音频等)的文件。

看到有很多媒体类型,是否有一个库或更好的方法来检查这个,而不是列出所有类型然后根据该列表检查文件?

这是我目前正在做的事情:

import os
types = [".mp3", ".mpeg", ".gif", ".jpg", ".jpeg"]
files = ["test.mp3", "test.tmp", "filename.mpg", ".AutoConfig"]

media_files = []
for file in files:
    root, extention = os.path.splitext(file)
    print(extention)
    if extention in types:
        media_files.append(file)

print("Found media files are:")
print(media_files)
Run Code Online (Sandbox Code Playgroud)

但请注意它没有包括filename.mpg,因为我忘了把它.mpg放在我的types列表中。(或者,更有可能的是,我没想到该列表会包含一个.mpg文件,所以没有考虑将其列出。)

Cpp*_*ver 9

为此,您需要获取文件的 Internet 媒体类型,按 / 字符拆分并检查它是否以音频、视频、图像开头。

这是一个示例代码:

import mimetypes
mimetypes.init()

mimestart = mimetypes.guess_type("test.mp3")[0]

if mimestart != None:
    mimestart = mimestart.split('/')[0]

    if mimestart in ['audio', 'video', 'image']:
        print("media types")
Run Code Online (Sandbox Code Playgroud)

注意:此方法根据扩展名假设文件类型,不打开实际文件,它仅基于文件扩展名