繁体   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