可以說讓我有這樣的目錄:os.path.isdir()返回不可訪問假的,但現有的目錄
foo/bar/
bar
是chmod 777
和foo
爲000
當我打電話os.path.isdir('foo/bar')
它只返回False,沒有任何Permission Denied Exception或其他任何東西,爲什麼會這樣?它不應該返回True嗎?
可以說讓我有這樣的目錄:os.path.isdir()返回不可訪問假的,但現有的目錄
foo/bar/
bar
是chmod 777
和foo
爲000
當我打電話os.path.isdir('foo/bar')
它只返回False,沒有任何Permission Denied Exception或其他任何東西,爲什麼會這樣?它不應該返回True嗎?
如果你不是root,那麼你不能訪問foo。因此,您不能檢查foo/bar是否存在,並且它返回False,因爲它無法找到具有該名稱的目錄(因爲它無法訪問父目錄)。
對不起,我忘了接受 – Ginko
os.path.isdir
可以返回True
或False
,但不能引發異常。
因此,如果無法訪問目錄(因爲父目錄沒有遍歷權限),它將返回False
。
如果您想要例外,請嘗試使用旨在引發異常的os.chdir
或os.listdir
。
你可以實現一個try/except
塊:
import os
path = '/foo/bar'
if os.path.exists(path):
try:
os.chdir(path)
except PermissionError:
print ("Access Denied To:", path)
你能接受我的答案,如果它幫助你的?謝謝。 – mrCarnivore