📜  Python:获取所有空目录的列表

📅  最后修改于: 2022-05-13 01:54:42.751000             🧑  作者: Mango

Python:获取所有空目录的列表

Python中的OS 模块用于与操作系统交互。该模块附带 Python 的标准实用程序模块,因此无需在外部安装它。 OS 模块中的所有函数在文件名和路径无效或不可访问的情况下,或具有正确类型但操作系统不接受的其他参数的情况下引发OSError

该模块的os.walk()方法可用于列出所有空目录。此方法基本上在目录树中自顶向下或自底向上生成文件名。对于以目录 top 为根的树中的每个目录(包括 top 本身),它会产生一个 3 元组( dirpathdirnamesfilenames )。

  • dirpath:一个字符串,它是目录的路径
  • dirnames:根目录下的所有子目录。
  • 文件名:来自根目录和目录的所有文件。

示例:假设目录如下所示 -

Python-list-of-empty-directories

我们想打印出所有的空目录。由于此方法返回子目录和文件的元组,我们将检查每个元组的大小,如果大小为零,则目录将为空。下面是实现。

# Python program to list out
# all the empty directories
  
  
import os
  
# List to store all empty
# directories
empty = []
  
# Traversing through Test
for root, dirs, files in os.walk('Test'):
  
    # Checking the size of tuple
    if not len(dirs) and not len(files):
  
        # Adding the empty directory to
        # list
        empty.append(root)
  
Print("Empty Directories:")
print(empty)

输出:

Empty Directories:
['Test\\A\\A2', 'Test\\B', 'Test\\D\\E']

上面的代码可以使用List Comprehension来缩短,这是一种更 Pythonic 的方式。下面是实现。

# Python program to list out
# all the empty directories
  
  
import os
  
# List comprehension to enter
# all empty directories to list
  
empty = [root for root, dirs, files, in os.walk('Test')
                   if not len(dirs) and not len(files)]
  
print("Empty Directories:")
print(empty)

输出:

Empty Directories:
['Test\\A\\A2', 'Test\\B', 'Test\\D\\E']