获取不包含pdf文件的文件夹路径

Obtain paths of folders not containing a pdf file

我想找到所有包含 pdf 文档的文件夹。

这是我目前尝试过的方法

import os 

path = 'T:/Projects/'

paths_not_containing_pdfs = []

for root, dirs, files in os.walk(path):
    for name in files:
        if not name.endswith('.pdf'):
            paths_not_containing_pdfs.append(root)

但是,此代码不起作用。它几乎 returns 所有文件夹的路径。而且不是唯一没有 pdf 的。

有什么帮助吗?

您的代码

for root, dirs, files in os.walk(path):
    for name in files:
        if not name.endswith('.pdf'):
            paths_not_containing_pdfs.append(root)

确实会找到所有至少有一个非 PDF 文件的文件夹,要找到没有任何 PDF 的文件夹,您可以使用 any,如下所示

for root, dirs, files in os.walk(path):
    if not any(name.endswith('.pdf') for name in files):
        paths_not_containing_pdfs.append(root)

请注意,我使用了所谓的理解,name.endswith('.pdf') for name in files 给出了 Trues(对于 .pdf)和 Falses(对于其他),然后 any 检查如果至少出现一个 True