0

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

将遍历符号链接指向的目录,但不给我符号链接本身。谢谢。

4

1 回答 1

7

os.walk()确实给你符号链接。需要考虑三件事:

  • os.path.islink(f)不正确——你必须调用os.path.islink.os.path.join(root, f)

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

  • 指向非目录的符号链接将包含在files.

于 2013-11-05T09:52:26.620 回答