2013-08-18 21 views
5

Şu anda, belirtilen tüm klasörlerin gerçekten mevcut olup olmadığını kontrol etmesi gereken bir komut dosyası yazıyorum. Os.path.isdir() yolunu mutlak yollarla kullanmam gerektiğini öğrendim.os.path.isdir(), klasör var olduğunda bile False değerini döndürür

aşağıdaki dizin yapısı vardır:

Ben op benim piton komut satırını açın ve aşağıdaki klasörleri gerçekten var, ben olsun denemek
X:\ 
    pythonscripts\ 
    files\ 
     Films\ 
     Series\ 
    src\ 

: garip

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

, çünkü bu yolları Windows Gezgini'ne kopyalayıp yapıştırdığımda, bunlara problemsiz erişebiliyorum. İzinleri kontrol ettim ve tüm klasörler üzerlerinde aynı izinlere sahip. Yanlış yaptığımı bilen var mı?

cevap

13

Kaçış ters eğik çizgi (\)

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

veya kullanım ham dize:

os.path.isdir(r'X:\pythonscripts\src') 
kaçış olmadan

elde edersiniz yanlış yol:

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

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

yerine kullanmak \ , sen bekleyebilirsin os.path.sep dosyasını kullanmak için kodunuz diğer platformlarda çalışır, bundan sonra da bunlardan kaçmak zorunda kalmazsınız.

İlgili konular