首页 > 解决方案 > 在具有相同ip的python中合并和排序日志文件

问题描述

我有一些需要基于相似 IP 地址合并的日志文件。合并后的文件内容需要根据时间戳进行排序。

日志文件 1:调用:10.247.11.3_Something_Something

10/15/2021 9:51:07 logs logs logs logs logs logs logs logs logs logs logs logs logs logs logs logs logs logs logs logs 

10/28/2021 10:52:07 logs logs logs logs logs logs logs logs logs logs logs logs logs logs logs logs logs logs logs logs logs 

日志文件 2:调用:10.247.11.3_Somethingelse_Somethingelse(与 1 相同的 ip)

10/16/2021 9:51:07 logs logs logs logs logs logs logs logs logs logs logs logs logs logs logs logs logs logs logs logs 

10/28/2021 11:52:07 logs logs logs logs logs logs logs logs logs logs logs logs logs logs logs logs logs logs logs logs logs 

我到目前为止的代码

import os


def getip(filename: str):
    fname = filename
    return fname.split("_")[0]


data = data2 = ""
directory = os.listdir('/Users/immam.m/Desktop/logstest')
# If the sequence automatically is the same through auto sorting
for i in range(len(directory) - 1):
    if getip(directory[i]) == getip(directory[i + 1]):
        print(directory[i] + " " + "is equal to" + directory[i + 1])
        print("Same")
        with open(directory[i]) as fp:
            data = fp.read()
        with open(directory[i + 1]) as fp:
            fp.read()
        data += "\n"
        data += data2
        with open(directory[i], 'w') as fp:
            fp.write(data)
    else:
        print(directory[i] + "NOT SAME WITH ANYTHING")

# https://stackoverflow.com/questions/13613336/how-do-i-concatenate-text-files-in-python

到目前为止,我刚刚设法在循环中获取基于相同 ip 的文件。但我被困在尝试根据时间戳合并和排序文件。非常感谢帮助

标签: pythonregexlogging

解决方案


推荐阅读