python生成多级文件夹_Python zipfile压缩文件和文件夹(支持多级目录)
支持压缩单个文件和多级文件夹
使用方法
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)
# 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生成多级文件夹_Python zipfile压缩文件和文件夹(支持多级目录)相关推荐
- python的zipfile压缩文件夹_python zipfile压缩使用说明
压缩 f=zipfile.ZipFile(file, mode="r", compression=ZIP_STORED, allowZip64=False) 创建一个zip文件对象 ...
- 如何在cmd运行python文件夹_python怎么在cmd运行文件夹
学习Python的人都知道数组是最常用的的数据类型,为了保证程序的正确性,需要调试程序. 因此,需要在程序中控制台中打印数组的全部元素,如果数组的容量较小,例如 只含有10个元素,采用print命令或 ...
- 如何用python生成可执行程序必须经过_python怎么生成可执行文件
.py文件:对于开源项目或62616964757a686964616fe58685e5aeb931333363393664者源码没那么重要的,直接提供源码,需要使用者自行安装Python并且安装依赖的 ...
- python打包成pyc文件发布_Python 使用pyinstaller将py文件发布成exe程序
一. Pyinstaller简介 Python是一个脚本语言,被解释器解释执行.它的发布方式: .py文件:对于开源项目或者源码没那么重要的,直接提供源码,需要使用者自行安装Python并且安装依赖的 ...
- linux打压缩包去掉某个文件夹,linux tar压缩排除某个文件夹的方法
一般直接用tar命令打包很简单,直接使用 tar -zcvf test.tar.gz test 即可. 在很多时候,我们要对某一个目录打包,而这个目录下有几十个子目录和子文件,我们需要在打包的时候排除 ...
- linux递归创建文件夹_Python中并发请求创建文件夹带来的线程安全问题
在我们日常写程序的过程中,免不了与文件系统打交道,各种开发语言都提供了与文件系统交互的指令函数,比如Python中的os模块,就提供了许多这样的指令函数,今天就以创建文件夹为例,来说一下,如果用的不当 ...
- python生成随机整数列表_python生成随机整数
原博文 2019-10-08 11:09 − python生成随机不重复的整数,用random中的sample index = random.sample(range(0,10),10) 上面是生成不 ...
- python下载文件保存_Python根据URL地址下载文件并保存至对应目录的实现
引言 在编程中经常会遇到图片等数据集将图片等数据以URL形式存储在txt文档中,为便于后续的分析,需要将其下载下来,并按照文件夹分类存储.本文以Github中Alexander Kim提供的图片分类数 ...
- python3 读取文件夹_python读取listPython3如何检查文件或文件夹是否存在?
如何检查一个文件或者文件夹存在?有几种方法,Python2和Python3版本也有不同,这是在文件操作中常用到的方法,只有文件存在我们才可以继续对文件进行处理,下面总结了常用的检查文件是否存在的方法. ...
最新文章
- DNS基础及域名系统架构
- 【Python】反转列表 list 的几种方法
- Android开发之虹软人脸识别活体检测基本步骤
- CodeForces - 1189A ----Keanu Reeves
- 前后端分离,如何解决跨域问题
- asp.net 将此项目作为引用添加将导致循环依赖项
- 智器SmartQ T7历险记
- 多余元素删除(多种代码)
- css 默认显示滚动条,css控制默认滚动条样式
- 各种图片格式综述(转载)
- 【正则】1302- 快速上手常用正则表达式
- 口袋冒险家如何用电脑玩 口袋冒险家PC电脑版玩法教程
- 为你揭露2018微信公开课pro的12个重点
- df磁盘容量>>du磁盘容量——磁盘容量告警排查与解决
- 基于jsp+mysql+ssm知了堂财务报账管理系统-计算机毕业设计
- 更换主板开机logo
- Mac推荐视频播放器ElmediaPlayer
- oppo版root软件获取,oppo如何获取root
- ARChon 分析之五 : chrome-app的开发方法
- 终于把 Spring Boot 3.0 写成书了!