📜  递归查找文件夹 (1)

📅  最后修改于: 2023-12-03 15:41:58.005000             🧑  作者: Mango

递归查找文件夹

递归查找文件夹是一种常见的程序设计技巧,它可以在文件系统中查找指定的目录,以及目录中包含的所有子目录和文件。这种技巧通常被应用于文件管理、备份和数据分析等应用领域。

递归函数

递归函数是一种特殊的函数,它在函数体中调用自身。递归函数可以解决许多循环执行的问题,比如文件夹遍历。

下面是一个递归函数的示例:

def search_files(root_path, ext):
    for filename in os.listdir(root_path):
        filepath = os.path.join(root_path, filename)
        if os.path.isdir(filepath):
            search_files(filepath, ext)
        elif os.path.isfile(filepath) and os.path.splitext(filename)[1] == ext:
            print(filepath)

这个函数接受两个参数:root_path 是要查找的目录,ext 是目标文件的扩展名。函数首先遍历当前目录中的所有文件和子目录,如果遇到子目录则递归调用自身,直到找到目标文件为止。

使用递归函数查找文件夹

要使用递归函数查找文件夹,只需调用上面的函数,并传递正确的参数即可。以下是一个示例程序:

import os

def search_files(root_path, ext):
    for filename in os.listdir(root_path):
        filepath = os.path.join(root_path, filename)
        if os.path.isdir(filepath):
            search_files(filepath, ext)
        elif os.path.isfile(filepath) and os.path.splitext(filename)[1] == ext:
            print(filepath)

if __name__ == '__main__':
    search_files('C:/Users', '.txt')

这个程序使用 search_files 函数在 C:/Users 目录及其子目录中查找所有扩展名为 .txt 的文件,并输出它们的文件路径。可以将 C:/Users 更改为计算机上任何目录的路径,并替换扩展名以查找任何类型的文件。

总结

递归查找文件夹是一种常用的程序设计技巧,可以在文件系统中查找目标文件、遍历文件夹等。递归函数是一种特殊的函数,它可以在函数体中调用自身来解决问题。在使用递归函数查找文件夹时,可以传递目标目录和文件扩展名作为参数,并使用适当的逻辑来遍历目录树。