python2.x zipfile模块学习

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhen_6137/article/details/82424724

zipfile模块压缩文件
    将多个文件打包成一个文件。这个文件叫做“归档文件”, 利用zipfile模块中的函数,Python程序可以创建和打开或压缩ZIP文件
    1. 读取ZIP文件,首先必须创建一个ZipFile对象,通过调用zipfile.ZipFile()函数,向它传入一个字符串,表示.zip文件的文件名
    zipfile是Python模块的名称,ZipFile是函数的名称  

import zipfile
import os

print 'current dir: %s' % os.getcwd()
os.chdir('D:\\')
print 'after change dir: %s' % os.getcwd()

zip_file = zipfile.ZipFile('openApi.zip')
print 'all file: %s' % zip_file.namelist()

name_list = zip_file.namelist()

for name in name_list:
    name_info = zip_file.getinfo(name)
    print '%s original file size:%d, compressed file size:%d' % (name, name_info.file_size, name_info.compress_size)

    ZipFile对象有一个namelist()方法,返回ZIP文件中包含的所有文件和文件夹的字符串的列表,这些字符串可以传递给ZipFile对象的getinfo()方法,返回一个
    关于特定文件的ZipInfo对象。ZipFile对象有自己的属性,如:表示字节数的file_size(原来文件大小)和compress_size(压缩后文件大小)
    ZipFile对象表示整个归档文件,而ZipInfo对象则保存该归档文件中每个文件的有用信息。

    2. 从ZIP文件中解压缩
    ZipFile对象的extractall()方法从ZIP文件中解压缩所有文件和文件夹,放到当前工作目录中。

import zipfile, os
os.chdir('C:\\')
example_zip = zipfile.ZipFile('example.zip')
example_zip.extractall()
example_zip.close()

    example.zip的内容将被解压缩到C:\\。 或者,你可以向extractall()传递一个文件夹名称,它将文件解压缩到那个文件夹,而不是
    当前工作目录。如果传递给extractall()方法的文件夹不存在,它会被创建。

    ZipFile对象的extract()方法从ZIP文件中解压缩单个文件。传递给extract()的字符串,必须匹配namelist()返回的字符串列表中的一个。
    或者你可以向extract()传递第二个参数,将文件解压缩到指定的文件夹,而不是当前工作目录。如果第二个参数指定的文件夹不存在,Python就会创建它。
    extract()的返回值是被压缩后文件的绝对路径。

    3. 创建和添加到ZIP文件
    要创建你自己的压缩ZIP文件,必须以“写模式”打开ZipFile对象,即传入'w'作为第二个参数,
    如果向ZipFile对象的write()方法传入一个路径,Python就会压缩该路径所指的文件,将它加到ZIP文件中。
    write()方法的第一个参数是一个字符串,代表添加的文件名。第二个参数是“压缩类型”参数,它告诉计算机使用怎样的算法来压缩文件。
    可以总是将这个值设置为zipfile.ZIP_DEFLATED

import zipfile, os

new_zip = zipfile.ZipFile('new.zip', 'w')
new_zip.write('spam.txt', compress_type = zipfile.ZIP_DEFLATED)
new_zip.close()

    写模式将擦除ZIP文件中所有原有的内容。如果只是希望将文件添加到原有的ZIP文件中,就要向zipfile.ZipFile()传入 "a"作为第二个参数,以
    添加模式打开ZIP文件

猜你喜欢

转载自blog.csdn.net/zhen_6137/article/details/82424724
今日推荐