ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python zipfile 压缩文件夹的方法

2022-02-25 17:02:20  阅读:196  来源: 互联网

标签:python 路径 zipfile dirnames 文件夹 dirpath path os


import os
import zipfile


# 这一部分只是用来解释os.walk的用法,在该脚本运行时不需执行------start
dirpath = r'f:\0105\Europe_output\chinaocean'  # 这里指定需要压缩的文件夹
for path, dirnames, filenames in os.walk(dirpath):  # 遍历文件夹及下面的子文件夹,path、dirnames、filenames依次是路径、目录名称、文件名称。
# path是当前路径,dirnames是在当前路径下有文件夹时,给出文件夹名的列表,filenames是在当前路径下有文件时,给出文件名的列表
# 之后进入列表dirnames中的第一个文件夹,重复上述过程。
    # 下面print出来可以更好体会os.walk的用法
    print(path)
    print(dirnames)
    print(filenames)
    fpath = path.replace(dirpath, '')  # 把主路径去掉,只保留分路径,这样在压缩文件时就不会把需要压缩的文件夹的上层路径压缩进去
    print(fpath)
# 这一部分只是用来解释os.walk的用法,在该脚本运行时不需执行------end


def getZipDir(dirpath, outFullName):
    """
    压缩指定文件夹
    :param dirpath: 目标文件夹路径
    :param outFullName: 压缩文件保存路径+xxxx.zip
    :return: 无
    """
    zip = zipfile.ZipFile(outFullName, "w", zipfile.ZIP_DEFLATED)  # outFullName为压缩文件的完整路径
    for path, dirnames, filenames in os.walk(dirpath):
        # 去掉目标跟路径,只对目标文件夹下边的文件及文件夹进行压缩
        fpath = path.replace(dirpath, '')

        for filename in filenames:
            zip.write(os.path.join(path, filename), os.path.join(fpath, filename))
    zip.close()


if __name__ == '__main__':
    areas = ['chinaocean', 'NWPacific', 'NEPacific', 'SWPacific', 'SEPacific', 'IndianOcean']
    for area in areas:
        getZipDir('F:/0105/json_output/' + area, 'F:/0105/json_output/' + area + '.zip')

标签:python,路径,zipfile,dirnames,文件夹,dirpath,path,os
来源: https://blog.csdn.net/Acrab_Chogori/article/details/123136594

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有