Python 压缩打包文件/文件夹的方法

 更新时间:2023年12月04日 08:27:14   作者:gongzairen  
本文主要介绍了Python 压缩打包文件/文件夹的方法,分两种类型处理,打包文件是需要传入文件的路径,打包文件夹是传入文件夹的路径,感兴趣的可以了解一下

介绍

实现压缩打包文件/文件夹的方法,分两种类型处理,打包文件是需要传入文件的路径,打包文件夹是传入文件夹的路径

实现压缩打包的代码

import os
import shutil
from zipfile import ZipFile


# 压缩打包文件
def compress_pack_file(zip_path, compress_type="file", file_path_list=[], folder_path=""):
    """
    传入的是文件路径列表则压缩指定文件,传入的是文件夹则压缩该文件夹
    :param zip_path: 需要写入的zip文件路径
    :param compress_type: 压缩的类型:"file":压缩指定文件;"folder":压缩文件夹
    :param file_path_list: 文件路径列表
    :param folder_path: 文件夹路径
    :return:
    """
    data_dict = {"data": "", "warning_info": "", "error_info": "", }
    try:
        if compress_type == "file":
            if not len(file_path_list):
                data_dict["error_info"] = "没有文件需要压缩打包"
                return data_dict

            with ZipFile(zip_path, 'w') as zip_file:
                for file_path in file_path_list:
                    if os.path.exists(file_path):
                        file_name = os.path.basename(file_path)
                        zip_file.write(file_path, file_name)
                    else:
                        data_dict["warning_info"] += f"【{file_path}】无法压缩打包" + "\n"
        elif compress_type == "folder":
            if zip_path == folder_path:
                data_dict["error_info"] = "不能压缩打包"
                return data_dict
            file_name_without_ext = os.path.splitext(zip_path)[0]
            shutil.make_archive(file_name_without_ext, 'zip', folder_path)
            
        else:
            data_dict["error_info"] = f"所选压缩打包类型无效"

    except Exception as e:
        data_dict["error_info"] = f"执行压缩打包失败"
        print(e)

    return data_dict


if __name__ == '__main__':
    f_path = r"D:\BusinessProject\结果文件\2023-12-01"
    z_p = r"D:\BusinessProject\结果文件\2023-12-01\压缩文件.zip"
    f_l = [
        'D:\\BusinessProject\\结果文件\\2023-12-01\\2023-11-29-2023-11-29-官方旗舰店--2023-12-01_10:57.xlsx',
        'D:\\BusinessProject\\官方旗舰店--2023-12-01_11:00.xlsx',
        'D:\\BusinessProject\\官方旗舰店--2023-12-01_11:01.xlsx',
        'D:\\BusinessProject\\官方旗舰店--2023-12-01_11:02.xlsx',
        'D:\\BusinessProject\\卧室家具旗舰店--2023-12-01_11:01.xlsx',
        'D:\\BusinessProject\\卧室家具旗舰店--2023-12-01_11:02.xlsx']
    fl_path = 'D:\\BusinessProject\\结果文件\\2023-12-01\\2023-11-29-2023-11-29-官方旗舰店--2023-12-01_10:57.xlsx'

    # result_dict = compress_pack_file(z_p, "file", file_path_list=f_l)  # 压缩打包文件
    result_dict = compress_pack_file(z_p, "folder", folder_path=fl_path)  # 压缩打包文件夹
    print(result_dict)

实现查找文件夹的文件路径代码

import os


file_paths = []
f_path = r"D:\BusinessProject\结果文件\2023-12-01"
for root, dirs, files in os.walk(f_path):
    for file_name in files:
        file_path = os.path.join(root, file_name)
        file_paths.append(file_path)

print(file_paths)

到此这篇关于Python 压缩打包文件/文件夹的方法的文章就介绍到这了,更多相关Python 压缩打包文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 关于Kotlin中SAM转换的那些事

    关于Kotlin中SAM转换的那些事

    这篇文章主要给大家介绍了关于Kotlin中SAM转换的那些事,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Pytorch使用transforms

    Pytorch使用transforms

    这篇文章主要介绍了Pytorch使用transforms,tansforms功能,通俗地讲,类似于在计算机视觉流程里的图像预处理部分的数据增强。下面来看看文章的具体内容介绍吧,需要的朋友可以参考一下
    2021-12-12
  • django框架cookie和session用法实例详解

    django框架cookie和session用法实例详解

    这篇文章主要介绍了django框架cookie和session用法,结合实例形式详细分析了Django框架cookie和session的功能、原理、使用方法及相关操作注意事项,需要的朋友可以参考下
    2019-12-12
  • python 如何设置柱状图参数

    python 如何设置柱状图参数

    这篇文章主要介绍了在python中设置柱状图参数的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • 基于Python实现简单学生管理系统

    基于Python实现简单学生管理系统

    这篇文章主要为大家详细介绍了基于Python实现简单学生管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-07-07
  • python中pyc、 pyd文件及生成使用完整实例代码

    python中pyc、 pyd文件及生成使用完整实例代码

    这篇文章主要介绍了python中pyc、 pyd文件及生成使用的相关资料,重点讲解了如何使用Python解释器编译.py文件为.pyc文件,以及如何使用Cython和distutils工具将C/C++代码编译为.pyd文件,需要的朋友可以参考下
    2025-04-04
  • Python实现的连接mssql数据库操作示例

    Python实现的连接mssql数据库操作示例

    这篇文章主要介绍了Python实现的连接mssql数据库操作,结合实例形式分析了Python安装pymssql模块以及基于pymssql模块连接sql2008 R2数据库的具体操作技巧,需要的朋友可以参考下
    2018-08-08
  • Python标准库中隐藏的利器(示例详解)

    Python标准库中隐藏的利器(示例详解)

    在命令行中直接使用Python标准库的模块,最大的好处就是就是不用写代码,就能使用其中的功能,当临时需要一些某些功能的时候,用这种方式会快捷,方便很多,这篇文章主要介绍了Python标准库中隐藏的利器,需要的朋友可以参考下
    2023-11-11
  • Python中的 pass 占位语句

    Python中的 pass 占位语句

    这篇文章主要介绍了Python中的 pass 占位语句,Python pass是空语句,是为了保持程序结构的完整性,下文具体的相关内容介绍需要的小伙伴可以参考一下
    2022-04-04
  • Python实现批量文件自定义命名

    Python实现批量文件自定义命名

    有时候我们经常需要对某一个文件夹中的文件进行重命名修改,但是我们一个一个取修改将会非常繁琐,下面我们就来利用Python实现批量文件自定义命名吧
    2024-11-11

最新评论