是否可以在文件的指定位置插入一些文本?

时间:2013-02-26 05:17:47

标签: python

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

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

我们怎么做?

2 个答案:

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