2013-08-18 15 views
5

Attualmente sto scrivendo uno script che deve verificare se esistono effettivamente tutte le cartelle specificate. Ho scoperto che devo usare os.path.isdir() con percorsi assoluti.os.path.isdir() restituisce False anche quando esiste la cartella

Ho la seguente struttura di directory:

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

Quando apro op linea di mio comando python e provare se effettivamente esistono le cartelle, ottengo il seguente:

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

che è strano, perché quando copio e incollo questi percorsi in Windows Explorer, posso accedervi senza problemi. Ho controllato le autorizzazioni e tutte le cartelle hanno le stesse autorizzazioni su di loro. Qualcuno sa cosa sto sbagliando?

risposta

13

fuga backslash (\)

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

o utilizzare stringa di prima:

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

senza scampo, si ottiene una strada sbagliata:

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

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

Invece di usare \ , potresti wa nt per usare os.path.sep in modo che il tuo codice funzioni su altre piattaforme, quindi non devi sfuggire neanche a queste.

Problemi correlati