我正在尝试解析显示以太网状态的日志文件。每次更改时都会更新。我正在通过端口号解析日志文件,将该端口号放入列表中,然后通过获取每个索引并解析日志文件以获取状态来循环。当我运行它时显示端口的每个实例。我想尝试获取最新的更新行。有什么想法吗?
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行,因为端口已更新。请忽略打印件,这只是为了确保我得到正确的回报。
谢谢,
答案 0 :(得分:0)
您可以只tail
该文件,而不是实际重新打开和阅读日志文件。如果您不熟悉Unix tail
命令,请阅读here。 -f
标志通常用于文件监控。
我确信Python中有很多实现。