首页 > 解决方案 > 让 os.walk 有条件地遵循符号链接

问题描述

我正在使用Python 2.7

我有这样的场景

 for (root,dirs,files) in os.walk(dir_tree, topdown=True, followlinks=True):
        for atom in files:
            # do something with files
        for dir in dirs:
            # do something with dirs

我正在os.walk目录树上执行。这棵树有一些链接。其中一些链接指向目录树中的其他位置。有些链接没有。我希望 os.walk 只关注指向目录树中其他位置的链接

例如:

A/
   temp/
       collateral_file_1
   B/
       link1    ->   Somewhere outside A
       link2    ->   A/temp/
   C/
       file_1

在上述情况下dir_tree,将 A/ 。当os.walk在 AI 上执行时想要探索link2,因为它是 A 中另一个位置的链接。但不是link1

你可能想知道为什么?的内容link1将在步行后的非符号链接中进行探索。但原因是我正在检查通过配置文件输入的某些文件模式以获取某些属性。

例如:所有文件都A/B/link1/应该有700权限等。

有没有办法我可以做到这一点?

我想过,os.listdir但似乎应该有一个更简单的方法

标签: pythonos.walk

解决方案


推荐阅读