你是否曾经担心过将重要文件存储在电脑上,担心它们可能被他人访问或丢失?在本教程中,我们将介绍如何使用Python编写一个自动化脚本,将文件夹中的文件压缩、加密,并安全地删除原始文件,以保护你的数据。让我们一起来看看如何做到这一点!
背景故事
假设你有一个包含敏感文件的文件夹,你希望将这些文件压缩并加密,以确保它们不会被未经授权的人访问。同时,你也想要删除原始文件,以释放磁盘空间并减少风险。这个任务可能会变得非常繁琐,但幸运的是,我们可以使用Python来自动化这个过程。
准备工作
在我们深入讨论代码之前,让我们先了解一些准备工作。首先,我们需要确保你的计算机上安装了WinRAR软件,因为我们将使用它来进行文件的压缩和加密。另外,你需要提供一个密码,用于加密压缩文件。
使用Python编写自动化脚本
我们将使用Python编写一个自动化脚本,执行以下操作:
-
压缩文件夹:我们将使用WinRAR来压缩文件夹中的文件,创建一个加密的压缩文件。
-
加密压缩文件:我们将设置密码来加密压缩文件,确保只有知道密码的人才能解压文件。
-
删除原始文件:一旦文件成功压缩并加密,我们将安全地删除原始文件夹中的文件,以保护数据。
以下是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编写自动化脚本和定时任务,我们成功地实现了文件夹中文件的
压缩、加密和删除操作。这种自动化方法可以帮助你更好地保护你的敏感数据,同时也节省了你的时间和精力。
希望这篇教程对你有所帮助,如果你有任何疑问或需要进一步的指导,请随时联系我们。保持数据安全,保持自动化!