ICode9

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

python2.7 zipfile 的简单用法

2020-05-23 09:56:10  阅读:337  来源: 互联网

标签:zip zipfile python2.7 用法 zipfilename file path os


简要说明使用python 进行 zip 文件压缩和解压缩的方法

1 代码示例

#! /usr/bin/env python
#  -*- coding: UTF-8 -*-
import zipfile
import os


def decompress_file(zip_file_path):
    """
    解压文件到某个目录
    :param zip_file_path:    待解压的zip 文件路径
    :return:
    """
    with zipfile.ZipFile(zip_file_path, 'r') as z:
        # 解压全部
        z.extractall('./zipfile')


def compress_file(zipfilename, dirname):
    """
    压缩某个目录下的所有文件
    :param zipfilename:    压缩文件的路径
    :param dirname:        待压缩的目录
    :return:
    """
    if os.path.isfile(dirname):
        with zipfile.ZipFile(zipfilename, 'w') as z:
            z.write(dirname)
    else:
        with zipfile.ZipFile(zipfilename, 'w') as z:
            for root, dirs, files in os.walk(dirname):
                for singlefile in files:
                    if singlefile != zipfilename:
                        filepath = os.path.join(root, singlefile)
                        z.write(filepath)


def check_zipfile_list(zip_file_path):
    """
    查看zip 压缩文件中的文件列表
    :param zip_file_path:    zip 压缩文件的路径
    :return:
    """
    if not os.path.exists(zip_file_path) and os.path.isfile(zip_file_path):
        return
    with zipfile.ZipFile(zip_file_path, 'r') as z:
        print z.namelist()


def add_file(zipfilename, addfile):
    """
    添加文件到压缩文件
    :param zipfilename:    已存在的zip 压缩文件路径
    :param addfile:        待添加到zip 压缩文件中的文件路径
    :return:
    """
    if os.path.isfile(addfile):
        with zipfile.ZipFile(zipfilename, 'a') as z:
            z.write(addfile)


if __name__ == '__main__':
    # add_file('./testdata/1.zip', './testdata/2.txt')
    # check_zipfile_list('./testdata/1.zip')
    # decompress_file('./testdata/1.zip')
    compress_file('testdata.zip', './testdata')

标签:zip,zipfile,python2.7,用法,zipfilename,file,path,os
来源: https://www.cnblogs.com/gaozhidao/p/12941160.html

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

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

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

ICode9版权所有