python - 在第一次匹配时停止搜索,在 +900 个文件夹 PYTHON 的文件夹中
问题描述
我有一个文件夹(C:\Users\jrange14\Desktop\Jobs),里面有 900 多个文件夹,格式如下:
“三个数字”+“_”+“工作名称”
示例:888_jtjdt
我想做一个搜索,用户只需要询问一个名为 JOB 的三位数输入,程序将搜索整个文件夹并找到所需的文件夹,只有文件夹的前 3 个字符。
这是获取该文件夹路径的 Python 代码:
import os
import fnmatch
#Job to find
job = "888"
#This is the folder where all the "jobs" are
eng_path=r"C:\Users\jrange14\Desktop\Jobs"
#Define the path in which we will work
os.chdir(eng_path)
path = os.getcwd()
print(path)
#Look in the directory
for dirs in os.listdir():
if fnmatch.fnmatch(dirs, job+"*"):
#print(dirs)
job_name = dirs
job_path=eng_path+'\\'+job_name
print(job_path)
使用此代码,我可以获得 3 件事,工作目录:
C:\Users\jrange14\Desktop\Jobs
所需文件夹的全名:
888_jtjdt
以及前两者的总和以获得该文件夹的完整路径:
C:\Users\jrange14\Desktop\Jobs\888_jtjdt
问题是这段代码需要很长时间才能获得这个答案,因为文件夹中有很多文件夹(超过 900 个),并且每个文件夹都与输入相匹配。
从我看到我的问题在这里:
#Look in the directory
for dirs in os.listdir():
if fnmatch.fnmatch(dirs, job+"*"):
#print(dirs)
job_name = dirs
有了这个for
,我看到它遍历整个目录,寻找我们输入的匹配。即使程序找到所需的文件夹,它也会继续整个目录寻找另一个
由于每个工作的前三个数字彼此不同,因此无需继续寻找其他可能的匹配项。
我该怎么做才能在第一场比赛中停止程序?
解决方案
推荐阅读
- ios - 改变 AVPlayer 方向 - Swift
- google-apps-script - 无法访问的服务 - appsactivity
- glfw - Vulkan、glfw 和 macOS:vkCreateInstance 返回 VK_ERROR_INITIALIZATION_FAILED
- selenium-firefoxdriver - 如何让 FirefoxDriver 自动播放 youtube 视频?
- bash - bash 单个命令,更新命令输出
- google-sheets - Array_Constrain 或 Query 减慢工作表
- java - 有没有办法验证 mongodb 是否在 Java 中运行?
- python - Jupyter Notebook 停止在浏览器视图中显示所有文件夹/文件
- python - 找到机器人可以安全访问网格上的点的最大区域
- python-3.x - 为什么我的链接列表不打印所有值?