python - 检查目录是否是符号链接(symbolic link)?

标签 python python-2.7

os 中有一个函数 os.path.islink(PATH) 检查 PATH 是否是符号链接(symbolic link)。但是如果 PATH 是指向某个目录的符号链接(symbolic link)时失败。相反——python 认为它是目录 (os.path.isdir(PATH))。那么如何检查目录是否为链接?

编辑:

这是 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

最佳答案

发生这种情况是因为您在文件名末尾放置了一个斜杠。

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

关于python - 检查目录是否是符号链接(symbolic link)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15718006/

相关文章:

python - 使用 Python 高效查找每个像素中的点

python - 误导性全局变量

javascript - Python:登录到网页并单击没有 Selenium 的按钮

json - 如何从获取响应正文捕获值 - 机器人框架

python - 无法访问 Project Gutenberg 原始文本

Python tkinter 在标题栏中更改 'open'

python - Pandas df.values 不返回索引值

python - 使用 Flask 检索提交按钮的名称

python - Selenium 选中的节点文本

python - 属性错误 : install_layout when attempting to install a package in a virtual environment