Python:对返回空lis的列表进行筛选

2024-07-04 07:45:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我做了一次操作系统检查,并将结果添加到一个列表中。在

exportFolder = []

for files in os.walk(exportLocation):
   exportFolder.append(files)

以下是存储为exportFolder的列表:

^{pr2}$

我要在列表中搜索文件“SystemIndex\u 0A”

所以我使用:

filter(lambda x: 'SystemIndex_0A' in x, exportFolder)

结果返回一个空列表:[]

我可以看到exportFolder列表似乎是一个列表中的一个列表。我怎样才能让我的过滤器工作?在

我想从列表中打印SystemIndex_OA文件

提前谢谢。在


Tags: 文件lambdain过滤器列表forosfiles
1条回答
网友
1楼 · 发布于 2024-07-04 07:45:30

也许重写您的walk循环,使其看起来更像这样:

tgt=[]
for root, dirs, files in os.walk(exportLocation):
    for file in files:
        if 'SystemIndex_0A' in file:
            tgt.append(os.path.join(root, file))

那么就不需要过滤元组的嵌套列表了。在

如果希望使用os.walk生成的元组列表,则可以执行如下操作(使用您的示例,因此我们将只使用第一个元组):

^{pr2}$

既然已经使用元组解包来解包元组,那么可以使用过滤器语句:

>>> filter(lambda x: 'SystemIndex_0A' in x, files)
['SystemIndex_0A.7']

因此,如果你有一个完整的元组列表,你将使用两个嵌套循环。在

相关问题 更多 >

    热门问题