如何在python中查找目录及其子目录中的所有符号链接

如何在python中查找目录及其子目录中的所有符号链接,python,Python,我需要使用python列出符号链接。也坏了 我该怎么做?我到处找,试了很多 我发现最好的结果是: import os,sys print '\n'.join([os.path.join(sys.argv[1],i) for i in os.listdir(sys.argv[1]) if os.path.islink(os.path.join(sys.argv[1],i))]) 它不会显示链接到的位置,也不会转到子目录。您可以使用类似于此的代码来实现所需的功能。要搜索的目录作

我需要使用python列出符号链接。也坏了

我该怎么做?我到处找,试了很多

我发现最好的结果是:

import os,sys
print '\n'.join([os.path.join(sys.argv[1],i) 
    for i in os.listdir(sys.argv[1]) if 
    os.path.islink(os.path.join(sys.argv[1],i))])

它不会显示链接到的位置,也不会转到子目录。

您可以使用类似于此的代码来实现所需的功能。要搜索的目录作为参数传递,或者当前目录作为默认目录。您可以使用
os.walk
方法进一步修改它,使其递归

import sys, os

def lll(dirname):
    for name in os.listdir(dirname):
        if name not in (os.curdir, os.pardir):
            full = os.path.join(dirname, name)
            if os.path.isdir(full) and not os.path.islink(full):
                lll(full)
            elif os.path.islink(full):
                print(name, '->', os.readlink(full))
def main(args):
    if not args: args = [os.curdir]
    first = 1
    for arg in args:
        if len(args) > 1:
            if not first: print()
            first = 0
            print(arg + ':')
        lll(arg)

if __name__ == '__main__':
    main(sys.argv[1:])

Ref:

如果您想转到subdirs,请使用
os.walk(followlinks=True)
。如果你想显示链接目标,请使用
os.readlink
ah是的,我找到了它并添加了os.walk,但它仍然没有显示子目录