gpt4 book ai didi

python - 在多个目录中按名称搜索文件?

转载 作者:行者123 更新时间:2023-12-01 05:45:45 25 4
gpt4 key购买 nike

好的,这就是我的问题。我在工作时使用两个目录以及目录中的所有子文件夹。我想编写一个程序,提示我输入文件名,给出文件名后,它将搜索这两个目录以及这些目录中的所有子文件夹,查找具有匹配名称的任何文件。是否有捷径可寻。任何和所有的帮助将不胜感激。我想在 python 3 中执行此操作(注意:这是我的第一个真正的项目,老实说我不知道​​从哪里开始。)

最佳答案

这是一个带有递归辅助函数的函数,它返回文件夹中的所有文件(以字典形式:{file_name: file_path, ...}

import os, os.path

def getFiles(path):
'''Gets all of the files in a directory'''
sub = os.listdir(path)
paths = {}
for p in sub:
print p # just to see where the function has reached; it's optional
pDir = os.path.join(path, p)
if os.path.isdir(pDir):
paths.update(getAllFiles(pDir, paths))
else:
paths[p] = pDir
return paths

def getAllFiles(mainPath, paths = {}):
'''Helper function for getFiles(path)'''
subPaths = os.listdir(mainPath)
for path in subPaths:
pathDir = pDir = os.path.join(mainPath, path)
if os.path.isdir(pathDir):
paths.update(getAllFiles(pathDir, paths))
else:
paths[path] = pathDir
return paths

例如,如果您正在查找 myfile.txt,则字典键:值对之一将类似于 {'myfile.txt': 'C:\Users\Example\Path\myfile.txt', ...}.

根据文件夹有多少文件,速度可能会很慢。搜索我的 sys.path(大约有 10 个文件夹,其中一个是 Python\Lib,非常大),大约需要 9 秒。

关于python - 在多个目录中按名称搜索文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16197973/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com