python 批量压缩文件并生成解压密码

ops/2024/10/19 19:43:58/

第一步:安装必要的Python库

你需要安装Python和一个名为py7zr的库,后者用于处理7z压缩文件。你可以通过以下命令安装这个库:

pip install py7zr

第二步:创建Python脚本

以下是一个Python脚本的示例,它将遍历指定目录中的所有文件,为每个文件创建一个7z压缩文件,并为每个文件设置一个独特的密码。此外,这些密码将被保存在一个文本文件中。

import os
import random
import string
from py7zr import py7zr# 设置文件夹路径
folder_path = 'C:\\path\\to\\your\\files'
password_file_path = os.path.join(folder_path, 'passwords.txt')# 清除旧的密码文件
if os.path.exists(password_file_path):os.remove(password_file_path)# 生成一个安全的随机密码
def generate_password(length=10):characters = string.ascii_letters + string.digitsreturn ''.join(random.choice(characters) for i in range(length))# 遍历目录并压缩每个文件
for filename in os.listdir(folder_path):file_path = os.path.join(folder_path, filename)if os.path.isfile(file_path):password = generate_password()archive_name = os.path.join(folder_path, f'{os.path.splitext(filename)[0]}.7z')# 创建压缩文件并设置密码with py7zr.SevenZipFile(archive_name, 'w', password=password) as archive:archive.writeall(file_path, arcname=filename)# 记录密码with open(password_file_path, 'a') as f:f.write(f'{filename}: {password}\n')print("Compression and password recording completed.")

第三步:运行脚本

将这个脚本保存为.py文件(例如compress_files.py),然后在命令行中运行它:

python compress_files.py

注意事项

  • 这个脚本假设你使用的是Windows操作系统。如果你使用的是其他操作系统,文件路径的分隔符可能需要更改。
  • 请确保Python和py7zr库已经正确安装在你的系统中。
  • 路径需要注意转义,在Python字符串中,\ 是一个转义字符,意味着它会改变后续字符的意义。

在Python中,最好使用原始字符串来处理文件路径,这样可以避免 \ 被错误解释。原始字符串通过在字符串前加 r 来定义。例如,修改你的脚本中的 folder_path

folder_path = r'D:\1\2'

http://www.ppmy.cn/ops/15702.html

相关文章

CTF网络安全大赛详情

网络安全已成为现代社会的一个关键挑战,随着互联网技术的飞速发展,从个人隐私保护到国家安全,网络安全的重要性日益突显。为了应对这一挑战,CTF(Capture The Flag,中文:夺旗赛)应运而…

TypeError: Unknown file extension “.ts“

报错 ts-node effect.ts ts-node 是一个 Node.js 的 TypeScript 执行器,它可以实时将 TypeScript 代码编译成 JavaScript 并执行。你可以通过 npm install -g ts-node 安装 ts-node(全局安装),然后使用 ts-node 命令来执行 .ts 文…

redis实现未支付时间超时就删除订单,并给前端反应一个已过期

1.创建订单缓存,设置过期时间为一分钟 now 是一个表示当前时间的对象,offset 方法用于对当前时间进行偏移。 redisTemplate.expireAt(paymentKey, now.offset(DateField.SECOND, 60)); 2.创建KeyExpiredListener类并且继承KeyExpirationEventMessageLis…

架构师系列-消息中间件(九)- RocketMQ 进阶(三)-消费端消息保障

5.2 消费端保障 5.2.1 注意幂等性 应用程序在使用RocketMQ进行消息消费时必须支持幂等消费,即同一个消息被消费多次和消费一次的结果一样,这一点在使用RoketMQ或者分析RocketMQ源代码之前再怎么强调也不为过。 “至少一次送达”的消息交付策略&#xff…

【Web】HNCTF 2022 题解(全)

目录 Week1 Interesting_include 2048 easy_html What is Web Interesting_http easy_upload Week2 ez_SSTI easy_include ez_ssrf Canyource easy_unser easy_sql ohmywordpress Week3 ssssti Fun_php ez_phar QAQ_1inclu4e logjjjjlogjjjj …

综合练习

Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 下面我们通过一些实战练习加深对存储过程和函数的认识 以 scott 用户下 emp 数据表为基础,创建如下过程 (1)以部门编号为输入参数,查询该部门的平均…

使用TP8框架根据视频id查找所有评论和回复

在使用ThinkPHP 8(TP8)框架根据视频ID查找所有评论和回复时,你需要编写相应的控制器逻辑和模型方法来实现这一功能。下面是一个基本的示例,展示如何实现这个功能: 首先,确保你已经定义了Comment和Reply模型…

应对电网挑战!lonQ与橡树岭国家实验室利用量子技术改善关键基础设施

内容来源:量子前哨(ID:Qforepost) 文丨浪味仙 排版丨沛贤 深度好文:1800字丨6分钟阅读 摘要:美国电网正在面临需求增加和能源扩散的挑战,对能够应对优化和安全挑战的创新解决方案有着迫切需求…