使用python将文件夹中的HTML文件相互链接

时间:2017-04-07 08:14:08

标签: python html

我有一个充满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完成此任务吗?我甚至不知道如何开始。任何提示,建议都会非常有用。

2 个答案:

答案 0 :(得分:2)

您可以使用beautifulsoup library修改html:

{{1}}

如果文件名与示例中的文件名不一致,并且您想要从目录中的文件生成列表,则可以使用os.walkglob.glob

答案 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