You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用DateTime解析含动态日期时间的日志文件?结合循环代码

动态日期日志文件的Python解析实现

针对你提到的每日动态生成的script_YYYY-MM-DD_HH-MM-SS.log格式日志文件,结合现有循环代码,用datetime模块实现动态解析的方案如下:

核心思路

利用datetime模块实时生成匹配日志格式的文件名,替换原代码中固定的文件名,让循环每次都能定位到对应时间的日志文件。

具体实现步骤

  • 导入datetime、time和os模块(os用于文件存在性检查)
  • 在循环内部,用当前时间生成符合格式的日志文件名
  • 添加文件存在性检查,避免因文件未生成导致的报错
  • 调用你的parse_log函数处理目标日志

完整代码示例

import datetime
import time
import os

def parse_log(log_file_path):
    # 这里替换为你的实际日志解析逻辑
    print(f"正在解析日志: {log_file_path}")

while True:
    try:
        print("Parsing")
        # 生成当前时间对应的日志文件名,严格匹配目标格式
        current_time = datetime.datetime.now()
        log_filename = current_time.strftime("script_%Y-%m-%d_%H-%M-%S.log")
        
        # 检查文件存在后再解析,避免无文件时的报错
        if os.path.exists(log_filename):
            parse_log(log_filename)
        else:
            print(f"日志文件 {log_filename} 暂未生成,跳过本次解析")
        
        time.sleep(1)  # 可根据日志生成频率调整循环间隔
    except Exception as e:
        print(f"解析出错: {str(e)}")
        time.sleep(1)

关键说明

  • 时间格式匹配:strftime的格式字符串"%Y-%m-%d_%H-%M-%S"完全对应日志文件名的日期时间结构,确保生成的文件名精准匹配
  • 文件存在性检查:如果日志不是秒级实时生成,这个检查能有效避免频繁抛出文件不存在的异常
  • 循环间隔调整:time.sleep(1)是每秒检查一次,可根据实际需求修改(比如每5分钟检查一次就设为300)
  • 异常处理:保留try-except块可让程序在遇到错误时不崩溃,持续运行

内容的提问来源于stack exchange,提问作者Sni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 08:33:35