[python3] zipfile压缩目录下所有的文档都被压缩,并解决压缩路径过深的问题

本文介绍了一种使用Python实现的文件压缩方法,能有效压缩目录下所有文件,并控制压缩后的文件路径深度,避免层级过多。通过递归获取文件列表,再利用zipfile模块进行压缩,解决了路径过深和文件层级多的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 压缩文件的目标

把左侧当前目录下所有文件进行压缩,右侧为文件压缩后的结果。
要求:
1)所有文件都能压缩
2)压缩后的文件路径不能太深,如图右侧所示。

2. 示例代码

import time
import os
import zipfile

def get_zip_file(file_path, file_lists):

    files = os.listdir(file_path)
    for file in files:
        if os.path.isdir(file_path + '/' + file):
            get_zip_file(file_path + '/' + file, file_lists)
        else:
            file_lists.append(file_path + '/' + file)

def zip_file(file_path, output_path, output_name):
    newzip = zipfile.ZipFile(output_path + '/' + output_name, 'w', zipfile.ZIP_DEFLATED)
    file_lists = []
    get_zip_file(file_path, file_lists)
    for file in file_lists:
        full_file_path = file
        compressed_file_path = file.split(file_path)[1]
        # be care full about these two parameters: full_file_path, compressed_file_path
        # as their names show.
        newzip.write(full_file_path, compressed_file_path)
    newzip.close()
    return output_name

3.参考文档:

[1] https://blog.youkuaiyun.com/dou_being/article/details/81546172
解决了能够压缩所有文件的问题,但是路径太深。
[2] https://blog.youkuaiyun.com/sun_wangdong/article/details/79157682?utm_source=blogxgwz3
解决了压缩路径不深的问题,但是被压缩的文件层级比较多,这个问题没有解决。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值