Python 使用os.walk获取符号链接

Python 使用os.walk获取符号链接,python,Python,我正在使用os.walk遍历我的目录。问题是我想识别文件是否是符号链接,而不是跟随链接。此代码: for root, dirs, files in os.walk(PROJECT_PATH): for f in files: # I want os.path.islink(f) to return true for symlink here # instead of ignoring them by default 不会给我符号链接,而此代码 for r

我正在使用
os.walk
遍历我的目录。问题是我想识别文件是否是符号链接,而不是跟随链接。此代码:

for root, dirs, files in os.walk(PROJECT_PATH):
    for f in files:
        # I want os.path.islink(f) to return true for symlink here
        # instead of ignoring them by default
不会给我符号链接,而此代码

for root, dirs, files in os.walk(PROJECT_PATH, followlinks=True):
    for f in files
将遍历符号链接指向的目录,但不给我符号链接本身。谢谢。

os.walk()
确实提供了符号链接。有三件事需要考虑:

  • os.path.islink(f)
    不正确-您必须在
    os.path.join(root,f)
    上调用
    os.path.islink

  • 指向目录的符号链接将包含在
    dirs
    中(但不在后面,除非您还指定了
    followlinks=True
    ,您不需要这样做,因为您实际上不需要遵循它们)

  • 指向非目录的符号链接将包含在
    文件中


谢谢。但是你知道在你的头顶上还是有一些医生我可以看?@limm。所描述的行为并不明确,但对我来说是有意义的。不过,我当时并不知道,我创建了一个带有两个符号链接的小目录,并对其进行了测试。