该程序运行良好但是当它执行第二次os.walk
操作时,它比第一次花费的时间要长得多。因此,os.walk
第一次出现时,它会遍历目录树,直到找到名称与partno
输入匹配的目录。然后它将目录位置存储为path_to_files
。然后它遍历给定目录并打开以partno
开头的所有文件。我的猜测是,即使在第一个os.walk
找到目录后,它仍继续搜索以确保它找不到另一个匹配的目录。就像我说它工作得很好但它似乎几乎立即找到path_to_files
目录但是当它运行打开文件这需要更长的时间(8-15秒)是我在我的代码或我做错了这是否与尝试一次打开不同应用程序中的3-6个文件有关?任何帮助是极大的赞赏。
提前谢谢......
import os
partno =""
partno = raw_input("Enter Part No:") #Takes user input of Part No
yourpath = r"Y:\SHOP\MANUFACTURING DOCS" #Parent directory
print ("Loading Part No %r files...Please wait") % partno
for root, dirs, files in os.walk(yourpath, topdown=True):
for name in dirs:
if name == partno: #Matches folder in directory to `part no`
path_to_files = (os.path.abspath(os.path.join(root, name)))
#Stores path in variable so files are only found in this folder
print path_to_files #Confirmation line for me
for dname, _, fnames in os.walk(path_to_files, topdown=True):
for fname in fnames:
if fname.startswith(partno):
filepath = (os.path.abspath(os.path.join(dname, fname)))
os.startfile(filepath) #Opens all files in folder in their native applications
print filepath
break
raise SystemExit