【问题标题】:Obtain paths of folders not containing a pdf file获取不包含pdf文件的文件夹路径
【发布时间】:2021-09-09 13:45:59
【问题描述】:

我想查找所有在其中包含 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)

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

有什么帮助吗?

【问题讨论】:

    标签: python list path os.walk


    【解决方案1】:

    你的代码

    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

    【讨论】:

    • 正是这个!谢谢@Daweo
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-16
    • 1970-01-01
    • 2011-12-22
    • 1970-01-01
    • 2015-01-25
    • 2021-04-03
    • 1970-01-01
    相关资源
    最近更新 更多