我遇到了一個奇怪的情況,它看起來不同的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