Разширяване на променливата на средата в низ с помощта на python

Имам низ, съдържащ променлива на средата, напр.

my_path = '$HOME/dir/dir2'

Искам да анализирам низа, да потърся променливата и да я заменя в низа:

print "HOME =",os.environ['HOME']
my_expanded_path = parse_string(my_path)
print "PATH =", my_expanded_path

Така че трябва да видя резултата:

HOME = /home/user1

PATH = /home/user1/dir/dir2

Има ли елегантен начин да направите това в Python?

Благодаря!

Конър


person Conor    schedule 10.03.2011    source източник


Отговори (2)


Използвайте: os.path.expandvars

person mouad    schedule 10.03.2011
comment
Благодаря за това, реших, че трябва да има проста команда за това. - person Conor; 10.03.2011
comment
Невероятен. Мислех, че ще трябва да го приложа. - person Elad Weiss; 05.02.2018
comment
странно, че е в os.path, като се има предвид, че променливите на средата се използват за повече от елементи на пътя на файловата система. Предполагам, че мога да използвам os.path.expandvars('%username%') вместо getpass.getuser(). - person cowlinator; 17.07.2019

Можете да използвате Template:

from string import Template
import os

t = Template("$HOME/dir/dir2")
result = t.substitute(os.environ)
person Björn Pollex    schedule 10.03.2011