查看: 11|回复: 1

[其他] 写了一个简单的"每天定时加密压缩指定文件夹"的小工具

[复制链接]
1天累计签到
1天连续签到
初来乍到

3251

主题

11

回帖

2万

积分

总版主

名望
0 点
星币
6532 枚
星辰
0 颗
好评
2 点
发表于 昨天 23:30 | 显示全部楼层 |阅读模式

注册登录后全站资源免费查看下载

您需要 登录 才可以下载或查看,没有账号?立即注册

×



  • import shutil
    import subprocess
    import os
    import schedule
    import time
    import logging
    from pathlib import Path
    def encrypt_folder_with_winrar(folder_path, password):
    # WinRAR命令
    winrar_command = r'C:\Program Files \WinRAR\WinRAR.exe'
    # 获取当前日期
    current_date = time.strftime("%Y-%m-%d", time.localtime())
    # 获取桌面BD文件夹路径
    desktop_path = str(Path.home() / "Desktop")
    bd_folder_path = os.path.join(desktop_path, "DB")
    # 创建DB文件夹(如果不存在)
    if not os.path.exists(bd_folder_path):
    os.mkdir(bd_folder_path)
    # 压缩包文件名
    compressed_filename = f'压缩包-{current_date}.rar'
    # 压缩包路径
    compressed_filepath = os.path.join(bd_folder_path, compressed_filename)
    # 加密命令
    encryption_command = [winrar_command, 'a', '-r', '-hp' + password, compressed_filepath, folder_path]
    # 执行加密命令
    subprocess.run(encryption_command)
    return compressed_filepath
    def encrypt_and_delete_folder(folder_path, password):
    try:
    # 压缩并加密文件夹
    compressed_file = encrypt_folder_with_winrar(folder_path, password)
    # 等待一段时间,确保压缩文件完成
    time.sleep(10)
    # 删除源文件夹中的文件
    for root, dirs, files in os.walk(folder_path):
    for file in files:
    os.remove(os.path.join(root, file))
    logger.info("加密打包草作成功")
    except Exception as e:
    logger.error(f"加密打包草作失败:{e}")
    # 出现错误时,删除已创建的压缩文件
    if os.path.exists(compressed_file):
    os.remove(compressed_file)
    logger.info("压缩文件已删除.")
    # 创建日志记录器
    logger = logging.getLogger("encrypt_and_delete")
    logger.setLevel(logging.INFO)
    # 创建文件处理器
    log_file = "encrypt_and_delete.log"
    file_handler = logging.FileHandler(log_file)
    file_handler.setLevel(logging.INFO)
    # 创建控制台处理器
    console_handler = logging.StreamHandler()
    console_handler.setLevel(logging.INFO)
    # 创建日志格式
    formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
    file_handler.setFormatter(formatter)
    console_handler.setFormatter(formatter)
    # 添加处理器到记录器
    logger.addHandler(file_handler)
    logger.addHandler(console_handler)
    # 文件夹路径
    folder_path = r'D:\BACK'
    # 密码
    password = '123456'
    # 每天定时执行加密打包草作
    schedule.every().day.at("12:20").do(encrypt_and_delete_folder, folder_path=folder_path, password=password)
    # 循环执行任务,并写入日志
    while True:
    schedule.run_pending()
    time.sleep(60)

复制代码
等保要求加密传输 奈何数据库比较老 不支持加密 所以暂时想到了这个办法 有需要的可以自行打包
默认签名:偏爱是我家,发展靠大家! 社区反馈邮箱Mail To:[email protected]
回复

使用道具 举报

1天累计签到
1天连续签到
初来乍到

2

主题

1万

回帖

1万

积分

偏爱AI机器人

名望
0 点
星币
2781 枚
星辰
0 颗
好评
0 点
发表于 昨天 23:37 | 显示全部楼层
别是那种塞了一堆没用的,希望干净点
默认签名:偏爱是我家,发展靠大家! 社区反馈邮箱Mail To:[email protected]
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注公众号
Archiver|手机版|偏爱技术社区-偏爱技术吧-源码-科学刀-我爱辅助-娱乐网--教开服-游戏源码

相关侵权、举报、投诉及建议等,请发 E-mail:[email protected]

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖
关注公众号
返回顶部