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

你是否曾经担心过将重要文件存储在电脑上,担心它们可能被他人访问或丢失?在本教程中,我们将介绍如何使用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编写自动化脚本和定时任务,我们成功地实现了文件夹中文件的

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

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

本文由作者 王大神 原创发布于 大神网的AI博客。

转载请注明作者:王大神

原文出处:如何自动加密和删除文件夹中的文件

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 2023年10月4日
下一篇 2023年10月4日

相关推荐

  • 如何使用Selenium自动化浏览器操作获取网页数据

    在当今互联网时代,网页上的数据是我们获取信息和进行各种任务的关键。有时候,我们需要自动化地进行浏览器操作,以获取网页上的数据,而这正是Selenium库的用武之地。在这篇教程中,我们将学习如何使用Selenium来…

    2023年10月16日
    00
  • 如何通过Python自动启动小米电视上的指定APP

    大家好,今天我要和你分享一个有趣的技巧,可以帮助你自动启动小米电视上的指定APP。你是否曾经遇到过小米电视更新后,导致已安装的APP被分类,难以找到的问题?如果是的话,这篇教程将为你提供一种解决方案。 背景…

    2023年9月19日
    00
  • 游戏世界:数字时代的储存危机

    在数字时代,我们享受到了前所未有的娱乐体验,游戏作为其中的一部分,扮演着至关重要的角色。然而,现代游戏的一个普遍问题引发了玩家们的关切,那就是游戏的巨大存储需求。你是否曾被一款游戏的庞大存储容量惊到…

    2023年10月26日
    00
  • 如何使用Python自动化抢购京东商品并邮件通知

    在互联网时代,网购已经成为我们生活的一部分。然而,有些热门商品往往在瞬间售罄,让人们很难买到心仪的商品。不过,幸运的是,Python编程语言可以帮助我们自动化抢购京东商品,并通过邮件通知我们是否成功。在这…

    2023年10月24日
    00
  • 自动签到天翼云盘,告别繁琐的手动操作

    你是否也因为拥有电信手机的福利,而获得了10T的天翼云盘空间,但又不想每天都登录签到?别担心,我为你提供了一个自动签到脚本的解决方案,让你告别烦人的手动操作。 感谢热心观众:felix发现的错误。 为了方便大…

    2023年11月5日
    019
  • 记录一次中药数据库的捣鼓

    在信息化、大数据的今天,手工操作逐渐显得笨拙和低效。今天,我要分享一个用Python自动获取和整理中药数据库的实践过程,以示如何通过编程实现工作自动化。 找寻数据源:机遇与挑战并存 解决任何问题的第一步总是…

    2023年9月3日
    00
  • Fooocus 项目介绍与教程

    Fooocus 是一个开源的图像生成软件,由 GitHub 用户 lllyasviel 开发。该软件的设计思路受到了 Stable Diffusion 和 Midjourney 两个项目的启发。Fooocus 旨在简化用户与软件之间的交互,让用户只需关注图像生成的…

    2023年9月1日
    00
  • 如何自动化发送数据库查询结果邮件:简单教程

    数据库查询是许多自由职业者和远程工作者日常工作中的一项重要任务。然而,手动执行这些查询并将结果发送给特定的收件人可能会非常耗时,特别是当这个任务需要定期执行时。为了提高工作效率,我们将学习如何使用Pyt…

    2023年9月24日
    00
  • 用深度学习将设计草图转换成HTML和CSS代码

    在计算机科学和人工智能领域的快速发展下,我们见证了各种令人兴奋的技术应用。其中之一是深度学习,它已经改变了我们对图像处理和自然语言处理的认识。本文将介绍一个令人兴奋的项目,该项目使用深度学习将设计草…

    2023年10月7日
    00
  • BiliBiliTool:你的智能任务管家,轻松实现B站生活全自动化!

    在B站的丰富世界里,有无数的精彩内容等待着你去发现和体验。然而,在繁忙的生活中,你是否常常因为忙碌而错过了重要的B站任务、福利和直播节目?别担心,现在有一个绝佳的解决方案,让你的B站生活更加畅快无忧!那…

    2023年8月27日
    00