2008-12-22 8 views
33

Mam ciąg reprezentujący ścieżkę. Ponieważ ta aplikacja jest używana w systemach Windows, OSX i Linux, zdefiniowaliśmy zmienne środowiskowe w celu prawidłowego mapowania woluminów z różnych systemów plików. Rezultat:Ocena zmiennych środowiskowych w ciągu znaków

"$C/test/testing" 

Co chcę zrobić, to ocenić zmienne środowiskowe w łańcuchu, aby zostały zastąpione przez odpowiednie nazwy woluminów. Czy jest jakieś specjalne polecenie, którego mi brakuje, czy muszę wziąć os.environ.keys() i ręcznie wymienić ciągi?

Odpowiedz

60

Zastosowanie os.path.expandvars rozwinąć zmiennych środowiskowych w ciągu, na przykład:

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

Dzięki, szukałem pod sys i modułów systemu operacyjnego, musi pominięcia go w os.path. – Soviut

+0

Szkoda, że ​​nie ma sposobu na ucieczkę od $, aby zatrzymać rozszerzanie niektórych zmiennych. Na przykład: $ C/test/$$ ACTION lub $ C/test/\ $ ACTION, aby utworzyć ciąg '/ stackoverflow/test/$ ACTION –

+3

@JulianMann Jeśli zdefiniujesz 'DOLLARSIGN' jako zmienną, możesz użyć' $ {DOLLARSIGN} 'gdzie chcesz użyć dosłownego znaku dolara. –