Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 递归测试文件夹是否完全为空的最佳方法?_Python_Recursion_Directory_Is Empty - Fatal编程技术网

Python 递归测试文件夹是否完全为空的最佳方法?

Python 递归测试文件夹是否完全为空的最佳方法?,python,recursion,directory,is-empty,Python,Recursion,Directory,Is Empty,测试文件夹、其子文件夹及其所有子文件夹等是否为空的最常用方法是什么?我知道os.listdir()并提出了下面的函数,但似乎已经有了一个标准函数(尽管多次搜索都没有发现任何结果) 您可以使用os.walk,它为您执行递归 该函数生成一系列3元组。该元组的第一项是发送函数的文件夹(目录)下的文件夹(目录)的名称(从传递的文件夹开始)。其他两项是直接位于第一项文件夹中的子文件夹和文件的列表 因此,只需调用os.walk并迭代生成的三元组。对于第二项和第三项具有空列表的任何元组,都会将空文件夹名称的名

测试文件夹、其子文件夹及其所有子文件夹等是否为空的最常用方法是什么?我知道os.listdir()并提出了下面的函数,但似乎已经有了一个标准函数(尽管多次搜索都没有发现任何结果)


您可以使用
os.walk
,它为您执行递归

该函数生成一系列3元组。该元组的第一项是发送函数的文件夹(目录)下的文件夹(目录)的名称(从传递的文件夹开始)。其他两项是直接位于第一项文件夹中的子文件夹和文件的列表

因此,只需调用
os.walk
并迭代生成的三元组。对于第二项和第三项具有空列表的任何元组,都会将空文件夹名称的名称作为第一项

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