将文件名变量添加到 Python 中的 HTML 字符串中

Adding filename variable into HTML string in Python

我已经搜索过,但找不到解决方法。我试图让 python 代码循环遍历 .mht 文件的目录。找到文件后,它会将 iframe html 代码写入指向 .mht 的文件。我在定义要编写的 iframe 代码并将文件名变量包含在 src 中时遇到问题。

htmlframe = '''<iframe src="'%s.mht'" class="iframe" scrolling="no" frameborder="0" style="width:100%"></iframe><br>''' % os.path.basename

我得到的错误如下:

Traceback (most recent call last):File "move.py", line 52, in <module>
htmlframe = '''<iframe src="'%s.mht'" class="iframe" scrolling="no"
frameborder="0" style="width:100%"></iframe><br>''' % os.path.basename
TypeError: not enough arguments for format string                                                                                                        

提前感谢您的帮助。

对于相当复杂的字符串替换操作,您应该看看模板引擎。使用这样的引擎,通常更容易保持概览并在以后进行修改。标准库中内置了一个非常简单的:https://docs.python.org/2/library/string.html#template-strings

大部分时间就够了!

示例:

from string import Template

s = """<iframe src="$filename" class="iframe" scrolling="no"></iframe>"""
t = Template(s)
print t.substitute(filename="foobar.mht")

测试:

python template.py
<iframe src="foobar.mht" class="iframe" scrolling="no"></iframe>