Python 2.7 如何在Python中测试空目录,无论其大小如何?

Python 2.7 如何在Python中测试空目录,无论其大小如何?,python-2.7,Python 2.7,假设我有一个目录C:/Test,该目录为空或包含超过2000000个文件,所有文件都具有相同的扩展名(例如*.txt) 如何使用Python确定目录是否为空,而没有文件枚举 这就是你要找的吗 import os if not os.listdir('C:/Test'): print "empty" 编辑: 试运行 输出:False我意识到这是一个很老的问题,但我发现这是因为我想做一件类似的事情,并且我发现它与。scandir()将返回目录中的项的迭代器,而不是列表。如果迭代器为非空,则

假设我有一个目录
C:/Test
,该目录为空或包含超过2000000个文件,所有文件都具有相同的扩展名(例如
*.txt


如何使用Python确定目录是否为空,而没有文件枚举

这就是你要找的吗

import os
if not os.listdir('C:/Test'):
    print "empty"
编辑: 试运行


输出:False

我意识到这是一个很老的问题,但我发现这是因为我想做一件类似的事情,并且我发现它与。scandir()将返回目录中的项的迭代器,而不是列表。如果迭代器为非空,则any()可以求值

for _ in os.scandir(path):
 print('not empty')
 break


下面是您正在寻找的答案:这是一种有趣的方法(使用rmdir);但是,我真的不希望删除空目录。我只想知道它是否为空——仅此而已。我不相信这将处理包含大量文件的目录。@user1435385我不确定“大量文件”是什么意思。此代码将告诉您目录是否为空——据我所知,目录中有哪些文件并不重要。你的意思是“大量的文件吗?”如果是,那么你可能是对的,因为我还没有试过。@user1435385 ahhh。我对法斯特说,这就是你的意思@用户1435385我刚刚创建了一个包含3000000个文件的目录,该代码运行正常。就我的目的而言,它可以正常工作@rocktheartsm41。但是,在发布python 3.5时,可能有一种更通用的方法来获取Windows中目录的信息(例如,它们的大小):-)。
for _ in os.scandir(path):
 print('not empty')
 break
if any(os.scandir(path)):
   print('not empty')