2010-09-27 15 views
5

Jestem początkującym pytonem z problemem zbyt trudnym do rozwiązania.permissive test równości na łańcuchu

Mam ciąg znaków definiujący ścieżkę, czy wszystkie spacje zostały przekonwertowane na podkreślenia. Jak znaleźć, jeśli odpowiada prawdziwej ścieżce?

np. ciąg jak /some/path_to/directory_1/and_to/directory_2
z prawdziwej ścieżki: /some/path_to/directory 1/and_to/directory 2

zawiadomienie, że prawdziwa ścieżka może zawierać zarówno spacje i podkreślenia.

Jak mogę go podać do os.path.exists() ???

dzięki Alessandro

Odpowiedz

5

Zastosowanie glob ale zastępując każdy podkreślenia z zakresu [ _]:

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

pamiętać, że to nie powieść, jeśli ścieżka zawiera znak [. Możesz to naprawić, najpierw zastępując [ przez [[].

+0

... przez * pierwszy * zastępując '[' z '[[]'. – Constantin

+0

w ten sposób? p1 = "/ some/path_to/directory_1/and_to/directory_2'.replace ('_', '[_]') p2 = '/ some/path_to/directory_1/and_to/directory_2'.replace (' [',' [[] ') glob.glob (p2) – alessandro

+0

+1: Ci, którzy zapominają o module glob są skazani na próbę odtworzenia go źle przez kilka minut przed uderzeniem odświeżenia na pytanie SO, aby zobaczyć odpowiedź od kogoś, kto nie " t. – MattH

Powiązane problemy