我遇到了一个奇怪的情况,它看起来不同的Python模块(os
和stat
vs pathlib
)标识不同,如果文件是符号链接或不符合。Python 3没有检测到符号链接通过统计
让我们例如python3
二进制:
[email protected]:~$ ls -la /usr/bin/python3
lrwxrwxrwx 1 root root 9 Mar 23 2016 /usr/bin/python3 -> python3.5
正如你所看到的,基于上面的shell命令,这是一个符号链接。
如果我使用的Python 3.4引入了pathlib
模块,这是被认定为成功的符号链接:现在
>>> from pathlib import Path
>>> Path('/usr/bin/python3').is_symlink()
True
,如果不是pathlib
,我用的是os
和stat
Python模块,文件不被识别为一个符号链接:
>>> import os
>>> import stat
>>> st_mode = os.stat('/usr/bin/python3').st_mode
>>> st_mode
33261
>>> stat.S_ISLNK(st_mode)
False
我在一个码头工人集装箱通过码头工人试过这种的Mac开始,然后在一个普通的Ubuntu 16.04和结果都是一样的。
任何想法,为什么这可能会发生?
谢谢!
太棒了,谢谢! – Paris