批量压缩文件夹内文件并记录解压密码

2024-06-23 23:28

本文主要是介绍批量压缩文件夹内文件并记录解压密码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

主要功能是:

遍历指定目录中的所有文件。
为每个文件生成一个随机密码。
使用生成的密码将文件压缩为 7z 格式。
将文件名和对应的密码记录到 passwords.txt 文件中。

import os
import random
import string
from py7zr import SevenZipFile, exceptions# 设置文件夹路径
folder_path = r'D:\1'
password_file_path = os.path.join(folder_path, 'passwords.txt')# 清除旧的密码文件
if os.path.exists(password_file_path):os.remove(password_file_path)print(f"Old password file '{password_file_path}' removed.")# 生成一个安全的随机密码
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')try:# 创建压缩文件并设置密码with 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(f"File '{filename}' compressed and password recorded.")except exceptions.SevenZipError as e:print(f"Error compressing file '{filename}': {e}")else:print(f"Skipping '{filename}', not a file.")print("Compression and password recording completed.")

这篇关于批量压缩文件夹内文件并记录解压密码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1088580

相关文章

51单片机学习记录———定时器

文章目录 前言一、定时器介绍二、STC89C52定时器资源三、定时器框图四、定时器模式五、定时器相关寄存器六、定时器练习 前言 一个学习嵌入式的小白~ 有问题评论区或私信指出~ 提示:以下是本篇文章正文内容,下面案例可供参考 一、定时器介绍 定时器介绍:51单片机的定时器属于单片机的内部资源,其电路的连接和运转均在单片机内部完成。 定时器作用: 1.用于计数系统,可

Javascript高级程序设计(第四版)--学习记录之变量、内存

原始值与引用值 原始值:简单的数据即基础数据类型,按值访问。 引用值:由多个值构成的对象即复杂数据类型,按引用访问。 动态属性 对于引用值而言,可以随时添加、修改和删除其属性和方法。 let person = new Object();person.name = 'Jason';person.age = 42;console.log(person.name,person.age);//'J

UE3 的Config文件夹

工作中需要用到UE3,看官方文档中文版翻译有些偷懒和翻译不妥当,故看着英文自己翻译理解了一下,以供后续参考。 目录 基础内容 0.概述  1.uc脚本中的类定义关联配置文件和保存 2.保存配置文件API SaveConfig() StaticSaveConfig() 3.ucc 编译的时候使用 4.配置文件类型 Default 配置文件 和 XXX 配置文件  Base 配置

vcpkg安装opencv中的特殊问题记录(无法找到opencv_corexd.dll)

我是按照网上的vcpkg安装opencv方法进行的(比如这篇:从0开始在visual studio上安装opencv(超详细,针对小白)),但是中间出现了一些别人没有遇到的问题,虽然原因没有找到,但是本人给出一些暂时的解决办法: 问题1: 我在安装库命令行使用的是 .\vcpkg.exe install opencv 我的电脑是x64,vcpkg在这条命令后默认下载的也是opencv2:x6

记录AS混淆代码模板

开启混淆得先在build.gradle文件中把 minifyEnabled false改成true,以及shrinkResources true//去除无用的resource文件 这些是写在proguard-rules.pro文件内的 指定代码的压缩级别 -optimizationpasses 5 包明不混合大小写 -dontusemixedcaseclassnames 不去忽略非公共

数控系统资料记录

数控技术:数控系统刀补功能的软件实现及其仿真--数控仿真程序开发实战 https://github.com/mai4567/CNC 下载编译报错:error: src/dxflib.a: 没有那个文件或目录: 解决:下载dxflibhttps://www.ribbonsoft.com/en/dxflib-downloads,下载完后编译,编译后得到libdxflib.a,替换掉项目makefi

模型压缩综述

https://www.cnblogs.com/shixiangwan/p/9015010.html

pixel_link记录

export PYTHONPATH=/path2to/pixel_link/pylib/src:$PYTHONPATH   https://blog.csdn.net/northeastsqure/article/details/83655200   https://blog.csdn.net/u011440558/article/details/78606662   报错: All

nginx问题记录以及解决方法

问题描述: 打开多个nginx.exe 结果在任务管理器中不能结束该进程 解决办法: 以管理员的身份运行cmd 1、查看所有nginx.exe 进程 tasklist /fi "imagename eq nginx.exe" 2、结束这些进程 taskkill /fi "imagename eq nginx.exe" /f 问题描述: 配置前端项目路径然后就直接看本地项目路径的属

spring mvc完整项目创建步骤记录

快速创建一个spring mvc项目(只有页面调用→到controller→到页面) 1、首先创建Dynamic Web Project 2、创建jsp页面index.jsp以及成功(/WEB-INF/view/success.jsp)和失败页面(/WEB-INF/view/error.jsp) index.jsp <%@ page language="java" contentType=