如何自动加密和删除文件夹中的文件

你是否曾经担心过将重要文件存储在电脑上,担心它们可能被他人访问或丢失?在本教程中,我们将介绍如何使用Python编写一个自动化脚本,将文件夹中的文件压缩、加密,并安全地删除原始文件,以保护你的数据。让我们一起来看看如何做到这一点!

背景故事

假设你有一个包含敏感文件的文件夹,你希望将这些文件压缩并加密,以确保它们不会被未经授权的人访问。同时,你也想要删除原始文件,以释放磁盘空间并减少风险。这个任务可能会变得非常繁琐,但幸运的是,我们可以使用Python来自动化这个过程。

准备工作

在我们深入讨论代码之前,让我们先了解一些准备工作。首先,我们需要确保你的计算机上安装了WinRAR软件,因为我们将使用它来进行文件的压缩和加密。另外,你需要提供一个密码,用于加密压缩文件。

使用Python编写自动化脚本

我们将使用Python编写一个自动化脚本,执行以下操作:

  1. 压缩文件夹:我们将使用WinRAR来压缩文件夹中的文件,创建一个加密的压缩文件。

  2. 加密压缩文件:我们将设置密码来加密压缩文件,确保只有知道密码的人才能解压文件。

  3. 删除原始文件:一旦文件成功压缩并加密,我们将安全地删除原始文件夹中的文件,以保护数据。

以下是Python代码的主要部分:

import shutil
import subprocess
import os
import time
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))

        print("加密打包操作成功")
    except Exception as e:
        print(f"加密打包操作失败:{e}")

        # 出现错误时,删除已创建的压缩文件
        if os.path.exists(compressed_file):
            os.remove(compressed_file)
            print("压缩文件已删除.")

# 文件夹路径
folder_path = r'D:\BACK'

# 密码
password = '123456'

# 加密并删除文件夹中的文件
encrypt_and_delete_folder(folder_path, password)

使用定时任务自动化操作

如果你希望定期执行这个操作,我们可以使用Python的schedule库来安排任务。在上述代码中,我们创建了一个名为encrypt_and_delete_folder的函数,它将压缩、加密和删除文件夹中的文件。然后,我们使用schedule库来定期执行这个函数。

以下是如何设置定时任务的代码:

import schedule
import time

# 文件夹路径
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)

结论

通过使用Python编写自动化脚本和定时任务,我们成功地实现了文件夹中文件的

压缩、加密和删除操作。这种自动化方法可以帮助你更好地保护你的敏感数据,同时也节省了你的时间和精力。

希望这篇教程对你有所帮助,如果你有任何疑问或需要进一步的指导,请随时联系我们。保持数据安全,保持自动化!

声明:本站所有文章,如无特殊说明或标注,均为本站(王大神)原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
指数词

如何用克拉默法则解决罗盘谜题

2023-10-4 7:16:11

指数词

如何使用Python自动发送批量邮件

2023-10-4 7:19:41

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索