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

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

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()
相关推荐
张小九9913 分钟前
fpocket安装和使用教程
linux·机器学习·github
charlee442 小时前
Github项目CI&CD部署
ci/cd·github·devops·github actions
知行力2 小时前
【GitHub每日速递 20251219】Claude-Mem:持久内存压缩系统,为Claude Code带来上下文连续性新体验!
github
薛定e的猫咪3 小时前
覆盖文献到写作全流程!GPT-Academic 多模型学术助手安装与使用指南
人工智能·gpt·github
鸽鸽程序猿3 小时前
【Redis】Java客户端使用Redis
java·redis·github
m0_726365835 小时前
大力学习台灯T6/T6Pro 救砖实战:macOS/Windows 用 mtkclient 从 Fastboot 无限重启完整恢复(含固件下载地址)
python·github·智能硬件
Mr.zwX6 小时前
如何用vscode/cursor快速绑定并操作远程Github仓库
ide·vscode·github
JustHappy17 小时前
「chrome extensions🛠️」我写了一个超级简单的浏览器插件Vue开发模板
前端·javascript·github
阿里嘎多学长17 小时前
2025-12-16 GitHub 热点项目精选
开发语言·程序员·github·代码托管
五月底_19 小时前
上传大量文件到github repo
git·github