Python os.walk + 跟随符号链接

39 投票
1 回答
29834 浏览
提问于 2025-04-16 04:28

我该如何让这段代码在Python 2.6中跟随符号链接呢?

def load_recursive(self, path):
    for subdir, dirs, files in os.walk(path):
        for file in files:
            if file.endswith('.xml'):
                file_path = os.path.join(subdir, file)
                try:
                    do_stuff(file_path) 
                except:
                    continue

1 个回答

65

followlinks 设置为 True。这是 os.walk 方法的第四个参数,下面是它的代码:

os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])

这个选项是在 Python 2.6 中新增的。

编辑 1

使用 followlinks=True 时要小心。根据文档

注意:要知道,如果设置 followlinks 为 True,可能会导致无限递归,特别是当链接指向它自身的父目录时。walk() 不会记录它已经访问过的目录。

撰写回答