第二次os.walk跑得非常慢

时间:2017-08-14 17:29:28

标签: python python-2.7 performance os.walk

该程序运行良好但是当它执行第二次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

0 个答案:

没有答案