2010-09-27 34 views
5

Başa çıkmakta güçlük çeken bir python uzmanıyım.dizgede izin verilen eşitlik testi

Bir yolu tanımlayan bir dizim var, tüm boşluklar alt çizgilere dönüştürülüyordu. Gerçek bir yola karşılık gelip gelmediğini nasıl bulabilirim?

örn. Gerçek bir yol ile /some/path_to/directory_1/and_to/directory_2
gibi bir dize: Gerçek yolu boşluk ve alt çizgi İKİ içerebileceğini /some/path_to/directory 1/and_to/directory 2

ihbar.

os.path.exists() ???

sayesinde alessandro

cevap

5

kullanın glob ancak bir dizi [ _] her altını değiştirirken: Yolunuz karakterini [ içeriyorsa bu başarısız olacağını

import glob 
glob.glob('/some/path_to/directory_1/and_to/directory_2'.replace('_', '[ _]')) 

Not. İlk olarak ['u [[] ile değiştirerek düzeltebilirsiniz.

+0

... ile * ilk *, ['with' [[] 'yerine. – Constantin

+0

bunu beğendi mi? p1 = '/ some/path_to/directory_1/ve_to/directory_2'.replace (' _ ',' [_] ') p2 ='/bazı/path_to/dizin_1/ve_to/dizin_2'.replace ('[', ' [[] 'glob.glob (p2) – alessandro

+0

+1: Glob modülünü unutanlar, birkaç dakika boyunca kötü bir şekilde yeniden yaratmayı denediler. t. – MattH