📅  最后修改于: 2023-12-03 15:23:33.962000             🧑  作者: Mango
有时我们需要在整个系统中搜索文件。Python 提供了一些内置模块来实现这一点。在本文中,我们将介绍如何使用 Python 在整个系统中搜索文件。
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
模块提供类 Unix shell 风格的文件名匹配。可以使用通配符匹配文件名。
下面是一个示例程序,该程序搜索系统中所有文件名中包含 'test' 的文件:
import glob
for file in glob.iglob('/**/*test*', recursive=True):
print(file)
这段代码会在整个系统中搜索所有文件名中包含 'test' 的文件,并将它们的路径打印出来。
pathlib
模块提供了面向对象的文件路径操作。可以使用 Path.glob()
方法来搜索整个系统中的文件。
下面是一个示例程序,该程序搜索系统中所有文件名中包含 'test' 的文件:
from pathlib import Path
for file in Path('/').rglob('*test*'):
print(file)
这段代码会在整个系统中搜索所有文件名中包含 'test' 的文件,并将它们的路径打印出来。
本文介绍了如何使用 Python 在整个系统中搜索文件。可以使用 os.walk()
函数、glob
模块或 pathlib
模块来实现这一点。