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

Python如何判断文件最后修改时间是否处于当前周(周一至周日)

Python判断文件是否在本周(周一至周日)更新的实现方案

首先可以明确:把时间戳直接转换为datetime对象,比用ctime转字符串再处理要简便得多。ctime返回的字符串需要额外做格式解析才能提取周信息,不仅多了冗余步骤,还容易出现格式、时区适配的问题,而datetime内置的方法可以直接完成周数判断,逻辑更简洁易维护。

实现思路

利用datetime对象的isocalendar()方法,该方法返回的结果包含(年份, 周数, 周内第几天)三个属性,其中周数的计算规则默认以周一作为一周的第一天,完全匹配你要求的「周一至周日为一周」的统计规则。只需要同时对比文件修改时间和当前时间的年份+周数两个属性,两者都相等即代表文件在本周内更新,同时也能自动处理跨年周的边界问题。

完整示例代码

import os
from datetime import datetime

def is_file_updated_this_week(file_path: str) -> bool:
    # 校验文件是否存在
    if not os.path.isfile(file_path):
        return False
    # 读取文件修改时间戳并转换为datetime对象
    mtime = datetime.fromtimestamp(os.path.getmtime(file_path))
    # 分别获取文件修改时间和当前时间的ISO年、周数
    mtime_year, mtime_week, _ = mtime.isocalendar()
    current_year, current_week, _ = datetime.now().isocalendar()
    # 年和周数同时相等则属于本周
    return mtime_year == current_year and mtime_week == current_week

# 业务逻辑调用示例
if __name__ == "__main__":
    target_file = "你的目标文件路径"
    if is_file_updated_this_week(target_file):
        print("文档本周已更新,无需操作")
    else:
        print("文档未在本周更新,执行更新逻辑")
        # 此处补充你的文档更新业务代码

注意事项

如果你的应用需要适配多时区场景,可以将datetime.now()替换为带时区的对象(例如datetime.now(datetime.timezone.utc)),同时给fromtimestamp方法传入相同时区参数,避免时区偏差导致的周数判断错误。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 22:54:04