簡體   English   中英

我必須刪除文本文件中的特定行

[英]I have to delete specific lines in text file

我的查詢是我必須在文件中搜索一個 ip 地址,然后刪除包含該 ip 地址的行以及它上面和下面的行。 我是 python 的新手,我在谷歌上搜索了很多解決方案,但我無法獲得輸出。 請幫我寫出正確的代碼。 我嘗試使用此代碼但失敗了

def delete(ip_address):
 to_be_removed_ip = ip_address
with open(alias_file) as myFile:
lines = myFile.readlines()
    for num, line in enumerate(myFile,1):
        if to_be_removed_ip in line:     
            del line[num]
            del line[num-1]
            del line[num+1]

這是示例文本文件

eniq_oss_1]
eniq ip address = ['10.149.21.136']
last updated = 2018-10-23 03:00:53

[events_oss_1]
eniq ip address = ['10.149.21.144']
last updated = 2018-10-23 03:00:28

提前致謝。!

在循環中操作對象從來都不是一個好主意。 嘗試創建具有相同內容的第二個對象,然后從該對象中刪除條目。 最后你可以用第二個替換第一個,你就完成了。

lines = myFile.readlines()
    for num, line in enumerate(lines):
        if to_be_removed_ip in line:     
            lines[num] = ""
            lines[num-1] = ""
            lines[num+1] = ""

現在我們可以將lines寫入文件並且您的文件已更改。

with open(alias_file,'w') as myFile:
    myFile.writelines(lines)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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