zoukankan      html  css  js  c++  java
  • Python学习笔记组织文件之用zipfile模块压缩文件

    随笔记录方便自己和同路人查阅。

    #------------------------------------------------我是可耻的分割线-------------------------------------------

      你可能熟悉 ZIP 文件(带有.zip 文件扩展名),它可以包含许多其他文件的压缩内容。压缩一个文件会减少它的大小,这在因特网上传输时很有用。

    因为一个 ZIP 文件可以包含多个文件和子文件夹,所以它是一种很方便的方式,将多个文件打包成一个文件。这个文件叫做“归档文件”,然后可以用作电

    子邮件的附件,或其他用途。

      利用 zipfile 模块中的函数,Python 程序可以创建和打开(或解压)ZIP 文件。

    #------------------------------------------------我是可耻的分割线-------------------------------------------

      1、读取zip文件

      要读取 ZIP 文件的内容,首先必须创建一个 ZipFile 对象(请注意大写首字母 Z和 F)。ZipFile 对象在概念上与 File 对象相似,你可能已经知道open()

    函数返回 File 对象:它们是一些值,程序通过它们与文件打交道。要创建一个 ZipFile对象,就调用 zipfile.ZipFile()函数,向它传入一个字符串,表示.zip

    文件的文件名。请注意,zipfile 是 Python 模块的名称,ZipFile()是函数的名称。

      ZipFile()函数,读取文件,示例代码:

    import zipfile,os
    os.chdir('d:\') # move to the folder with example.zip
    #使用zipfile模块的ZipFile()函数,获取ZipFile对象
    exampleZip = zipfile.ZipFile('example.zip')
    #namelist()函数,获取ZipFile对象的值
    print(exampleZip.namelist())
    

      运行结果:

      因为新建example.zip时,向里面放入了report_data2.txt和spam.txt两个文件,打印ZipFile对象的值后显示这两个文件的名字。

      2、从文件中解压

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

    import zipfile,os
    os.chdir('d:\')
    # 使用zipfile模块的ZipFile()函数,获取ZipFile对象
    exampleZip = zipfile.ZipFile('example.zip')
    #使用extractall()解压文件
    exampleZip.extractall()
    #关闭文件
    exampleZip.close()
    

      运行结果:

       extractall()方法如果没有传入值,会默认解压到当前工作目录下,可以给他传递一个path,示例代码:

    import zipfile,os
    os.chdir('d:\')
    # 使用zipfile模块的ZipFile()函数,获取ZipFile对象
    exampleZip = zipfile.ZipFile('example.zip')
    #使用extractall()解压文件
    exampleZip.extractall('d:\quiz')
    #关闭文件
    exampleZip.close()
    

      运行结果:会吧example.zip文件解压到d:\quiz文件夹下

      3、创建和添加到zip文件

      要创建你自己的压缩 ZIP 文件,必须以“写模式”打开 ZipFile 对象,即传入'w'作为第二个参数(这类似于向 open()函数传入'w',以写模式打开一个文本文件)。

      如果向 ZipFile 对象的 write()方法传入一个路径,Python 就会压缩该路径所指的文件,将它加到 ZIP 文件中。write()方法的第一个参数是一个字符串,代表要添加的文件名。第二个参数是“压缩类型”参数,它告诉计算机使用怎样的算法来压

    缩文件。可以总是将这个值设置为 zipfile.ZIP_DEFLATED(这指定了 deflate 压缩算法,它对各种类型的数据都很有效)。  

    import zipfile,os
    os.chdir('d:\')
    # 使用zipfile模块的ZipFile()函数,获取ZipFile对象
    newZip = zipfile.ZipFile('new.zip', 'w')
    newZip.write('spam.txt', compress_type=zipfile.ZIP_DEFLATED)
    newZip.close()
    

      运行结果:

      对在d盘中创建一个new.zip文件,其中包括spam.txt文件。

  • 相关阅读:
    Nginx模块fastcgi_cache的几个注意点 转
    CGI与FastCGI 转
    APUE--UNIX环境编程
    与 在记事本中的内容表现方式 原创
    Linux 内核使用的 GNU C 扩展
    GCC内嵌汇编
    linux下64位汇编的系统调用系列
    查看源码Vim+Cscope
    GCC 编绎选项 转
    Linux系统启动流程 图解
  • 原文地址:https://www.cnblogs.com/lirongyang/p/9649057.html
Copyright © 2011-2022 走看看