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