有没有办法获得具有我的搜索变量的最新行?

时间:2017-12-29 06:17:21

标签: python python-3.x python-2.7

我正在尝试解析显示以太网状态的日志文件。每次更改时都会更新。我正在通过端口号解析日志文件,将该端口号放入列表中,然后通过获取每个索引并解析日志文件以获取状态来循环。当我运行它时显示端口的每个实例。我想尝试获取最新的更新行。有什么想法吗?

f = open('file','r')
delim = "8110"
delim = "5126"
xgiglst = []
giglst = []
def portpars(*args, **kwargs):
    global f
    global giglst
    global xgiglst
    with f as f:
        for line in f:
            if delim1 in line and " " in line:
                xgig = line.split(" ")[4]
                xgig = xgig.split(":")[1]
                xgiglst.append(xgig)
            if delim2 in line and " " in line:
                gig = line.split(" ")[4]
                gig = gig.split(":")[1]
                giglst.append(gig)
        giglst = list(set(giglst))
        giglst.sort()
        print(xgiglst)
        print(giglst)

def levelpars(*args, **kwargs):
    global giglst
    global f
    global delim2
    for i in range(len(giglst)):
        search = "port:" + str(i)

这是我被卡住的地方,我做了另一个函数,再次搜索文件我的特定端口,但它返回10行,因为端口已更新。请忽略打印件,这只是为了确保我得到正确的回报。

谢谢,

1 个答案:

答案 0 :(得分:0)

您可以只tail该文件,而不是实际重新打开和阅读日志文件。如果您不熟悉Unix tail命令,请阅读here-f标志通常用于文件监控。

我确信Python中有很多实现。