在使用 os.walk 时,我得到了一些非常不一致的结果。我的目标是使用 python 以编程方式在我的系统上定位另一个 python 文件。当 os.walk 没有太多工作要做并且只搜索一个或两个文件夹时,这很好用:
import os
from os.path import join
lookfor = "new_id17.py"
for root, dirs, files in os.walk('L:\\HWYS\\D_GROUP6\\STAFF\\myname\\Python'):
for name in files:
print(os.path.join(root, name))
if lookfor in files:
print "found: %s" % join(root, lookfor)
break
使用上面的代码 os.walk 很容易在很短的时间内找到我的文件。但是,如果我要求它在文件夹目录的更高位置搜索相同的文件,它似乎无法找到该文件:
import os
from os.path import join
lookfor = "new_id17.py"
for root, dirs, files in os.walk("L:\\HWYS"):
for name in files:
print(os.path.join(root, name))
if lookfor in files:
print "found: %s" % join(root, lookfor)
break
有谁知道我哪里出错了?os.walk 是否存在任何已知问题?或者它只是不太擅长搜索大量文件夹和文件。