当文件的位置在不同系统中不同时,在 Python 中查找文件可能是一个挑战。幸运的是,Python 提供了 os.walk 模块,使您能够轻松遍历目录并定位文件。
os.walk 用于文件搜索
os.walk 创建一个生成器迭代目录及其子目录的对象,每次迭代生成三个元组:
查找单个文件
查找特定文件第一次出现时,只需迭代生成的元组并检查文件名是否在文件列表中:
import os
def find(name, path):
for root, dirs, files in os.walk(path):
if name in files:
return os.path.join(root, name)
查找文件的所有出现位置
要查找文件的所有出现位置,请创建一个列表来存储匹配项:
def find_all(name, path):
result = []
for root, dirs, files in os.walk(path):
if name in files:
result.append(os.path.join(root, name))
return result
匹配文件模式
要搜索与模式匹配的文件,请使用 fnmatch 模块:
import os, fnmatch
def find(pattern, path):
result = []
for root, dirs, files in os.walk(path):
for name in files:
if fnmatch.fnmatch(name, pattern):
result.append(os.path.join(root, name))
return result
find('*.txt', '/path/to/dir')
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3