簡體   English   中英

如何在python中刪除特定行上方的所有行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM