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

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

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()
相关推荐
Stara051115 小时前
Git推送+拉去+uwsgi+Nginx服务器部署项目
git·python·mysql·nginx·gitee·github·uwsgi
不能只会打代码20 小时前
大学课程项目中的记忆深刻 Bug —— 一次意外的数组越界
java·github·intellij-idea·话题博客
Web极客码1 天前
如何修复WordPress卡在维护模式
服务器·网络·github
油泼辣子多加2 天前
2024年11月17日Github流行趋势
github
海里有太阳2 天前
gitHub常用操作
github
量子孤岛2 天前
建立独一无二的GitHub Profile
github
小小宇宙中微子2 天前
QDUOJ(青岛大学在线评测系统)
github
Smilejudy2 天前
从 ES Kafka Mongodb Restful ... 取到 json 之后
后端·github
明天最后2 天前
由于Two-Factor Authentication导致github发布npm包失败
前端·npm·github
n***85942 天前
GitHub 开源项目 Puter :云端互联操作系统
github