我正在尝试找到具有最新时间戳的版本号日志行,而我目前正在尝试使用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)
谢谢!
答案 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)