【问题标题】: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。