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

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

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()
相关推荐
Moment3 小时前
💯💯💯 历经四个月,我们开源了一个协同的在线代码编辑器,还支持执行 Node 项目哦!
前端·后端·github
云围5 小时前
Soanrquber集成Gitlab 之 gitlab用户配置和身份验证
ci/cd·gitlab·github·devops
practical_sharp8 小时前
如何初始化一个线上的GitHub仓库,在本地已有的仓库中上传到线上
github
梓羽玩Python9 小时前
推荐一款基于快手Kolors模型开发的虚拟试衣浏览器插件!妥妥的安排上!
人工智能·python·github
梓羽玩Python9 小时前
推荐6款效果逼真的AI 3D建模工具!
开源·github·产品
油泼辣子多加11 小时前
2024年10月29日Github流行趋势
github
油泼辣子多加13 小时前
2024年10月25日Github流行趋势
github
Moon也爱算法呀1 天前
关于个人开源网络库MoonNet
linux·c++·开源·github·reactor·网络库
Ten peaches1 天前
Git_GitLab
git·gitlab·github