使用Python批量解压缩文件(zip,rar)

我们在前面批量爬取了PPT模板,但是下载的都是压缩文件,要是一个一个解压缩的话会耽误我们很多的时间,于是我们写一个批量解压缩的脚本去做这件事情!

# -*- coding: utf-8 -*-
//解压zip文件
import zipfile
import os
import sys//reload(sys)
//sys.setdefaultencoding('gbk') #如遇到无法识别中文而报错使用# 将zip文件解压处理,并放到指定的文件夹里面去def unzip_file(zip_file_name,destination_path):archive = zipfile.ZipFile(zip_file_name,mode='r')for file in archive.namelist():archive.extract(file, destination_path)a = "C:/Users/wy/Desktop/zipfile/zip"  #zipfile 的路径
b = "C:/Users/wy/Desktop/zipfile/unzip"   #解压到路径unzip下def zipfile_name(file_dir):# 读取文件夹下面的文件名.zipL=[]for root, dirs, files in os.walk(file_dir):for file in files:if os.path.splitext(file)[1] == '.zip':    # 读取带zip 文件L.append(os.path.join(root, file))#print(L)      return L#入口函数
def main():fn=zipfile_name(a)for file in fn:unzip_file(file,b)if __name__ == "__main__":main()
print("done")#zipfile解压中文zip文件会导致乱码,解决方案是要修改python库中的zipfile.py
#将文件中所有的'cp437'字符替换为'gbk'

发现解压的都是中文乱码,但是里面的内容还好不是中文乱码的,不过解决方案也是有的,只不过博主比较懒,就不改了

发现解压的都是zip格式的压缩包,zipfile这个库是Python自带的库,但是我们上面的rar格式的压缩包怎么办呢?当然也是有办法解压的,其实这两个库用法都差不多,我在下面写个Demo,由于本人能力有限找不到64位的unrar.dll,于是还有点错误

# -*- coding: utf-8 -*-
import zipfile
import rarfile
import os
from unrar import rarfile
import sysreload(sys)
sys.setdefaultencoding('gbk')# 将zip文件解压处理,并放到指定的文件夹里面去def unzip_file(zip_file_name,destination_path):archive = zipfile.ZipFile(zip_file_name,mode='r')for file in archive.namelist():archive.extract(file, destination_path)def unrar_file(rar_file_name,destination_path):archive = rarfile.RarFile(rar_file_name,mode='r')for file in archive.namelist():archive.extract(file, destination_path)a = "C:/Users/wy/Desktop/zipfile/zip"  #zipfile 的路径
b = "C:/Users/wy/Desktop/zipfile/unzip"   #解压到路径unzip下def zipfile_name(file_dir):# 读取文件夹下面的文件名.zipL=[]for root, dirs, files in os.walk(file_dir):for file in files:if os.path.splitext(file)[1] == '.zip':    # 读取带zip 文件L.append(os.path.join(root, file))#print(L)      return Ldef rarfile_name(file_dir):# 读取文件夹下面的文件名.rarX=[]for root, dirs, files in os.walk(file_dir):for file in files:if os.path.splitext(file)[1] == '.rar':    # 读取带rar 文件X.append(os.path.join(root, file))#print(X)      return Xdef main():fn=zipfile_name(a)bn=rarfile_name(a)for file in fn:unzip_file(file,b)for file in bn:unrar_file(file,b)if __name__ == "__main__":main()
print("done")#zipfile解压中文zip文件会导致乱码,解决方案是要修改python库中的zipfile.py,将文件中所有的'cp437'字符替换为'gbk'

由于我下载不到64位的unrar.dll,如果有人解决这个问题,请指教,不胜感激

使用Python批量解压缩文件(zip,rar)相关推荐

  1. python批量新建文件_python批量处理

    python opencv图像二值化批量处理 from skimage import data_dir,io,transform,color,filters import numpy as np im ...

  2. Python编程--解压缩文件

    Python编程–解压缩文件 基于Python内置的shutil模块可以实现对压缩文件的操作. import shutil# 1. 压缩文件 """ # base_nam ...

  3. 怎样用python批量处理文件夹_套娃式文件夹如何通过Python批量处理

    前言 在我对项目组的一些训练图像进行预处理的时候,发现处理的图像是分好了类,在文件夹里的文件夹里,套娃式存储的,所以对我批处理,以及按原文件夹规则进行存储的时候,就会造成很大困扰 但通过下面几个函数的 ...

  4. 怎样用python批量处理文件夹_python批量处理文件或文件夹

    本文实例为大家分享了python批量处理文件或文件夹的具体代码,供大家参考,具体内容如下 # -*- coding: utf-8 -*- import os,shutil import sys imp ...

  5. python删除文件和linux删除文件区别_使用Python批量删除文件列表

    使用Python批量删除文件列表 环境: 已知要删除的文件列表,即确定哪些文件要删除. 代码如下: #!/usr/bin/env python #coding=utf-8 #目的:本程序主要为删除给定 ...

  6. Python批量复制文件

    Python批量复制文件 首先需要安装shutil库 pip install pytest-shutil # -*- coding: utf-8 -*- """ Crea ...

  7. python批量移动文件_用python批量移动文件

    我是用来移动图片的,其他格式的文档也是可以的,改下后缀列表就可以了 import os,shutil import datetime #将文件夹里的图片全部移动到新文件夹中 #revised by S ...

  8. python批量转换文件编码

    python批量转换文件编码   3年之前   python 今天在 eclipse 中导入了个之前的 swing 项目,结果跑起来后乱码,检查代码发现竟然一部分 java 文件是 utf-8 编码, ...

  9. python批量修改文件扩展名

    python批量修改文件扩展名录 前言 代码如下 前言 利用python将文件夹里的.txt文件修改为.tif文件. 代码如下 import os dir='/home/下载/'#文件所在目录 fil ...

  10. python批量创建文件夹

    python批量创建文件夹 觉得有用的话,欢迎一起讨论相互学习~ 参考资料 Python:os.path.join()产生的斜杠在Windows和Linux下的不同表现和解决方法 python获取指定 ...

最新文章

  1. 手写 Spring 事务、IOC、DI 和 MVC
  2. 为什么nodejs是单进程的_Nodejs·进程
  3. boost使用Proto转换来实现的例子
  4. 雷达多普勒频率计算公式_雷达系统的用途、分类,影响雷达性能的关键要素
  5. js判断fck编辑器内容是否为空并获得焦点
  6. python:SyntaxError: invalid syntax报错
  7. 0基础学python要多久-零基础学Python的过程有多难?需要多久?
  8. yolov3从头实现(五)-- yolov3网络块
  9. 《HTML5和CSS3快速参考》——第1章 走进HTML51.1 概述
  10. 网络书店可行性分析报告
  11. (更新)视频设备通过rtsp接入amazon alexa echo show
  12. DedeCMS总是提示验证码不正确的解决方法
  13. aptana eclipse linux,eclipse Aptana 插件介绍以及安装
  14. 三周年· “三”生万物 | 步履不停,静候时代的馈赠
  15. 工作描述的介绍|如何写工作描述
  16. Ajax创建步骤内含兼容
  17. OCT-模拟集成电路设计的九个境界
  18. SecureCRT8.3 软件及注册码
  19. 移动端拍照上传到服务器
  20. 【附源码】计算机毕业设计SSM洗浴管理系统

热门文章

  1. gif转换成jpg,这个方法很简单
  2. 人脸识别php程序,教你用PHP实现微信小程序人脸识别刷脸登录功能
  3. 如何用 Python 快速开发一个网站
  4. 未联网环境下:离线安装Zsh和Oh My Zsh
  5. 学计算机去一线城市,这5个“新一线”城市在线抢人,选择去这上大学非常有前景!...
  6. ui设计 原则 要素_ui设计原则
  7. HBuilder配置浏览器
  8. java罗马数字_整数转罗马数字以及罗马数字转整数(java实现)
  9. OpenGL Assimp的骨骼动画
  10. Windows的复制粘贴快键键突然不可用的解决方案