2013-03-30 154 views
3

os有一個函數os.path.islink(PATH)它檢查PATH是否符號鏈接。但是,如果PATH是某個目錄的符號鏈接,則會失敗。相反 - 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 
+6

兩個'isdir'和'islink'返回TRUE;有關Python 2.7.3指向目錄的符號鏈接/ OS X.莫非你發佈你的代碼? – zigg

+2

問題是附加斜線('/')? –

+1

@NiclasNilsson:是的。它是。 – Adobe

回答

11

這是因爲你把一個斜線在文件名的末尾。

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

尾隨斜槓導致OS跟隨鏈接,以便結果是不是鏈接的目標目錄。如果刪除斜槓,islink將返回True

同樣的事情在發生猛砸以及:

[email protected]:~$ file aaa 
aaa: symbolic link to `/etc' 
[email protected]:~$ file aaa/ 
aaa/: directory 
相關問題