测试文件夹,其子文件夹,所有子文件夹等是否为空的最Python方式是什么?我知道os.listdir()并提供了以下功能,但似乎已经有一个标准功能(尽管几次搜索都没有)。
def is_empty(target_folder): #Recursively tests whether a folder is empty.
import os
if [i for i in os.listdir(target_folder) if not
os.path.isdir(os.path.join(target_folder,i))]:
return False
else:
return all([is_empty(os.path.join(target_folder,i)) for i in
os.listdir(target_folder) if
os.path.isdir(os.path.join(target_folder,i))])
答案 0 :(得分:1)
您可以使用os.walk
,它为您进行递归。
该函数生成一系列三元组。该元组的第一项是在您发送函数的文件夹(从您传递的文件夹开始)下的文件夹(目录)的名称。其他两项是子文件夹的列表,并直接位于第一项的文件夹中。
因此,只需调用os.walk
并遍历生成的三元组即可。任何在第二项和第三项中都有空列表的元组将以空文件夹名称作为第一项。