Skip to main content
 首页 » 编程设计

python之在 Python 中检查目录是否为空的最快方法是什么

2025年05月04日17bonelee

我在 Windows 机器上工作,想检查网络路径上的目录是否为空。

首先想到的是调用 os.listdir() 并查看它的长度是否为 0。

即

def dir_empty(dir_path): 
    return len(os.listdir(dir_path)) == 0 

因为这是一个网络路径,我并不总是有良好的连接,并且因为一个文件夹可能包含数千个文件,所以这是一个非常慢的解决方案。还有更好的吗?

请您参考如下方法:

目前我找到的最快的解决方案:

def dir_empty(dir_path): 
    return not any((True for _ in os.scandir(dir_path))) 

或者,如以下评论中所建议的那样:

def dir_empty(dir_path): 
    return not next(os.scandir(dir_path), None) 

在慢速网络上,我正在处理这需要几秒钟而不是几分钟(os.listdir() 版本需要几分钟)。这似乎更快,因为 any 语句只计算第一个 True 语句。