使用Python实现文件夹的压缩,做个记录,以备后查。

#!/usr/bin/python
# -*- coding:UTF-8 -*-import sys
import os,os.path
import shutil
import argparse
import zipfilecurDir=os.path.dirname(os.path.realpath(__file__))
goalDir=curDir+'\\zipFiles'def checkGoalDir(dir):if os.path.exists(dir):shutil.rmtree(dir)if not os.path.exists(dir):os.mkdir(dir)def delFile(fileName):if os.path.exists(fileName):os.remove(fileName)# 循环递归遍历文件夹
def getFloderFiles(fileDir):#记录待便利文件夹信息arr=[fileDir]fs = os.listdir(fileDir)for dir in fs:tmp_path = os.path.join(fileDir, dir)if os.path.isfile(tmp_path):arr.append(tmp_path)else:# 是文件夹,则递归调用arr.extend(getFloderFiles(tmp_path))return arrdef zipFloderFiles(fatherPath,srcDir,zipFileName):tmpArr=getFloderFiles(srcDir)file=zipfile.ZipFile(zipFileName+'.zip','w')tmpAdded=[]for fullPath in tmpArr :tp=os.path.dirname(fullPath)fileName=fullPath.replace(fatherPath,'')file.write(fullPath,fileName)file.close()def myLog(logStr):print('------'+logStr+'------')def init(path):checkGoalDir(curDir+'\\zipFiles')myLog('start zip')#获取目标目录的上一级目录fatherPath=os.path.abspath(os.path.dirname(os.path.dirname(path)))#获取目标目录名称zipName=path.replace(fatherPath,'')zipName=zipName.replace('\\','')zipFloderFiles(fatherPath,path,goalDir+'\\'+zipName)myLog('zip success')if __name__=='__main__':parser = argparse.ArgumentParser(description='Process zip floders root path.')parser.add_argument('-p', '--path', help='floder path')args = parser.parse_args()init(args.path+'\\')

注意:需要将文件夹的信息写入压缩文件,否则使用一些工具解压可能会出现问题。

比如测试文件夹如下:

压缩后的文件查看信息应该如下【要有文件夹的信息】:

参考资料:

python使用zipfile模块来压缩文件时,解决如何不带入路径的问题

Python文件夹压缩相关推荐

  1. 【Python】将文件夹压缩成zip包

    使用python将文件夹压缩成zip包的过程: 先创建空的zip文件,然后遍历读取文件夹中文件,依次塞进zip文件中,即完成压缩. 例如,要将testDir文件夹压缩成test.zip,并存放在同级目 ...

  2. Python 基础 之 zipfile 文件夹压缩/解压方法的简单整理

    Python 基础 之 zipfile 文件夹压缩/解压方法的简单整理 目录

  3. pythonshell压缩文件_文件夹压缩成zip格式

    前言: 在最近的后台开发工作中,需要将服务器的指定文件夹压缩,然后传输到前台.shell的zip命令可以很方便的实现该需求,python也有对应的模块,这里简要记录一下使用两种方式压缩文件的方法. s ...

  4. java 压缩文件tar_使用Java API进行tar.gz文件及文件夹压缩解压缩

    在java(JDK)中我们可以使用ZipOutputStream去创建zip压缩文件,(参考我之前写的文章 使用java API进行zip递归压缩文件夹以及解压 ),也可以使用GZIPOutputSt ...

  5. C# 文件/文件夹压缩解压缩

    项目上用到的,随手做个记录,哈哈. 直接上代码: 1 using System; 2 using System.Data; 3 using System.Configuration; 4 using ...

  6. 如何在cmd运行python文件夹_python怎么在cmd运行文件夹

    学习Python的人都知道数组是最常用的的数据类型,为了保证程序的正确性,需要调试程序. 因此,需要在程序中控制台中打印数组的全部元素,如果数组的容量较小,例如 只含有10个元素,采用print命令或 ...

  7. 【Auto.js】[zip压缩] 将文件夹压缩成zip包

    将一个文件夹压缩成一个zip包,可应用于项目文件夹打包成zip, 文件夹过滤了目录中的空文件夹,因此,空文件夹不会被打包到zip包中. 由于本人JS知识有限,JAVA也不懂, 导致该函数, 打包大型文 ...

  8. Java实现将文件或者文件夹压缩成zip

    Java实现将文件或者文件夹压缩成zip 最近碰到个需要下载zip压缩包的需求,于是我在网上找了下别人写好的zip工具类.但找了好多篇博客,总是发现有bug.因此就自己来写了个工具类. 这个工具类的功 ...

  9. Huffman文件压缩之文件夹压缩

    思路   应用huffman是带权路径最小二叉树这个性质,完成的文件压缩.我们可以应用这个性质.让一个文件中,每个字符出现的次数作为权值.这样离根节点越近的节点,它的字符出现的次数就越多.然后根据这个 ...

最新文章

  1. C#读取Win32标准DLL文件中的字符串资源
  2. Nginx安装echo模块
  3. 【原创】RabbitMQ 之 TTL 详解(翻译)
  4. 解决React Native unable to load script from assets index.android.bundle on windows
  5. IOS scrollView 知识点
  6. OpenCV3学习(5.1)——图像变换之缩放、金字塔、仿射、透射
  7. CentOS7 iptables安装及操作
  8. Java 实例 - 测试两个字符串区域是否相等
  9. Android开发中gitignore文件模板添加
  10. js 使用Math函数取得数组最大最少值
  11. veu项目中下载图片到本地
  12. 你不知道的网络招聘与求职潜规则
  13. numpy部份函数或命令用法(不定时更新)
  14. Unity使用脚本模拟Button按下
  15. 学生成绩排名预测(DC)
  16. 好心情精神心理科医生:如何与青春期的孩子沟通?
  17. Tensorflow 笔记 XIV——生成式对抗网络:GAN 与 CGAN
  18. 淘宝天猫京东拼多多抖音苏宁1688等平台商品详情调用(店铺商品价格监控API接口调用展示)
  19. 推荐!一个简单而又精致的博客系统
  20. 2020usnews加拿大计算机排名,2020年USNews排名之加拿大大学排名及其介绍

热门文章

  1. AE/PR插件AI智能背景抠像颜色键控GoodbyeGreenscreenzxb V1.6.0官方版
  2. QT5串口读取宇电温控器温度
  3. 当前时间距离某个时间的天数计算_Excel如何计算当前距离某一天的时间?,原来是这样的...
  4. Java实现接口(打印机)
  5. 基于android手机实时监控ipcam视频之一:RTSP
  6. tensorflow--之将数字标签转化为one-hot
  7. 公司债务法人代表有义务还吗?
  8. [MATLAB作业二]求解线性代数问题
  9. 数据库完整性--断言和触发器
  10. Javaweb支付宝支付