我有一个充满html文件的文件夹,如下所示:
aaa.html
bbb.html
ccc.html
....
......
.........
zzz.html
所有这些html都是使用python脚本创建的,因此遵循相同的模板。
现在,我想链接所有这些html文件,我已经在html中拥有占位符,如下所示:
<nav>
<ul class="pager">
<li class="previous"><a href="#">Previous</a></li>
<li class="next"><a href="#">Next</a></li>
</ul>
</nav>
我想用文件夹中的文件名填充这些占位符。例如,bbb.html
将有
<nav>
<ul class="pager">
<li class="previous"><a href="aaa.html">Previous</a></li>
<li class="next"><a href="ccc.html">Next</a></li>
</ul>
</nav>
并且ccc.html
文件将包含:
<nav>
<ul class="pager">
<li class="previous"><a href="bbb.html">Previous</a></li>
<li class="next"><a href="ddd.html">Next</a></li>
</ul>
</nav>
等等其他文件。 可以使用python完成此任务吗?我甚至不知道如何开始。任何提示,建议都会非常有用。
答案 0 :(得分:2)
答案 1 :(得分:1)
您可以通过循环遍历文件列表并使用列表换行来替换模板中的元素。这是aaa.html使用aaa,bbb,ccc:
的示例#f = ['aaa.html','bbb.html','ccc.html']
f = sorted(['aaa.html','bbb.html','ccc.html']) # explicit sorting
t = """<nav>
<ul class="pager">
<li class="previous"><a href="#">Previous</a></li>
<li class="next"><a href="#">Next</a></li>
</ul>
</nav>""" # sample aaa.html file
for i in xrange(len(f)-1):
#print f[i]
t = t.replace('<li class="previous"><a href="#">Previous','<li class="previous"><a href="'+f[(i % len(f)) -1]+'">Previous')
t = t.replace('<li class="next"><a href="#">Next','<li class="next"><a href="'+f[(i % len(f)) +1]+'">Next')
print t
要进行列表包装,我使用此concept(zzz来自aaa之后)
作为aaa.html的输出:
<nav>
<ul class="pager">
<li class="previous"><a href="ccc.html">Previous</a></li>
<li class="next"><a href="bbb.html">Next</a></li>
</ul>
</nav>
要完成代码,您必须循环遍历* .html文件(请参阅glob.glob)