检查目录是否是符号链接?

时间:2013-03-30 11:26:38

标签: python python-2.7

os中有一个函数os.path.islink(PATH),用于检查PATH是否为符号链接。但是当PATH是某个目录的符号链接时失败。相反 - python认为它是目录(os.path.isdir(PATH))。那么如何检查dir是否链接?

修改

以下是bash的想法:

~/scl/bkbkshit/Teaching: file 2_-_Classical_Mechanics_\(seminars\)
2_-_Classical_Mechanics_(seminars): symbolic link to `/home/boris/wrk/tchn/2_-_Classical_Mechanics_(seminars)'

这是python的想法:

In [8]: os.path.islink("2_-_Classical_Mechanics_(seminars)/")
Out[8]: False

1 个答案:

答案 0 :(得分:11)

这是因为你在文件名的末尾添加了一个斜杠。

os.path.islink("2_-_Classical_Mechanics_(seminars)/")
                                                  ^

尾部斜杠会导致操作系统跟踪链接,因此结果是目标目录,而不是链接。如果您删除斜杠,islink将返回True

同样的事情也发生在Bash中:

g@ubuntu:~$ file aaa
aaa: symbolic link to `/etc'
g@ubuntu:~$ file aaa/
aaa/: directory