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

如何使用比较运算符(>)处理datetime?解决时间差与整数比较报错

修复目录创建时间判断的代码错误

错误原因

你碰到的TypeError是因为age_of_directory是**datetime.timedelta类型的时间差对象**,不能直接和整数4比较——整数没有时间单位,Python无法识别你要对比的是4秒、4小时还是4天,因此不支持这种跨类型运算。

修复方案

  1. 从datetime模块导入timedelta,用来创建明确的“4天”时间差对象
  2. 将判断条件中的4替换为timedelta(days=4),让两边类型统一
  3. 修正代码里的拼写错误(curret_time → current_time),同时补上缺失的os模块导入

修复后的完整代码

import os
from datetime import datetime, timedelta

# 获取当前时间
current_time = datetime.now() 

# 获取目录的创建时间
stat = os.stat(my_directory) 
creation_time = datetime.fromtimestamp(stat.st_birthtime)

# 计算目录已存在的时长
age_of_directory = current_time - creation_time

# 判断是否超过4天(调试阶段先打印)
if age_of_directory > timedelta(days=4):
    # shutil.rmtree(my_directory)  # 确认逻辑正确后取消注释执行删除
    print(age_of_directory)  # 调试用

额外注意

如果在部分Unix系统中使用st_birthtime报错(部分系统不支持该字段),可以替换为st_ctime:

  • Windows系统中st_ctime代表文件创建时间
  • Unix系统中st_ctime代表文件元数据最后修改的时间,可根据你的运行环境调整

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 10:45:19