Windows 11 批量将压缩包进行分卷压缩并设置密码 Python 篇

因为需求,之前已经写了个三个脚本来进行压缩包的分卷压缩。如有需要可以参考下面三篇文章

后来发现使用 .bat 的代码在功能上依然有些欠缺,所以改成使用 python 来完成这个功能。当然,这个代码是使用 Chatgpt 来写的。这次对 Chatgpt 提出了以下的要求。
如果你的电脑没有安装 python 那么请参考 Windows 11 应用商店安装 Python 这篇文章

  1. 需要使用到 7z 压缩软件,我已经将他安装在默认地址里
  2. 我在一个父文件夹下放置了多个压缩包,他们的大小不同
  3. 我需要你将他们进行分卷压缩。现在对分卷压缩有这些要求
    3.1 如果压缩包大于4GB,将他们的分卷压缩大小修改为每个分卷 2GB
    3.2 如果压缩包小于4GB,就计算他们的大小后将他们平均分为4个分卷
  4. 分卷压缩包需要添加密码,密码为 这是密码
  5. 分卷压缩包需要选择隐藏压缩包内容
  6. python 脚本需要进行压缩

然后 Chatgpt 给出了下面的代码,将代码复制到 txt 文本中后将后缀修改成 .py 即可
对了,同时电脑需要安装 7z 解压软件并且安装在默认目录中

import os
import subprocess
import sys

# 7z 的路径
seven_zip_path = r"C:\Program Files\7-Zip\7z.exe"

# 当前工作目录
current_directory = os.getcwd()

# 压缩密码
password = "自己带盐的海带Xo"

def get_file_size(file_path):
    """获取文件大小(字节)"""
    return os.path.getsize(file_path)

def compress_file(file_path, volume_size, password):
    """压缩文件并将分卷放入与压缩包同名的文件夹中"""
    file_name = os.path.basename(file_path)
    file_base_name = os.path.splitext(file_name)[0]
    output_folder = os.path.join(current_directory, file_base_name)
    os.makedirs(output_folder, exist_ok=True)
    
    output_file = os.path.join(output_folder, file_base_name + ".7z")
    command = [
        seven_zip_path, 
        'a', 
        '-v{}b'.format(volume_size),  # 分卷大小
        '-p{}'.format(password),  # 压缩密码
        '-mhe=on',  # 隐藏压缩包内容
        '-mx=0',  # 最小压缩(存储模式)
        output_file, 
        file_path
    ]
    subprocess.run(command, check=True)

def main():
    current_script = os.path.abspath(sys.argv[0])
    
    for root, _, files in os.walk(current_directory):
        for file in files:
            file_path = os.path.join(root, file)
            
            # 排除当前脚本
            if file_path == current_script:
                continue
            
            file_size = get_file_size(file_path)

            if file_size > 4 * 1024**3:  # 大于 4GB
                volume_size = 2 * 1024**3  # 每个分卷 2GB
            else:
                volume_size = file_size // 4  # 平均分为 4 个分卷

            compress_file(file_path, volume_size, password)

if __name__ == "__main__":
    main()

然后演示的文件大概如下

现在需要运行 python 脚本,也就是 .py 这个文件。右键点击当前目录,然后选择 open in terminal。

最后只需要将 压缩包批量分卷压缩.py 拖入 Terminal 窗口中后回车即可

等跑完脚本会即可看到已经压缩好的压缩包和文件夹了

资源下载
下载地址1立即下载
常见问题
123盘资源下载
本站提供 123云盘 资源链接
可无登入直接下载
安全声明
如文章内提供下载内容
此内容可能为执行脚本,软件,图像或Ai模型
所有内容均经过病毒查杀,可放心下载
免责声明
因模型可能包含 NSFW 内容,请不要将模型用于非法用途
本站点只提供模型下载,不参与制作者图片生成
因制作者生成图片造成的违法问题与本站无关
0

评论0

没有账号?注册  忘记密码?