我的查询是我必须在文件中搜索IP地址,然后删除包含该IP地址的行以及该行上方和下方的行。我是python的新手,我在Google上搜索了很多解决方案,但无法获得输出。 请帮助我编写正确的代码。 我尝试使用此代码,但失败了
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
谢谢。!
答案 0 :(得分:0)
在遍历对象时操纵对象绝不是一个好主意。尝试创建另一个具有相同内容的对象,然后从该对象中删除条目。最后,您可以将第二个替换为第一个,然后完成。
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)