2013-08-18 176 views
5

我目前正在編寫一個腳本,它必須檢查所有指定的文件夾是否實際存在。 我發現我必須用絕對路徑使用os.path.isdir()。os.path.isdir()即使在文件夾存在時也會返回False

我有以下目錄結構:

X:\ 
    pythonscripts\ 
    files\ 
     Films\ 
     Series\ 
    src\ 

當我打開OP我的Python命令行和嘗試,如果實際存在的文件夾,我得到如下:

>>> import os 
>>> os.path.isdir('X:\pythonscripts\src') 
True 
>>> os.path.isdir('X:\pythonscripts\files') 
False 
>>> os.path.isdir('X:\pythonscripts\files\Films') 
False 
>>> os.path.isdir('X:\pythonscripts\files\Series') 
False 

這是奇怪的,因爲當我將這些路徑複製並粘貼到Windows資源管理器時,我可以毫無問題地訪問它們。我檢查了權限,所有文件夾都具有相同的權限。有誰知道我做錯了什麼?

回答

13

逃生反斜槓(\

os.path.isdir('X:\\pythonscripts\\src') 

或使用原始字符串:

os.path.isdir(r'X:\pythonscripts\src') 

沒有逃避,你走錯了路:

>>> '\f' 
'\x0c' 
>>> print '\f' 

>>> print '\\f' 
\f 
>>> print r'\f' 
\f 
2

而不是使用\ ,你可能會wa nt使用os.path.sep,以便您的代碼可以在其他平臺上工作,那麼您也不必轉義它們。

相關問題