[英]Python - How to remove all the lines before the first occurrence of a certain string
[英]How to remove all lines above a certain line in python
我有一個html文件,我想在其中刪除以字符串<!DOCTYPE html
開頭的行上方的所有行
例:
HTTP/1.1 400 Bad Request
Content-Type: text/html; charset=utf-8
Date: Sat, 22 Mar 2015 07:56:52
Connection: close
Content-Length: 2959
<!DOCTYPE html...... extra lines ...
因此,當我搜索字符串<!DOCTYPE
的出現時,我需要刪除所有行,包括該特定行上方的空白行。 在linux中,我們在grep
有一個選項,可以搜索上下兩行,然后將其刪除。 我們可以在Python中做類似的事情嗎?
stop = "<!DOCTYPE html"
with open('input.html') as infile, open('output.html', 'w') as outfile:
buff = []
for line in infile:
if not line.strip():
buff.append(line)
continue
if line.strip() == stop: break
outfile.write(''.join(buff))
buff = []
outfile.write(line)
不確定您的確切意思,但是我認為您的意思是打開HTML文件,然后嘗試編輯其中的內容? 這可能是非常規的,但是嘗試將其打開以進行讀取,使用readlines()獲取並存儲所有行。 過濾掉不需要的行。 然后關閉文件,再次打開以進行寫入,然后將您的行粘貼在其中(這將覆蓋文件中的所有當前內容)。 這也使您也可以刪除中間不需要的行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.