我又来了!带来了修改文件夹文件最后一次修改时间的代码,下班之前或者提交项目之前修改一下时间,让老板以为你一直工作到刚刚!

可能略微超过下班时间(卷王版本)

python 复制代码
import os
import random
from datetime import datetime, timedelta

# ===== 可配置参数区域 =====
CONFIG = {
    # 文件夹路径
    "FOLDER_PATH": r"C:\Users\1\Desktop\效果比对",
    
    # 工作时间范围
    "WORK_START_HOUR": 17,    # 工作开始时间(小时)
    "WORK_END_HOUR": 18,     # 工作结束时间(小时)
    
    # 时间间隔设置(分钟)
    "MIN_INTERVAL": 0,      # 最小时间间隔
    "MAX_INTERVAL": 30,     # 最大时间间隔
    
    # 日期设置
    "DAYS_BACK": 0,         # 向前推几天(0表示今天)
    
    # 是否包含子文件夹
    "INCLUDE_SUBFOLDERS": True,
    
    # 是否显示详细日志
    "VERBOSE": True
}
# ===== 配置区域结束 =====

def get_random_time(target_date, config):
    """生成一个在工作时间范围内的随机时间"""
    base_time = target_date.replace(
        hour=config["WORK_START_HOUR"],
        minute=random.randint(0, 59),
        second=random.randint(0, 59),
        microsecond=0
    )
    
    # 计算可用的时间范围(分钟)
    available_minutes = (config["WORK_END_HOUR"] - config["WORK_START_HOUR"]) * 60
    
    # 在可用时间范围内随机选择一个时间点
    random_minutes = random.randint(0, available_minutes)
    return base_time + timedelta(minutes=random_minutes)

def update_file_times(config=CONFIG):
    """
    更新指定文件夹中所有文件的修改时间
    """
    # 检查时间范围设置是否合理
    if config["WORK_END_HOUR"] <= config["WORK_START_HOUR"]:
        print("错误:结束时间必须大于开始时间!")
        return
        
    # 获取目标日期
    target_date = datetime.now() - timedelta(days=config["DAYS_BACK"])
    
    # 获取文件列表
    files = []
    try:
        if config["INCLUDE_SUBFOLDERS"]:
            for root, _, filenames in os.walk(config["FOLDER_PATH"]):
                for filename in filenames:
                    files.append(os.path.join(root, filename))
        else:
            files = [os.path.join(config["FOLDER_PATH"], f) 
                    for f in os.listdir(config["FOLDER_PATH"]) 
                    if os.path.isfile(os.path.join(config["FOLDER_PATH"], f))]
    except Exception as e:
        print(f"读取文件夹失败: {str(e)}")
        return

    if not files:
        print("错误:文件夹为空或路径不存在!")
        return
    
    # 对文件列表进行随机排序,使时间分布更自然
    random.shuffle(files)
    
    # 为每个文件设置修改时间
    for file_path in files:
        try:
            # 生成随机时间
            random_time = get_random_time(target_date, config)
            
            # 更新文件的访问时间和修改时间
            os.utime(file_path, (random_time.timestamp(), random_time.timestamp()))
            
            if config["VERBOSE"]:
                print(f"已更新文件: {os.path.basename(file_path)}")
                print(f"新的修改时间: {random_time.strftime('%Y-%m-%d %H:%M:%S')}")
                print("-" * 50)
        except Exception as e:
            print(f"更新文件时间失败: {file_path}")
            print(f"错误信息: {str(e)}")

if __name__ == "__main__":
    update_file_times()

不会超过下班时间(窝囊费版本)

python 复制代码
import os
import random
from datetime import datetime, timedelta

# ===== 可配置参数区域 =====
CONFIG = {
    # 文件夹路径
    "FOLDER_PATH": r"C:\Users\1\Desktop\效果比对",
    
    # 工作时间范围
    "WORK_START_HOUR": 17,    # 工作开始时间(小时)
    "WORK_END_HOUR": 18,     # 工作结束时间(小时)
    
    # 时间间隔设置(分钟)
    "MIN_INTERVAL": 0,      # 最小时间间隔
    "MAX_INTERVAL": 60,     # 最大时间间隔
    
    # 日期设置
    "DAYS_BACK": 0,         # 向前推几天(0表示今天)
    
    # 是否包含子文件夹
    "INCLUDE_SUBFOLDERS": True,
    
    # 是否显示详细日志
    "VERBOSE": True
}
# ===== 配置区域结束 =====

def get_random_time(target_date, config):
    """生成一个在工作时间范围内的随机时间"""
    # 设定结束时间为该小时的最后一分钟
    end_minutes = 59 if config["WORK_END_HOUR"] > config["WORK_START_HOUR"] else 0
    
    # 计算可用的总分钟数
    total_minutes = (config["WORK_END_HOUR"] - config["WORK_START_HOUR"]) * 60 - 1
    
    # 生成随机分钟数
    random_minutes = random.randint(0, total_minutes)
    
    # 基础时间从开始时间算起
    base_time = target_date.replace(
        hour=config["WORK_START_HOUR"],
        minute=0,
        second=random.randint(0, 59),
        microsecond=0
    )
    
    # 添加随机分钟数
    random_time = base_time + timedelta(minutes=random_minutes)
    
    # 确保不超过结束时间
    if random_time.hour >= config["WORK_END_HOUR"]:
        random_time = random_time.replace(
            hour=config["WORK_END_HOUR"]-1,
            minute=random.randint(0, 59)
        )
    
    return random_time

def update_file_times(config=CONFIG):
    """
    更新指定文件夹中所有文件的修改时间
    """
    # 检查时间范围设置是否合理
    if config["WORK_END_HOUR"] <= config["WORK_START_HOUR"]:
        print("错误:结束时间必须大于开始时间!")
        return
        
    # 获取目标日期
    target_date = datetime.now() - timedelta(days=config["DAYS_BACK"])
    
    # 获取文件列表
    files = []
    try:
        if config["INCLUDE_SUBFOLDERS"]:
            for root, _, filenames in os.walk(config["FOLDER_PATH"]):
                for filename in filenames:
                    files.append(os.path.join(root, filename))
        else:
            files = [os.path.join(config["FOLDER_PATH"], f) 
                    for f in os.listdir(config["FOLDER_PATH"]) 
                    if os.path.isfile(os.path.join(config["FOLDER_PATH"], f))]
    except Exception as e:
        print(f"读取文件夹失败: {str(e)}")
        return

    if not files:
        print("错误:文件夹为空或路径不存在!")
        return
    
    # 对文件列表进行随机排序,使时间分布更自然
    random.shuffle(files)
    
    # 为每个文件设置修改时间
    for file_path in files:
        try:
            # 生成随机时间
            random_time = get_random_time(target_date, config)
            
            # 更新文件的访问时间和修改时间
            os.utime(file_path, (random_time.timestamp(), random_time.timestamp()))
            
            if config["VERBOSE"]:
                print(f"已更新文件: {os.path.basename(file_path)}")
                print(f"新的修改时间: {random_time.strftime('%Y-%m-%d %H:%M:%S')}")
                print("-" * 50)
        except Exception as e:
            print(f"更新文件时间失败: {file_path}")
            print(f"错误信息: {str(e)}")

if __name__ == "__main__":
    update_file_times()
相关推荐
YuePeng4 小时前
写了五年注解的低代码框架,2.0 决定让你连注解都不用写了
github·产品
小白ai4 小时前
从"能 ping 通吗"到"为什么上不了网"——我写了一个网络故障诊断引擎
github
徐小夕6 小时前
jitword 协同文档3.2发布:打造浏览器中最强word编辑器
前端·架构·github
齐翊8 小时前
分享一个在 Claude Code 里 [同时] 用多个 ApiKey 的方法
程序员·github·agent
A_Lonely_Cat8 小时前
记一次 GitHub 幽灵协作者大清洗:强制重写 Git 历史与穿透 CDN 缓存实践
git·github
极光技术熊1 天前
Spring AI 从入门到精通:构建你的 AI 开发知识体系
后端·github
用户39483951075531 天前
怎么让我的 Agent 真正"懂"我?——关于记忆、经验学习与预测的一些真实体验
github
远航_1 天前
git submodule
前端·后端·github
fthux1 天前
如果你用 Mac,那你可能需要 Noti Shift
macos·开源·github
程序员天天困2 天前
Loop Engineering 实战:/goal 命令让 AI 自己写完整项目
github