2016-03-21 29 views
0

Bir dosya olup olmadığını görmek için os.path.isfile (yol) yöntemini test ediyorum. Garip bir şekilde, yol ve dosya adına katılırsa doğru döndüğünü, ancak tam dosya yolunu koyarsam false döndürdüğünü bulurum. Bu neden?Python 2.7 os.path.isfile

'C: \\ Kullanıcılar \\ usrname \\ Documents \\ Win 7 ipython Notebook

+0

os.path.join çıktısını kontrol separatörlerde kaçış ('C: Documents \ \ Users \ usrname', 'test.xlsx') – kingdaemon

cevap

3

Onun yolunda \t bir sekme karakteri değil, bir iki karakter eğik çizgi-t çünkü. Ham dizeleri kullan.

path = r'C:\Users\usrname\Documents\test.xlsx' 

veya

path = 'C:\\Users\\usrname\\Documents\\test.xlsx' 
+0

teşekkür ederim! Umarım bunun bir başkasına yardımı olur. – Mateyobi

0

üzerinde

import os 

path = 'C:\Users\usrname\Documents\test.xlsx' 

if os.path.isfile(os.path.join('C:\Users\usrname\Documents','test.xlsx')): #returns yes 
    print 'yes' 
else: 
    print 'no' 

if os.path.isfile(path): #returns no 
    print 'yes' 
else: 
    print 'no' 

Python 2.7 os.path.join yolu düzeltmek için size yol dizesi dönüştürmek Çünkü sınama.xlsx '

2

\t ürününüzün sekmesi vardır.

import os 
path = 'C:\Users\usrname\Documents\test.xlsx' 
print path 

# C:\Users\usrname\Documents est.xlsx 

path = os.path.join('C:\Users\usrname\Documents', 'test.xlsx') 
print path 

# C:\Users\usrname\Documents\test.xlsx 

Ben tamamen dize bina os.path.join kullanarak öneririm, tamamen kaçış karakterlerin sorunu önlemek için.

base_dir = os.path.join('C:', 'Users', 'usrname', 'Documents') 
print base_dir 

# C:\Users\usrname\Documents 

path = os.path.join(base_dir, 'test.xlsx') 
print path 

# C:\Users\usrname\Documents\test.xlsx