📜  如何递归扫描目录python(1)

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

如何递归扫描目录python

在 Python 中,可以使用递归算法来扫描目录。递归算法是一种自身调用的算法,通过函数不断调用自身来解决一个问题。

递归扫描目录的实现
import os


def scan_dir(path):
    """
    递归扫描目录
    """
    for file_name in os.listdir(path):
        file_path = os.path.join(path, file_name)
        if os.path.isdir(file_path):
            scan_dir(file_path)
        else:
            print(file_path)

以上代码定义了一个 scan_dir 函数,该函数接收一个字符串参数 path,用于指定要扫描的目录路径。在函数中首先通过 os.listdir 函数获取指定目录下的所有文件和子目录,然后循环遍历这些文件和子目录。

对于子目录,使用 os.path.join 函数将父目录路径和子目录名称拼接成新的路径,然后在函数中递归调用 scan_dir 函数。对于普通文件,在函数中直接输出该文件的路径。

示例

假设有如下目录结构:

../
├── dir1
│   ├── file1.txt
│   ├── file2.txt
│   └── subdir1
│       ├── file3.txt
│       ├── file4.txt
│       └── subdir2
│           └── file5.txt
├── dir2
│   └── file6.txt
├── file7.txt
└── file8.txt

调用 scan_dir('../'),输出结果为:

../dir1/subdir1/file3.txt
../dir1/subdir1/file4.txt
../dir1/subdir1/subdir2/file5.txt
../dir1/file1.txt
../dir1/file2.txt
../dir2/file6.txt
../file7.txt
../file8.txt

以上代码和实现方式只是对递归算法的一个简单应用,还有很多其他算法和应用可以使用递归来实现,例如二叉树的遍历等。