使用python在字符串中扩展Environment变量

Con*_*nor 19 python posix

我有一个包含环境变量的字符串,例如

my_path = '$HOME/dir/dir2'
Run Code Online (Sandbox Code Playgroud)

我想解析字符串,查找变量并将其替换为字符串:

print "HOME =",os.environ['HOME']
my_expanded_path = parse_string(my_path)
print "PATH =", my_expanded_path
Run Code Online (Sandbox Code Playgroud)

所以我应该看到输出:

HOME = /home/user1

PATH = /home/user1/dir/dir2
Run Code Online (Sandbox Code Playgroud)

在Python中有一种优雅的方式吗?

谢谢!

康纳尔

mou*_*uad 26

使用: os.path.expandvars

  • 奇怪的是,它在“os.path”中,考虑到环境变量不仅仅用于文件系统路径元素。我想我可以使用 `os.path.expandvars('%username%')` 而不是 `getpass.getuser()`。 (2认同)

Sve*_*ach 8

import string, os
my_path = '$HOME/dir/dir2'
print string.Template(my_path).substitute(os.environ)
Run Code Online (Sandbox Code Playgroud)


Bjö*_*lex 6

你可以使用Template

from string import Template
import os

t = Template("$HOME/dir/dir2")
result = t.substitute(os.environ)
Run Code Online (Sandbox Code Playgroud)