2013-08-18 5 views
5

В настоящее время я пишу скрипт, который должен проверить, действительно ли все указанные папки существуют. Я выяснил, что должен использовать os.path.isdir() с абсолютными путями.os.path.isdir() возвращает False, даже если существует папка

У меня есть следующая структура каталогов:

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

Вместо того, чтобы использовать \ , ты мог бы nt использовать os.path.sep, чтобы ваш код работал на других платформах, вам также не нужно их избегать.