如何在Python中解析文件并替换环境变量为值

1 投票
2 回答
3697 浏览
提问于 2025-04-16 14:33

我有一个文本文件(我们叫它file1.txt),里面有以下内容:

"read model $path_1"

我想把这个文本文件中的path_1变量的值替换掉,然后把结果写到另一个文件(我们叫它file2.txt)里,内容和file1.txt一样,但$path_1变量的值已经被替换成实际的路径。我的file2.txt应该像这样:

"read model /home/Aero/test"

请问在Python中有没有什么工具可以做到这一点?我查过ConfigParser模块,但我觉得它需要一个包含变量=值对的配置文件。

谢谢,

Sandhya

2 个回答

4

os.path.expandvars() 是一个 Python 的函数,用来处理字符串中的环境变量。简单来说,它可以把字符串里像“$HOME”这样的环境变量替换成实际的路径或值。比如,如果你的家目录是“/home/user”,那么用这个函数处理“$HOME/Documents”就会变成“/home/user/Documents”。这个功能在处理文件路径时特别有用。

2

string.Template 是 Python 中一个用来处理字符串的工具。它可以让你更方便地在字符串中插入变量,类似于填空题。你只需要定义一个模板,然后用实际的值去替换模板中的占位符,这样就能快速生成你想要的字符串。

比如说,你有一个模板“你好,${name}!”,然后你可以把“${name}”替换成“小明”,最终得到“你好,小明!”这样的结果。这个工具特别适合需要动态生成文本的场景,比如生成报告、邮件内容等。

>>> from string import Template
>>> s = Template('$who likes $what')
>>> s.substitute(who='tim', what='kung pao')
'tim likes kung pao'

撰写回答