2008-12-22 10 views
33

Tengo una cadena que representa una ruta. Debido a que esta aplicación se usa en Windows, OSX y Linux, hemos definido variables de entorno para mapear correctamente los volúmenes de los diferentes sistemas de archivos. El resultado es:Evaluar variables de entorno en una cadena

"$C/test/testing" 

Lo que quiero hacer es evaluar las variables de entorno en la cadena de manera que son reemplazados por sus respectivos nombres de volumen. ¿Existe un comando específico que me falta, o tengo que tomar os.environ.keys() y reemplazar manualmente las cadenas?

Respuesta

60

Uso os.path.expandvars para expandir las variables de entorno en la cadena, por ejemplo:

>>> os.path.expandvars('$C/test/testing') 
'/stackoverflow/test/testing' 
+0

Gracias, yo estaba buscando bajo las sys y módulos del sistema operativo, debe haber pasado por alto en os.path. – Soviut

+0

Es una pena que no haya forma de evitar un $ para detener la expansión de algunas variables. Por ejemplo, $ C/test/$$ ACTION o $ C/test/\ $ ACTION para generar la cadena '/ stackoverflow/test/$ ACTION –

+3

@JulianMann Si define 'DOLLARSIGN' como una variable, puede usar' $ {DOLLARSIGN} 'donde quieras usar un signo de dólar literal. –

Cuestiones relacionadas