程序员文章、书籍推荐和程序员创业信息与资源分享平台

网站首页 > 技术文章 正文

Python运维日志排序(python日志处理)

hfteth 2025-04-08 14:26:45 技术文章 5 ℃
def standardize_time(time_str):
    # 将时间格式标准化为 HH:MM:SS,NNN
    parts = time_str.replace('.', ',').split(',')
    time_part = parts[0]
    millisecond_part = parts[1] if len(parts) > 1 else '000'
    
    # 补全时间部分
    time_segments = time_part.split(':')
    h = time_segments[0].zfill(2)
    m = time_segments[1].zfill(2) if len(time_segments) > 1 else '00'
    s = time_segments[2].zfill(2) if len(time_segments) > 2 else '00'
    
    # 补全毫秒部分
    millisecond_part = millisecond_part.ljust(3, '0')
    
    return f"{h}:{m}:{s},{millisecond_part}"

def sort_logs(n, logs):
    # 标准化时间并记录原始索引
    standardized_logs = [(standardize_time(log), idx) for idx, log in enumerate(logs)]
    
    # 按时间升序排序,如果时间相同则按输入顺序排序
    standardized_logs.sort(key=lambda x: (x[0], x[1]))
    
    # 提取排序后的时间
    sorted_logs = [logs[idx] for _, idx in standardized_logs]
    return sorted_logs

# 自定义输入
n = int(input("请输入日志条数:"))
logs = [input("请输入时间:") for _ in range(n)]

sorted_logs = sort_logs(n, logs)
for log in sorted_logs:
    print(log)

解决步骤

  1. 输入处理

读取日志条数 nn

读取每条日志的时间。

  1. 时间格式标准化

将时间格式统一为 HH:MM:SS,NNN 的形式,方便比较。

  1. 排序

按照时间进行升序排序。如果两个时间相同,则保持输入顺序。

  1. 输出结果

输出排序后的时间。

Tags:

最近发表
标签列表