Python定时删除特定目录下的文件并定时循环运行。打包为Win .exe程序

需求:

最近某个项目的企微管理软件迁移到新买的华为云服务器上,dd装了windows(这里吐槽下华为云装Windows镜像竟然还要收几十—几百的第三方镜像费用,希望早日出官方镜像)。

因为云服务器磁盘比较小也就40G。企微管理软件日常1天多就会把磁盘占满,从而导致服务器磁盘占满/软件掉线。

所以用ai写了个脚本,运行后就开始删除 C:\Users\Administrator\AppData\Roaming\xxxx\Log 这个目录的文件。然后持续运行。每2小时执行删除一次 并且每一步都输出对应的信息到窗口。

效果:

%title插图%num

因为这个脚本是一直挂在那里的:

  • 所以每1分钟输出一下脚本的状态。
  • 输出下次删除的时间。
  • 执行删除的时候输出删除的结果。
  • 用Python来写,并且打包为windows程序

Python代码:

# 钻芒博客 https://www.zuanmang.net/38148.html 转载请注明

import os
import time
import logging
from datetime import datetime, timedelta

# 设置日志
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(message)s')

# 目标目录
target_directory = r'C:\Users\Administrator\AppData\Roaming\xxxx\Log'

# 删除文件的函数
def delete_files():
    try:
        files_deleted = 0
        print(f'检查目录: {target_directory}')
        logging.info(f'检查目录: {target_directory}')
        
        # 检查目录是否存在
        if not os.path.exists(target_directory):
            print(f'目录不存在: {target_directory}')
            logging.error(f'目录不存在: {target_directory}')
            return
        
        for filename in os.listdir(target_directory):
            file_path = os.path.join(target_directory, filename)
            if os.path.isfile(file_path):
                os.remove(file_path)
                print(f'已删除: {file_path}')
                logging.info(f'已删除: {file_path}')
                files_deleted += 1

        if files_deleted == 0:
            print('没有文件可删除。')
            logging.info('没有文件可删除。')
    except Exception as e:
        print(f'删除文件时出错: {e}')
        logging.error(f'删除文件时出错: {e}')

# 主循环
def main():
    next_delete_time = datetime.now() + timedelta(hours=2)
    
    while True:
        current_time = datetime.now()
        
        # 每分钟输出状态
        if current_time.second == 0:
            print(f'下次删除时间: {next_delete_time.strftime("%Y-%m-%d %H:%M:%S")}')
            logging.info(f'下次删除时间: {next_delete_time.strftime("%Y-%m-%d %H:%M:%S")}')
        
        # 每2小时删除一次
        if current_time >= next_delete_time:
            delete_files()
            next_delete_time = current_time + timedelta(hours=2)
        
        time.sleep(1)

if __name__ == "__main__":
    print('脚本已启动。')
    logging.info('脚本已启动。')
    main()

打包为 Windows 程序

1. 确保安装 pyinstaller: 如果还没有安装,可以通过以下命令安装:

pip install pyinstaller

2. 保存脚本: 将上述代码保存为 del.py 文件。

3. 打包脚本: 打开命令提示符,导航到脚本所在目录:

cd 到你的脚本下的文件夹  如: C:\Users\xxx\Desktop\del

使用以下命令打包:

pyinstaller --onefile --distpath . del.py

4. 运行生成的可执行exe文件(可以直接拷贝到服务器上运行,无需py环境)

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容