如何比较也有版本号的日志行中的时间戳?

时间:2018-07-18 01:30:35

标签: python-3.x timestamp comparison

我正在尝试找到具有最新时间戳的版本号日志行,而我目前正在尝试使用parse_version来完成。

日志行示例:

2018-05-08T15:25:02.053Z 00000000-0000-0000-0000-000000000000 > LVL:2 RC: version: 2.11.0.10451

2018-05-08T21:27:14.2049217Z> <INFO >: Version: 2.10.0.23960

2018-05-08T21:18:53.0428568Z> <INFO >: Version: 2.12.1.26051

尽管最后一个日志行具有最新的版本号,但我希望存储和显示第二个日志行,即使它具有较低的版本号,因为它具有最新的时间戳。目前,使用parse_version比较,我正在打印最后一条日志行(我猜测是因为时间戳和版本之间的总值总体上更大)。

以下是我当前的代码:

                for line in f: #For simplicity sake, I won't include my code above this line because it's just for looping through the folder to find the log lines
                #0strip out \x00 from read content, in case it's encoded differently
                line = line.replace('\x00', '')

                #Regular expressions for finding the log lines in the folder
                RE2 = r"^.+INFO.+Version.+"
                RE3 = r"^.+RC: version"

                latest_version_line = ''
                #Find the general matches, and get the version line with the latest time stamp
                pattern2 = re.compile('('+RE2+'|'+RE3+')', re.IGNORECASE)
                for match2 in pattern2.finditer(line):

                    if parse_version(line) > parse_version(latest_version_line):
                        latest_version_line = line

                print(latest_version_line)

谢谢!

1 个答案:

答案 0 :(得分:0)

由于您要存储和显示第二最新的版本号,因此您可以简单地使用另一个变量来保留当前的最新版本号,然后再将其替换为新的最新版本号。

更改:

                if parse_version(line) > parse_version(latest_version_line):
                    latest_version_line = line

            print(latest_version_line)

收件人:

                if parse_version(line) > parse_version(latest_version_line):
                    second_latest_version_line = latest_version_line
                    latest_version_line = line

            print(latest_version_line)
            print(second_latest_version_line)