Python实现批量压缩文件/文件夹zipfile的使用

 更新时间:2021年09月02日 15:40:27   作者:Python研究者  
本文主要介绍了Python实现批量压缩文件/文件夹zipfile的使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

zipfile是python里用来做zip格式编码的压缩和解压缩的,由于是很常见的zip格式,所以这个模块使用频率也是比较高的,

在这里对zipfile的使用方法做一些记录。即方便自己也方便别人。

Python zipfile模块用来做zip格式编码的压缩和解压缩的,要进行相关操作,首先需要实例化一个 ZipFile 对象。ZipFile 接受一个字符串格式压缩包名称作为它的必选参数,第二个参数为可选参数,表示打开模式,类似于文件操作,有r/w/a三种模式,分别代表读、写、添加,默认为r,即读模式。

zipfile里有两个非常重要的class, 分别是ZipFile和ZipInfo, 在绝大多数的情况下,我们只需要使用这两个class就可以了。ZipFile是主要的类,用来创建和读取zip文件而ZipInfo是存储的zip文件的每个文件的信息的。

【Python压缩文件夹】导入“zipfile”模块

def zip_ya(startdir,file_news):
    startdir = ".\\123"  #要压缩的文件夹路径
    file_news = startdir +'.zip' # 压缩后文件夹的名字
    z = zipfile.ZipFile(file_news,'w',zipfile.ZIP_DEFLATED) #参数一:文件夹名
    for dirpath, dirnames, filenames in os.walk(startdir):
        fpath = dirpath.replace(startdir,'') #这一句很重要,不replace的话,就从根目录开始复制
        fpath = fpath and fpath + os.sep or ''#这句话理解我也点郁闷,实现当前文件夹以及包含的所有文件的压缩
        for filename in filenames:
            z.write(os.path.join(dirpath, filename),fpath+filename)
            print ('压缩成功')
    z.close()

if__name__=="__main__"
    startdir = ".\\123"  #要压缩的文件夹路径
    file_news = startdir +'.zip' # 压缩后文件夹的名字
    zip_ya(startdir,file_news)

【python压缩文件】导入“zipfile”模块

import zipfile
def zip_files( files, zip_name ):
    zip = zipfile.ZipFile( zip_name, 'w', zipfile.ZIP_DEFLATED )
    for file in files:
        print ('compressing', file)
        zip.write( file )
    zip.close()
    print ('compressing finished')

files = ['.\\123.txt','.\\3.txt']#文件的位置,多个文件用“,”隔开
zip_file = '.\\m66y.zip'#压缩包名字
zip_files(files, zip_file)

补充

ZipFile还提供了如下常用的方法和属性:

ZipFile.getinfo(name)

获取zip文档内指定文件的信息。返回一个zipfile.ZipInfo对象,它包括文件的详细信息。

ZipFile.infolist()

获取zip文档内所有文件的信息,返回一个zipfile.ZipInfo的列表。

ZipFile.namelist()

获取zip文档内所有文件的名称列表。

ZipFile.extract(member[, path[, pwd]])

将zip文档内的指定文件解压到当前目录。参数member指定要解压的文件名称或对应的ZipInfo对象;参数path指定了解析文件保存的文件夹;

ZipFile.extractall([path[, members[, pwd]]])

解压zip文档中的所有文件到当前目录。参数members的默认值为zip文档内的所有文件名称列表,也可以自己设置,选择要解压的文件名称。

ZipFile.printdir()

将zip文档内的信息打印到控制台上。

ZipFile.setpassword(pwd)

设置zip文档的密码。

ZipFile.read(name[, pwd])

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

相关文章

  • Python+Selenium实现浏览器的控制操作

    Python+Selenium实现浏览器的控制操作

    这篇文章主要为大家详细介绍了Python+Selenium如何实现常见的浏览器控制操作,例如:浏览器参数设置、控制浏览器前进/后退等,感兴趣的可以了解一下
    2022-09-09
  • Python提取频域特征知识点浅析

    Python提取频域特征知识点浅析

    在本文里我们给大家分享了关于Python提取频域特征的相关知识点以及基础内容,需要的朋友们跟着学习下。
    2019-03-03
  • pycharm 使用conda虚拟环境的详细配置过程

    pycharm 使用conda虚拟环境的详细配置过程

    这篇文章主要介绍了pycharm 使用conda虚拟环境,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • python中的list字符串元素排序

    python中的list字符串元素排序

    这篇文章主要介绍了python中的list字符串元素排序方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • Python基础之字典的详细使用教程

    Python基础之字典的详细使用教程

    字典作为Python的一个内置数据结构,和列表一样都是可变序列的,但是它是无序的,以键值对的方式存储数据。本文将详解一下Python中字典的使用,需要的可以参考一下
    2022-07-07
  • python实现将多个文件分配到多个文件夹的方法

    python实现将多个文件分配到多个文件夹的方法

    今天小编就为大家分享一篇python实现将多个文件分配到多个文件夹的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • 用Python实现的等差数列方式

    用Python实现的等差数列方式

    这篇文章主要介绍了用Python实现的等差数列方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • python如何实现控制电脑音量

    python如何实现控制电脑音量

    这篇文章主要介绍了python如何实现控制电脑音量问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • python学习笔记:字典的使用示例详解

    python学习笔记:字典的使用示例详解

    python字典的使用: python字典有很多好用的地方。字典每个元素都有键和值。如同现代汉语字典中的拼音和对应的文字。字典中的键是唯一的,而值不一定唯一。你看,和现代汉语字典多么的相似。
    2014-06-06
  • slearn缺失值处理器之Imputer详析

    slearn缺失值处理器之Imputer详析

    这篇文章主要给大家介绍了关于slearn缺失值处理器之Imputer的相关资料,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-08-08

最新评论