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

问题描述

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

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个词,尽管其他词也存在。我确定我缺少简单的东西

解决方法

您可以在列表理解中使用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)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...