我有这样一个文件夹:
A>>(B,C,D)(subfolders)>>both B,C and D have folders 1,2,3 each.
在本例中,B、C和D中的子文件夹“3”恰好为空。你知道吗
如何检查和打印所有文件夹中哪个文件夹恰好是空的 例如,让它搜索并打印数字“3”,因为它是所有文件夹B、C和D中唯一的空子文件夹?你知道吗
我试过的代码:
for i in glob.iglob('**/Desktop/A/**' ,recursive = True):
if not os.listdir(i):
print(f'{i} is empty everywhere' + '\n')
这是行不通的。你知道吗
所有文件夹都有相同的子文件夹(名称),但其中一些是空的。我需要找到哪些是空的,在所有这些文件夹和打印出来。你知道吗
现在可以想到的最简单的解决方案是使用映射,其中键是文件夹名称,值可以是布尔值。
True
如果到处都是空的,False
其他地方都是空的。默认值为True
。所以我会用:当然,代码中可能有可以优化的东西。你知道吗
我们需要来自
os
模块的两个函数我们需要一个起点
walk
返回一个生成器,在每一步对它进行迭代我们有当前目录的路径、目录列表和文件列表,但我们不想迭代,只对当前目录中的目录列表感兴趣,因此注意,必须处理一个发电机,以上不是太浪费。。。你知道吗
现在我们在级别1的子目录(l1sd,根目录中包含的sd)上有一个内部循环来创建级别2的目录集列表,这些目录集将被解压并传递给
set.intersection
,这样在dirs_l2
中,我们最终会有一组级别2的所有目录,这些目录存在于级别1的每个目录中我们在每个l1sd中存在的这些内部目录上做一个循环,并使用
all
内置项检查,对于每个l1sd,所有l2sd都是空的,在这种情况下,我们打印总是空的l2子目录的名称一个例子
相关问题 更多 >
编程相关推荐