0

假设我有以下 HTML 脚本:

<head>$name</head>

我有以下 shell 脚本,它用名称替换 HTML 脚本中的变量

#/bin/bash
report=$(cat ./a.html)
export name=$(echo aakash)
bash -c "echo \"$report\""

这行得通。

现在我必须在 Python 中实现 shell 脚本,以便能够替换 HTML 文件中的变量并将替换的内容输出到新文件中。我该怎么做?

一个例子会有所帮助。谢谢。

4

3 回答 3

2

看起来您正在使用模板引擎,但是如果您想要一个直接的、没有刺激的、内置到标准库中的,这里有一个使用string.Template的示例:

from string import Template

with open('a.html') as fin:
    template = Template(fin.read())

print template.substitute(name='Bob')
# <head>Bob</head>

我彻底建议您阅读文档,尤其是关于转义标识符名称和使用safe_substitute等...

于 2013-07-08T17:56:35.923 回答
0
with open('a.html', 'r') as report:
    data = report.read()
data = data.replace('$name', 'aakash')
with open('out.html', 'w') as newf:
    newf.write(data)
于 2013-07-08T17:58:33.677 回答
0

首先,您可以保存您的 html 模板,例如:

from string import Template
with open('a.html') as fin:
    template = Template(fin.read())

然后,如果您想一次替换一个变量,则需要每次使用 safe_substitute 并将结果转换为模板。即使未指定键值,这也不会返回键错误。

就像是:

new=Template(template.safe_substitute(name="Bob"))

在此之后,新模板是新的,如果需要,需要再次修改。

于 2013-07-09T04:26:46.477 回答