当文件的位置在不同系统中不同时,在 Python 中查找文件可能是一个挑战。幸运的是,Python 提供了 os.walk 模块,使您能够轻松遍历目录并定位文件。
os.walk 用于文件搜索
os.walk 创建一个生成器迭代目录及其子目录的对象,每次迭代生成三个元组:
查找单个文件
查找第一次出现特定文件时,只需迭代生成的元组并检查文件名是否在文件列表中:
<code class="python">import os def find(name, path): for root, dirs, files in os.walk(path): if name in files: return os.path.join(root, name)</code>
查找文件的所有出现
要查找文件的所有出现位置,请创建一个列表来存储匹配项:
<code class="python">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</code>
匹配文件模式
要搜索匹配的文件模式,使用 fnmatch 模块:
<code class="python">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')</code>
以上是如何使用Python高效地跨多个目录搜索文件?的详细内容。更多信息请关注PHP中文网其他相关文章!