2010-09-27 14 views
5

Soy un novato en python con un problema demasiado difícil de abordar.prueba de igualdad permisiva en la cadena

Tengo una cadena que define una ruta, donde todos los espacios se han convertido en guiones bajos. ¿Cómo puedo encontrar si corresponde a una ruta real?

p. Ej. una cadena como /some/path_to/directory_1/and_to/directory_2
con un camino real: /some/path_to/directory 1/and_to/directory 2

aviso de que el camino real puede contener ambos espacios y guiones.

¿Cómo puedo alimentarlo a os.path.exists() ???

gracias alessandro

Respuesta

5

Uso glob pero sustituyendo cada subrayan con una gama [ _]:

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

en cuenta que esto se producirá un error si la ruta contiene el carácter [. Puede solucionar esto reemplazando primero [ con [[].

+0

... por * primera * reemplazando '[' con '[[]'. – Constantin

+0

como este? 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: Aquellos que se olvidan del módulo glob están condenados a intentar recrearlo mal por unos minutos antes de presionar actualizar sobre la pregunta SO para ver una respuesta de alguien que no lo hizo t. – MattH

Cuestiones relacionadas