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

请求协助:实现两个文件修改时间的10分钟差值校验

解决文件修改时间差校验问题

你现在的代码已经完成了文件存在性检查和修改时间读取,但问题在于把时间戳转成格式化字符串后无法直接计算差值。下面是修改后的完整代码,已加入10分钟时间差的校验逻辑:

import os
import time
import sys
import shutil

savefile = "./"  # 替换为你的实际文件路径

# 检查第一个文件并保留原始时间戳
if os.path.isfile(savefile + 'pickle_raw.txt'):
    mod_time_raw = os.path.getmtime(savefile + 'pickle_raw.txt')
    modificationTime0 = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(mod_time_raw))
    print("Last Modified on:", modificationTime0, "pickle_raw.txt")
else:
    print("Logfile Error: pickle_raw.txt not found")
    sys.exit()

# 检查第二个文件,不存在则复制后退出;存在则保留原始时间戳
if os.path.isfile(savefile + 'pickle_RawIfExist.txt'):
    mod_time_raw_if_exist = os.path.getmtime(savefile + 'pickle_RawIfExist.txt')
    modificationTime1 = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(mod_time_raw_if_exist))
    print("Last Modified on:", modificationTime1, "pickle_RawIfExist.txt")
else:
    src = savefile + 'pickle_raw.txt'
    des = savefile + 'pickle_RawIfExist.txt'
    shutil.copy(src, des)
    print("pickle_raw.txt copied to pickle_RawIfExist.txt")
    print("Exit the Program")
    sys.exit()

# 执行10分钟时间差校验
MAX_ALLOWED_DIFF = 10 * 60  # 10分钟转换为秒数
time_diff = abs(mod_time_raw - mod_time_raw_if_exist)

if time_diff > MAX_ALLOWED_DIFF:
    print(f"Error: 文件修改时间差超过10分钟,差值为{round(time_diff/60, 2)}分钟")
    sys.exit()
else:
    print(f"文件修改时间校验通过,差值为{round(time_diff/60, 2)}分钟")

关键修改说明:

  • 保留原始时间戳:将两个文件的os.path.getmtime结果分别存入独立变量,这是从1970年开始计算的秒数(epoch时间),可直接用于数值计算。
  • 时间差计算逻辑:用绝对值计算两个时间戳的差值,与10分钟对应的600秒做比较,判断是否超出允许范围。
  • 明确的校验反馈:校验不通过时打印具体差值并退出程序,通过时给出成功提示,便于调试和问题排查。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 15:43:11