我正在尝试在python中编写一个目录walker来确定查找文件类型。我的问题是我可能会引用子文件夹中的父文件夹,从而导致循环。有什么办法可以解决这个问题吗?我的代码看起来像这样:
def _hasMp3(path, fileTypes):
if path:
childDirs = [root]
fileTypes = fileTypes or []
while childDirs:
qdir = childDirs.pop()
path = unicode(qdir.absolutePath())
path = os.path.normalpath(path)
return False
答案 0 :(得分:2)
获取每个目录的已解析路径,并保留一组之前看到的所有目录:
seen = set()
while subDirs:
qdir = subDirs.pop()
path = unicode(qdir.canonicalPath())
if path in seen:
continue
seen.add(path)