自学内容网 自学内容网

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)!