使用fnmatch.filter来根据多个可能的文件扩展名来过滤文件。

9 浏览
0 Comments

使用fnmatch.filter来根据多个可能的文件扩展名来过滤文件。

在给定的Python代码中:

for root, dirs, files in os.walk(directory):
    for filename in fnmatch.filter(files, '*.png'):
        pass

如何筛选多个扩展名?在这个特殊情况下,我想获取所有以*.png、*.gif、*.jpg或*.jpeg结尾的文件。

目前我想到了以下方法:

for root, dirs, files in os.walk(directory):
    for extension in ['jpg', 'jpeg', 'gif', 'png']:
        for filename in fnmatch.filter(files, '*.' + extension):
            pass

但我认为这种方法不够优雅且性能不佳。

是否有更好的想法?

0