我正在使用 os.walk() 检查目录中的冗余文件并将它们列出。伪代码如下所示:
def checkPath(path):
do the for dirname, dirnames, filenames in os.walk(path) thing here...
pathList = ["path1", "path2"]
for each in pathList:
checkPath(each)
所以这在第一次运行时工作正常,我得到了预期的一切,但是在第二条路径上的下一个 os.walk 上它只是直接跳过...... dirname,dirnames,filenames 中没有任何内容。我做了一些打印语句来检查事情,它正在进入函数,但没有为 os.walk() 部分做任何事情。
在使 os.walk() 部分成为函数以查看它是否可以解决问题之前,它位于与主体内联的 for 循环中。当我尝试(只是为了好玩)用 del 清理目录名、目录名、文件名变量时,在第二条路径上清理时它说变量目录名不存在......
所以看起来,无论是否在函数内, os.walk() 的连续迭代都没有填充......
想法?
谢谢!
以添加一些工作代码为例,像这样。它在做什么并不重要,只是试图让 os.walk 走多条路径:
import os
def checkPath(path):
for dirname, dirnames, filenames in os.walk(path):
for filename in filenames:
print filename
pathList = ["c:\temp\folder1", "c:\temp\folder2"]
for path in pathList:
checkPath(path)
print "done"
可以通过这种方式完成(试图查看是否以不同的方式调用 os.walk,就像其他评论者所建议的那样,可能会有所帮助),或者它可以内联完成,任何明显有效的......
再次感谢大家,