2013-08-18 16 views
5

Obecnie piszę skrypt, który musi sprawdzić, czy wszystkie określone foldery faktycznie istnieją. Dowiedziałem się, że muszę używać funkcji os.path.isdir() z bezwzględnymi ścieżkami.os.path.isdir() zwraca False, nawet jeśli istnieje folder

Mam następującą strukturę katalogów:

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

Kiedy otwieram op linię moje polecenia python i spróbować jeśli foldery rzeczywiście istnieje, pojawia się następujący:

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

Która jest nieparzysta, ponieważ po skopiowaniu i wklejeniu tych ścieżek do Eksploratora Windows mogę uzyskać do nich dostęp bez problemów. Sprawdziłem uprawnienia i wszystkie foldery mają te same uprawnienia. Czy ktoś wie, co robię źle?

Odpowiedz

13

Ucieczka backslash (\)

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

lub użyj surowy ciąg:

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

bez ucieczki, masz złą drogę:

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

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

Zamiast używać \ możesz wygrać Aby móc korzystać z os.path.sep, aby Twój kod działał na innych platformach, nie musisz też uciec.

Powiązane problemy