Python——文件内容匹配
背景:
机器执行时自动生成的日志,段与段之间是空格,每段的首个单词为端口名,段中有其ip地址
要求:
根据输入的端口名,输出其ip地址
思路:
1. 以读方式打开文件 2. 每次获取一段,判断端口名是否在该段中,若在,正则表达式获取IP,若不在,就找下一段 3. 每段的获取通过readline来获得,"\n"(该段读取完毕)和 ""(文件读取完毕)为终止条件
import re
flag = False
port_name = input(">>")
with open("inet.txt", "r",encoding="utf-8") as file:
# 循环读段
while True:
data = file.readline()
if port_name in data:
# 循环判断
while data != "\n" and data != "":
# 注意:这里不要直接.group(),因为若在当行没找到,会返回None,而None没有group方法
address = re.search(r"([0-9a-f]{4}\.?){3}", data)
if address:
flag = True
break
else:
data = file.readline()
else:
if flag == True:
print(f"已找到,{port_name}IP为{address.group()}")
break
if data == "":
print("未找到")
break
continue
原文地址:https://blog.csdn.net/FA1CAE/article/details/136991823
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!