排除文件列表中包含排除词列表的某些单词

时间:2020-10-29 17:22:39

标签: python list list-comprehension

尝试从列表中排除某些术语,如下所示。我确定我缺少什么。

dir = r'C:\Temo'
exclude = ['test', 'Test', 'debug', 'Debug']

for item in exclude:
    new_list = [os.path.join(dir, files)
                for files in os.listdir(dir)
                if files.endswith(".csv") and item not in files]

这将导致从排除列表中仅排除1个词,尽管其他词也存在。我确定我缺少简单的东西

1 个答案:

答案 0 :(得分:1)

您可以在列表理解中使用all()来过滤掉项目。另外,您可以使用str.lower不包括文件名的所有变体(小写/大写):

import os

dir = r'C:\Temo'
exclude = ['test', 'debug']

new_list = [os.path.join(dir, file)
            for file in os.listdir(dir)
            if file.endswith(".csv") and all(ex not in file.lower() for ex in exclude)]

print(new_list)