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

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

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()
相关推荐
墨理学AI3 小时前
GitHub 桌面版配置 |可视化界面进行上传到远程仓库 | gitLab 配置【把密码存在本地服务器】
gitlab·github·github 桌面版
AI理性派思考者10 小时前
【保姆教程】手把手教你在Linux系统搭建早期alpha项目cysic的验证者&证明者
后端·github·gpu
wy02_14 小时前
Linux下载RabbitMQ,并解决Github拒绝访问443的问题
linux·rabbitmq·github
Domain-zhuo14 小时前
Git常用命令
前端·git·gitee·github·gitea·gitcode
aPurpleBerry15 小时前
解决 fatal: detected dubious ownership in repository at ‘XXXX‘ 问题
github
vvw&18 小时前
如何在 Ubuntu 22.04 上安装 Graylog 开源日志管理平台
linux·运维·服务器·ubuntu·开源·github·graylog
HelloGitHub20 小时前
跟着 8.6k Star 的开源数据库,搞 RAG!
开源·github
sdaxue.com1 天前
帝国CMS:如何去掉帝国CMS登录界面的认证码登录
数据库·github·网站·帝国cms·认证码
m0_748247551 天前
github webhooks 实现网站自动更新
github
张国荣家的弟弟1 天前
【Yonghong 企业日常问题04】永洪BI可视化工具Linux部署全攻略(部署详解版)
linux·运维·github