2008-12-22 4 views
33

J'ai une chaîne représentant un chemin. Comme cette application est utilisée sous Windows, OSX et Linux, nous avons défini des variables d'environnement pour mapper correctement les volumes des différents systèmes de fichiers. Le résultat est:Évaluation des variables d'environnement dans une chaîne

"$C/test/testing" 

Ce que je veux faire est d'évaluer les variables d'environnement dans la chaîne afin qu'ils soient remplacés par leurs noms de volumes respectifs. Y at-il une commande spécifique qui me manque, ou dois-je prendre os.environ.keys() et remplacer manuellement les chaînes?

Répondre

60

Utilisez os.path.expandvars pour étendre les variables d'environnement dans la chaîne, par exemple:

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

Merci, je cherchais sous les sys et modules os, doit avoir manqué à os.path. – Soviut

+0

Dommage qu'il n'y ait aucun moyen d'échapper un $ pour empêcher certaines variables d'être étendues. Par exemple, $ C/test/$$ ACTION ou $ C/test/\ $ ACTION pour produire la chaîne '/ stackoverflow/test/$ ACTION –

+3

@JulianMann Si vous définissez 'DOLLARSIGN' comme variable, vous pouvez utiliser' $ {DOLLARSIGN} 'où vous voulez utiliser un signe dollar littéral. –

Questions connexes