Расширение переменной среды в строке с использованием 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