Python zipfile压缩文件和文件夹(支持多级目录)
2020-10-31 13:05
1761 查看
支持压缩单个文件和多级文件夹
使用方法
zip_compress(to_zip,save_zip_name):#to_zip表示源文件或者源目录,save_zip_name表示目的zip文件(可带目录)
思路:
先判断目的文件目录是否存在,如果不存在,就创建;
判断被压缩的是文件还是目录
如果是文件,直接压缩
如果是目录,遍历后逐一压缩
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import os,zipfile def zip_compress(to_zip,save_zip_name):#save_zip_name是带目录的,也可以不带就是当前目录 #1.先判断输出save_zip_name的上级是否存在(判断绝对目录),否则创建目录 save_zip_dir=os.path.split(os.path.abspath(save_zip_name))[0]#save_zip_name的上级目录 print(save_zip_dir) if not os.path.exists(save_zip_dir): os.makedirs(save_zip_dir) print('创建新目录%s'%save_zip_dir) f = zipfile.ZipFile(os.path.abspath(save_zip_name),'w',zipfile.ZIP_DEFLATED) # 71f0 2.判断要被压缩的to_zip是否目录还是文件,是目录就遍历操作,是文件直接压缩 if not os.path.isdir(os.path.abspath(to_zip)):#如果不是目录,那就是文件 if os.path.exists(os.path.abspath(to_zip)):#判断文件是否存在 f.write(to_zip) f.close() print('%s压缩为%s' % (to_zip, save_zip_name)) else: print ('%s文件不存在'%os.path.abspath(to_zip)) else: if os.path.exists(os.path.abspath(to_zip)):#判断目录是否存在,遍历目录 zipList = [] for dir,subdirs,files in os.walk(to_zip):#遍历目录,加入列表 for fileItem in files: zipList.append(os.path.join(dir,fileItem)) # print('a',zipList[-1]) for dirItem in subdirs: zipList.append(os.path.join(dir,dirItem)) # print('b',zipList[-1]) #读取列表压缩目录和文件 for i in zipList: f.write(i,i.replace(to_zip,''))#replace是减少压缩文件的一层目录,即压缩文件不包括to_zip这个目录 # print('%s压缩到%s'%(i,save_zip_name)) f.close() print('%s压缩为%s' % (to_zip, save_zip_name)) else: print('%s文件夹不存在' % os.path.abspath(to_zip))
相关文章推荐
- python基础-文件目录压缩(zipfile模块)
- 在python中使用zipfile压缩文件时层级很多,有很多层目录,但是需要去除这些层级目录
- 支持zip的压缩,zip的解压【支持一级目录的,不支持多级】
- 【python】详解zipfile模块读取处理压缩文件实例
- 使用ZLIB生成DLL文件,并进行有中文的ZIP文件压缩与解压操作!支持目录压与解!
- 列出zip文件内全部内容 当前目录下的所有文件压缩成zip格式的文件(file.zip)
- Python——ZipFile操作压缩文件
- python的zipfile实现文件目录解压缩
- Python 批量压缩png 支持过滤个别文件和文件夹
- python 多级目录压缩解压文件
- Python压缩指定文件及文件夹为zip
- python用zipfile模块打包文件或是目录、解压zip文件实例
- python zipfile 压缩目录
- 一个修改过的python zifile的包装模块,支持对目录压缩(包括空的文件夹),解压缩会解压缩空目录
- python zipfile压缩解压缩目录
- python用zipfile模块打包文件或是目录、解压zip文件实例
- Python实现多级目录压缩与解压文件的方法
- python实践项目十:zipfile模块-将一个文件夹备份到一个 ZIP 文件
- 跨平台的zip文件压缩处理,支持压缩解压文件夹
- C#多级文件夹及文件的zip压缩解压