Python|Python 标准库zipfile将文件夹加入压缩包的操作方法

zipfile模块是python中一个处理压缩文件的模块,解决了不少我们平常需要处理压缩文件的需求。大家还知道Python zipfile 库可用于压缩/解压 zip 文件. 本文介绍一下如何创建压缩包.
将 “文件” 加入压缩包 假设目录结构如下:

my_project|- 唐诗三百首.txt# 这是要打包的文件|- demo.py# 演示代码会在这里编写|- _______# 我们想要在这里生成一个名为 "output.zip" 的文件

“demo.py” 内容如下:
from zipfile import ZipFilehandle = ZipFile('output.zip', 'w')handle.write('唐诗三百首.txt')handle.close()

将 “文件夹” 加入压缩包 ZipFile 支持两种路径写入方式:
绝对路径
handle = ZipFile('output.zip', 'w')handle.write('c:/aaa/bbb/唐诗三百首.txt')handle.close()

会生成:
~/output.zip|= aaa|= bbb|- 唐诗三百首.txt

相对路径
"""假设目录结构为:my_project|= aaa|= bbb|= 唐宋诗词# 我们想打包这个文件夹|- 唐诗三百首.txt|- 宋词三百首.txt|- demo.py|- _______# 在这里生成 'output.zip' 文件"""# demo.pyimport osfrom zipfile import ZipFilewith ZipFile('output.zip', 'w') as handle:# 首先切到 "唐宋诗词" 的父目录os.chdir('./aaa/bbb')# 然后使用相对路径写入# 注意参数必须是文件的路径, 不能是文件夹路径# # handle.write('唐宋诗词')# wrong!handle.write('唐宋诗词/唐诗三百首.txt')# righthandle.write('唐宋诗词/宋词三百首.txt')# right

Python|Python 标准库zipfile将文件夹加入压缩包的操作方法
文章图片

脚本封装 下面是封装好的脚本, 函数比较直观, 看代码就可以理解用法了:
import osfrom zipfile import ZipFilefrom lk_utils import findall_files# pip install lk-utilsdef pack_file(file_i: str, file_o: str) -> str:return pack_files([file_i], file_o)def pack_files(files_i: list, file_o: str) -> str:backup = os.getcwd()with ZipFile(os.path.abspath(file_o), 'w') as handle:for file_i in map(os.path.abspath, files_i):dir_, filename = os.path.split(file_i)os.chdir(dir_)handle.write(filename)# restoreos.chdir(backup)return file_odef pack_dir(dir_i: str, file_o: str) -> str:return pack_dirs([dir_i], file_o)def pack_dirs(dirs_i: list, file_o: str) -> str:backup = os.getcwd()with ZipFile(os.path.abspath(file_o), 'w') as handle:for dir_i in map(os.path.abspath, dirs_i):dir_ii = os.path.dirname(dir_i)os.chdir(dir_ii)for file in findall_files(dir_i):handle.write(os.path.relpath(file, dir_ii))# restoreos.chdir(backup)return file_oif __name__ == '__main__':pack_file('aaa/bbb/唐宋诗词/唐诗三百首.txt', 'output1.zip')pack_dir('aaa/bbb/唐宋诗词', 'output2.zip')

Python|Python 标准库zipfile将文件夹加入压缩包的操作方法
文章图片

【Python|Python 标准库zipfile将文件夹加入压缩包的操作方法】到此这篇关于Python 标准库 zipfile 将文件夹加入压缩包的操作方法的文章就介绍到这了,更多相关Python zipfile压缩包内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    推荐阅读