📜  递归文件夹扫描 - Python (1)

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

递归文件夹扫描 - Python

在 Python 中,我们可以使用递归算法来扫描整个文件夹,寻找我们想要的文件,并对这些文件进行相应的操作。

代码实现

首先,我们需要引入 os 模块。os 模块是 Python 的标准库之一,提供了访问操作系统功能的接口,包括文件系统操作、进程管理等。

import os

接下来,我们定义一个函数 scan_folder,该函数接收一个路径参数 folder_path,并通过递归算法扫描该路径下的所有文件和文件夹,直到找到我们需要的文件。

def scan_folder(folder_path):
    for file_name in os.listdir(folder_path):
        file_path = os.path.join(folder_path, file_name)
        if os.path.isdir(file_path):
            # 如果是文件夹,则递归扫描
            scan_folder(file_path)
        else:
            # 如果是文件,则进行操作
            # 这里可以根据实际需求进行操作,例如打印文件名、移动文件等
            print(file_path)

在函数中,我们首先使用 os.listdir(folder_path) 方法获取该路径下的所有文件和文件夹的名称,然后组合成文件路径 file_path。如果 file_path 是文件夹,则递归调用 scan_folder 函数;如果是文件,则执行相应的操作。

测试

为了测试我们的程序是否正确,我们可以向指定文件夹中添加一些文件和文件夹。

.
├── Folder1
│   ├── File1-1.txt
│   ├── File1-2.txt
│   └── Folder1-1
│       └── File1-1-1.txt
├── File1.txt
└── File2.txt

然后,我们调用 scan_folder 函数,传入文件夹路径作为参数。

scan_folder('.')

程序将会输出以下内容:

./Folder1/File1-1.txt
./Folder1/File1-2.txt
./Folder1/Folder1-1/File1-1-1.txt
./File1.txt
./File2.txt
结语

通过递归算法,我们可以轻松扫描整个文件夹,对其中的文件进行操作。同时,在实际应用中,我们还可以通过添加额外的判断条件,实现更为复杂的文件扫描和操作。