将shell脚本转换为python脚本

时间:2013-07-08 17:48:52

标签: python shell

说我有以下HTML脚本:

<head>$name</head>

我有以下shell脚本,它用名称

替换HTML脚本中的变量
#/bin/bash
report=$(cat ./a.html)
export name=$(echo aakash)
bash -c "echo \"$report\""

这很有效。

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

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

3 个答案:

答案 0 :(得分: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等等的文档...

答案 1 :(得分: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)

答案 2 :(得分: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"))

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