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

如何列出目录特定文件?三小时前日志匹配代码返回空列表问题

问题分析与解决方案

核心问题排查

你的代码返回空列表,大概率是时间格式字符串不匹配或者时区差异导致的,以下是具体修复思路:

1. 确认时间格式与日志文件名一致

你的目标日志文件名是Automation-05102023090000,对应结构是前缀-月(2位)日(2位)年(4位)小时(2位)分秒(4位),需检查:

  • 如果日志文件名的日期是月-日-年顺序,你当前的%m%d%Y%H格式是正确的;
  • 如果日志文件名的日期是日-月-年顺序,需将格式改为Automation-%d%m%Y%H*。

2. 修复时区差异问题

datetime.datetime.now()获取的是本地系统时间,如果日志文件是用UTC时间生成的,会出现时间偏移。改用UTC时间计算即可:

time1 = datetime.datetime.utcnow() - datetime.timedelta(hours=3)

3. 简化代码(可选)

无需用os.walk遍历整个目录,用glob更高效直接:

import os
import glob
import datetime

path = r'/usr/local/scripts/Automation/Logs'
time1 = datetime.datetime.now() - datetime.timedelta(hours=3)
sample = time1.strftime("Automation-%m%d%Y%H*")
# 匹配指定路径下的目标文件
result = glob.glob(os.path.join(path, sample))
# 如需遍历子目录,添加recursive=True
# result = glob.glob(os.path.join(path, '**', sample), recursive=True)
print(result)

4. 验证匹配模板是否正确

在代码中先打印生成的sample值,确认是否和日志文件名前缀匹配:

print("当前匹配模板:", sample)

比如12点运行时,应输出Automation-0510202309*,若输出不符,说明时间格式或时区存在问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 15:05:17