我想编写一个代码来插入一个文本文件,其中包含一些必须插入 HTML 文件的 Head 部分的代码。我不想手动操作,因为我在一个文件夹中有 100 个 HTML 文件。
是否可以告诉我的代码搜索 Head 标签并在其下方附加给定的文本文件?
我们应该怎么做?
我想编写一个代码来插入一个文本文件,其中包含一些必须插入 HTML 文件的 Head 部分的代码。我不想手动操作,因为我在一个文件夹中有 100 个 HTML 文件。
是否可以告诉我的代码搜索 Head 标签并在其下方附加给定的文本文件?
我们应该怎么做?
如果您可以使用sed
,这可能是您可以考虑的解决方案:
for file in *.html; do sed -i.bak '/<head>/a\ADD YOUR TEXT HERE' $i; done
这会将“添加您的文本”写入包含<head>
标记的行旁边的行。您的原始文件将添加一个扩展名.bak
。
PS:如果您的原始文件很复杂并且不包含格式正确的 html 或者您要添加的文本很复杂,您应该使用 BeautifulSoup 或一些专门处理标记语言的库。
由于您阅读了 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)
请参阅Python2或Python3的ElementTree 文档