在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
答案 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