2013-08-18 18 views
5

現在、指定されたすべてのフォルダが実際に存在するかどうかをチェックするスクリプトを作成しています。 絶対パスでos.path.isdir()を使用する必要があることが判明しました。os.path.isdir()はフォルダが存在する場合でもFalseを返します

I次のディレクトリ構造を持っている:

私はOP私のPythonのコマンドラインを開き、以下のフォルダが実際に存在する場合、私が手にしてみてください
X:\ 
    pythonscripts\ 
    files\ 
     Films\ 
     Series\ 
    src\ 

:奇数である

>>> 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

よりもむしろ使用を\ 、あなたかもしれないos.path.sepを使用してコードが他のプラットフォーム上で動作するようにするには、これらをエスケープする必要はありません。

関連する問題