以下是一个示例代码,可以遍历文件树并排除目录:
import os
def traverse_files(root_dir):
for root, dirs, files in os.walk(root_dir):
# 排除目录
dirs[:] = [d for d in dirs if not is_excluded_dir(os.path.join(root, d))]
for file in files:
file_path = os.path.join(root, file)
# 处理文件
process_file(file_path)
def is_excluded_dir(dir_path):
# 判断目录是否需要排除
excluded_dirs = ['excluded_dir1', 'excluded_dir2'] # 例子中排除了两个目录
return any(dir_path.endswith(dir) for dir in excluded_dirs)
def process_file(file_path):
# 处理文件的逻辑
print(file_path)
# 调用示例
root_dir = '/path/to/root/dir'
traverse_files(root_dir)
上述代码中,traverse_files
函数使用os.walk
方法遍历文件树。在每个迭代的循环中,使用列表推导式过滤dirs
列表,将不需要排除的目录保留下来。然后,对于每个文件,调用process_file
函数进行处理。
is_excluded_dir
函数用于判断目录是否需要排除。在示例中,定义了一个excluded_dirs
列表,其中包含需要排除的目录名。在函数中,使用any
函数和列表推导式判断目录路径是否以排除的目录名结尾,如果是则返回True,否则返回False。
最后,调用示例中,将根目录的路径作为参数传递给traverse_files
函数,即可开始遍历文件树并排除目录。
上一篇:遍历文件数组
下一篇:遍历文件系统的最快方法