使用Python扩展字符串中的环境变量

28 投票
3 回答
16897 浏览
提问于 2025-04-16 13:25

我有一个字符串,里面包含一个环境变量,比如:

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中,有没有简单优雅的方法来做到这一点?

3 个回答

6

你可以使用一个叫做 Template 的东西:

from string import Template
import os

t = Template("$HOME/dir/dir2")
result = t.substitute(os.environ)
14

在编程中,有时候我们需要处理一些数据,比如从一个地方获取数据,然后把它放到另一个地方。这就像把水从一个杯子倒到另一个杯子一样。

有些时候,我们会遇到一些问题,比如数据格式不对,或者我们想要的数据没有被正确地获取到。这就像你想喝水,但杯子里却是果汁,这时候你就需要把果汁倒掉,重新装水。

在解决这些问题时,我们可以使用一些工具和方法来帮助我们。就像在厨房里,我们有刀、锅、碗等工具来帮助我们做饭一样。在编程中,这些工具和方法可以帮助我们更有效地处理数据。

总之,编程就像是在做一件事情,我们需要不断地调整和优化,确保每一步都能顺利进行。

import string, os
my_path = '$HOME/dir/dir2'
print string.Template(my_path).substitute(os.environ)
36

使用: os.path.expandvars

撰写回答