📜  在整个系统中搜索文件 - Python (1)

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

在整个系统中搜索文件 - Python

有时我们需要在整个系统中搜索文件。Python 提供了一些内置模块来实现这一点。在本文中,我们将介绍如何使用 Python 在整个系统中搜索文件。

使用 os.walk() 函数

os.walk() 函数可以遍历目录树,返回每个文件夹(包括其子文件夹)中的所有文件(包括子文件夹中的文件)。 可以将 os.walk() 函数与 fnmatch 模块一起使用,这样就可以搜索文件名模式匹配的文件。

下面是一个示例程序,该程序搜索整个系统中以 .txt 结尾的文件,并将它们打印出来:

import os

for root, dirs, files in os.walk('/'):
    for file in files:
        if file.endswith('.txt'):
            print(os.path.join(root, file))

这段代码会在整个系统中搜索以 .txt 结尾的文件,并将它们的路径打印出来。

使用 glob 模块

glob 模块提供类 Unix shell 风格的文件名匹配。可以使用通配符匹配文件名。

下面是一个示例程序,该程序搜索系统中所有文件名中包含 'test' 的文件:

import glob

for file in glob.iglob('/**/*test*', recursive=True):
    print(file)

这段代码会在整个系统中搜索所有文件名中包含 'test' 的文件,并将它们的路径打印出来。

使用 pathlib 模块

pathlib 模块提供了面向对象的文件路径操作。可以使用 Path.glob() 方法来搜索整个系统中的文件。

下面是一个示例程序,该程序搜索系统中所有文件名中包含 'test' 的文件:

from pathlib import Path

for file in Path('/').rglob('*test*'):
    print(file)

这段代码会在整个系统中搜索所有文件名中包含 'test' 的文件,并将它们的路径打印出来。

总结

本文介绍了如何使用 Python 在整个系统中搜索文件。可以使用 os.walk() 函数、glob 模块或 pathlib 模块来实现这一点。