2013-02-26 62 views
0

我想寫一個代碼來插入一個文本文件,其中包含一些必須插入到HTML文件頭部分的代碼集。我不想手動這樣做,因爲我在一個文件夾中有100個HTML文件。是否可以在文件的指定位置插入一些文本?

是否可以告訴我的代碼搜索Head標籤並在其下面附加給定的文本文件?

我們該怎麼做?

+2

我想你可能會更好使用設計工具用於批量文件編輯,如'sed'或'awk' – 2013-02-26 05:19:23

+0

讀取文本,替換(插入)在(可能非常長的)字符串中的特定點,寫回到磁盤。這有一個好處,你可以寫入一個新文件,所以如果它沒有按預期工作,你不會毀壞原文。 – Floris 2013-02-26 05:19:58

+0

是否可以在Windows或Linux中使用sed或awk? – 2013-02-26 05:32:51

回答

2

如果你可以使用sed,這可能是你可以考慮的解決方案:

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

這會寫「添加你的文字」到行包含<head>標記線旁邊。您的原始文件將有一個附加擴展名.bak

PS:如果原始文件是複雜的,不包含格式正確的HTML或要補充的是複雜的文字,你應該使用BeautifulSoup或與標記語言處理一些專門的庫。

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

相關問題