Python 技术篇-用zipfile库进行zip文件的压缩与解压实例演示,python压缩本地文件夹为zip文件并保留目录结构

简介: Python 技术篇-用zipfile库进行zip文件的压缩与解压实例演示,python压缩本地文件夹为zip文件并保留目录结构

       

首先给大家演示下 zip 文件的解压方法。

import zipfile
def zip_extract_to(path_zip, path_aim):
    '''
     作用:解压压缩包
     参数一:压缩包位置
     参数二:解压后的路径
    '''
    z = zipfile.ZipFile(path_zip, 'r')
    for p in z.namelist():
        z.extract(p, path_aim)
    z.close()
# 要解压的zip文件路径
path_zip = r'D:\lizhi\压缩测试\chromedriver_win32.zip'
# 要解压到的位置
path_aim = r'D:\lizhi\压缩测试'
# 解压压缩包
zip_extract_to(path_zip, path_aim)

效果演示:

这是压缩包之前的样式。

image.png

这是压缩包解压后的样式。

image.png

然后给大家看下 zip 文件的压缩过程,我的压缩方法可以直接压缩文件在当前目录下,并不把自己压缩进来,而且可以保留原来文件夹的目录结构。

import zipfile
import pathlib
def file_to_zip(path_original, path_zip):
    '''
     作用:压缩文件到指定压缩包里
     参数一:压缩文件的位置
     参数二:压缩后的压缩包
    '''
    # 提前读取,避免把压缩包自己加上去
    # 这里用list()做一个克隆提前执行下,不然会在后面循环时才执行这一引用,如果压缩包在这个路径下,会将它读取进来。
    f_list = list(pathlib.Path(path_original).glob("**/*"))
    z = zipfile.ZipFile(path_zip, 'w')
    for f in f_list:
        z.write(f, str(f)[len(path_original):])
    z.close()
# 要压缩文件夹的位置
path_original = r'D:\lizhi\压缩测试'
# 压缩到指定路径下的zip文件
path_zip = r'D:\lizhi\压缩测试\chromedriver_win32.zip'
# 压缩文件
file_to_zip(path_original, path_zip)

我把之前的压缩包删掉了,用那个 driver 文件夹重新进行压缩的,现在看到的是新生成的。

image.png

可以看到里面的结构跟我文件夹、目录的结构是一样的。

image.png

喜欢的点个赞❤吧!


目录
相关文章
|
1月前
|
安全 Linux 数据安全/隐私保护
python知识点100篇系列(15)-加密python源代码为pyd文件
【10月更文挑战第5天】为了保护Python源码不被查看,可将其编译成二进制文件(Windows下为.pyd,Linux下为.so)。以Python3.8为例,通过Cython工具,先写好Python代码并加入`# cython: language_level=3`指令,安装easycython库后,使用`easycython *.py`命令编译源文件,最终生成.pyd文件供直接导入使用。
python知识点100篇系列(15)-加密python源代码为pyd文件
|
19天前
|
开发者 Python
Python中__init__.py文件的作用
`__init__.py`文件在Python包管理中扮演着重要角色,通过标识目录为包、初始化包、控制导入行为、支持递归包结构以及定义包的命名空间,`__init__.py`文件为组织和管理Python代码提供了强大支持。理解并正确使用 `__init__.py`文件,可以帮助开发者更好地组织代码,提高代码的可维护性和可读性。
18 2
|
1月前
|
Java Python
> python知识点100篇系列(19)-使用python下载文件的几种方式
【10月更文挑战第7天】本文介绍了使用Python下载文件的五种方法,包括使用requests、wget、线程池、urllib3和asyncio模块。每种方法适用于不同的场景,如单文件下载、多文件并发下载等,提供了丰富的选择。
|
1月前
|
数据安全/隐私保护 流计算 开发者
python知识点100篇系列(18)-解析m3u8文件的下载视频
【10月更文挑战第6天】m3u8是苹果公司推出的一种视频播放标准,采用UTF-8编码,主要用于记录视频的网络地址。HLS(Http Live Streaming)是苹果公司提出的一种基于HTTP的流媒体传输协议,通过m3u8索引文件按序访问ts文件,实现音视频播放。本文介绍了如何通过浏览器找到m3u8文件,解析m3u8文件获取ts文件地址,下载ts文件并解密(如有必要),最后使用ffmpeg合并ts文件为mp4文件。
|
C++ Python
54 python - 类属性、实例属性
54 python - 类属性、实例属性
40 0
|
Python
【从零学习python 】43. Python面向对象编程中的实例属性和类属性
【从零学习python 】43. Python面向对象编程中的实例属性和类属性
79 0
|
Python
【Python零基础入门篇 · 21】:构造函数、类属性和实例属性的访问
【Python零基础入门篇 · 21】:构造函数、类属性和实例属性的访问
186 0
【Python零基础入门篇 · 21】:构造函数、类属性和实例属性的访问
|
Python
【Python零基础入门篇 · 15】:面向对象基础(类和对象)、类属性和实例属性的访问、构造函数
【Python零基础入门篇 · 15】:面向对象基础(类和对象)、类属性和实例属性的访问、构造函数
118 0
【Python零基础入门篇 · 15】:面向对象基础(类和对象)、类属性和实例属性的访问、构造函数
|
Linux 云计算 开发者
【python | linux09】类属性、实例属性、面向对象四大特征
在类的属性中,分为公有类属性和私有类属性; 公有类属性:所有对象都可访问; 私有类属性:只能在类内部访问,不能通过实例对象访问
176 0
【python | linux09】类属性、实例属性、面向对象四大特征
|
Python
Python - 面向对象编程 - 类变量、实例变量/类属性、实例属性
Python - 面向对象编程 - 类变量、实例变量/类属性、实例属性
230 0
Python - 面向对象编程 - 类变量、实例变量/类属性、实例属性
下一篇
无影云桌面