0

我想编写一个代码来插入一个文本文件,其中包含一些必须插入 HTML 文件的 Head 部分的代码。我不想手动操作,因为我在一个文件夹中有 100 个 HTML 文件。

是否可以告诉我的代码搜索 Head 标签并在其下方附加给定的文本文件?

我们应该怎么做?

4

2 回答 2

2

如果您可以使用sed,这可能是您可以考虑的解决方案:

for file in *.html; do sed -i.bak '/<head>/a\ADD YOUR TEXT HERE' $i; done

这会将“添加您的文本”写入包含<head>标记的行旁边的行。您的原始文件将添加一个扩展名.bak

PS:如果您的原始文件很复杂并且不包含格式正确的 html 或者您要添加的文本很复杂,您应该使用 BeautifulSoup 或一些专门处理标记语言的库。

于 2013-02-26T06:49:29.050 回答
1

由于您阅读了 html,我建议您使用 ElementTree 执行此操作,它的工作原理有点像这样:

import xml.etree.ElementTree as etree

html = etree.parse(file_path)
head = html.getroot().find('head')
# To insert a tag surrounding in <head>:
newtag = etree.Element("newtag", attrib={})
newtag.text = "Text inside newtag surrounding"
head.insert(0,newtag)
# To just insert a text inside the head tag surrounding:
head.text = newtext + head.text
html.write(new_file_path)

请参阅Python2Python3的ElementTree 文档

于 2013-02-26T08:28:56.103 回答