📅  最后修改于: 2023-12-03 14:46:13.691000             🧑  作者: Mango
有时候,我们需要在一个目录中搜索特定的文件。Python提供了多种方法来实现这个任务。
os.walk
函数可以遍历一个文件夹及其子文件夹中的所有文件和文件夹,可以使用os.path
模块中的函数来判断文件类型并进行筛选。
import os
def find_files(directory, extension):
for root, dirs, files in os.walk(directory):
for file in files:
if file.endswith(extension):
print(os.path.join(root, file))
示例调用:
find_files('/path/to/directory', '.txt')
以上代码将遍历/path/to/directory
目录及其子目录中的所有.txt
文件,并将它们的路径打印出来。
glob
模块可以用来匹配文件路径,使用这个模块可以方便地查找特定的文件。
import glob
def find_files(directory, extension):
for file_path in glob.glob(os.path.join(directory, '*{}'.format(extension))):
print(file_path)
示例调用:
find_files('/path/to/directory', '.txt')
以上代码将在/path/to/directory
目录及其子目录中查找所有.txt
文件,并将它们的路径打印出来。
在Python3.4及以上版本中,pathlib
模块提供了一种更优雅的方式来处理文件路径,可以使用其提供的glob
方法来查找特定的文件。
import pathlib
def find_files(directory, extension):
for file_path in pathlib.Path(directory).rglob('*{}'.format(extension)):
print(file_path)
示例调用:
find_files('/path/to/directory', '.txt')
以上代码将在/path/to/directory
目录及其子目录中查找所有.txt
文件,并将它们的路径打印出来。
以上三种方法都可以用来查找特定的文件,开发者可以根据自己的实际需求选择适合自己的方法。