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')