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