Python解压 rar、zip、tar文件的方法


Posted in Python onNovember 19, 2019

Q1 :如何解压 rar 压缩包文件?

A :

  • Step1:检查是否有 rarfile 第三方库,若没有该模块,则需要进行安装 ;
  • Step2:参考代码如下:
import rarfile
import os
rar=rarfile.RarFile(filename, mode='r') # mode的值只能为'r'
# 判断同名文件夹是否存在,若不存在则创建同名文件夹
if os.path.isdir(os.path.splitext(filename)[0]):
 rf_list = rf.namelist() # 得到压缩包里所有的文件 
 print('rar文件内容', rf_list) 
else:
 os.mkdir(os.path.splitext(filename)[0])
rar.extractall(os.path.splitext(filename)[0]) # 解压文件
rar.close() # 关闭文件,必须有,释放内存

Q2 :如何解压 zip 压缩包文件?

A:

可以使用RPA设计器自带的【zip 解压】组件,编写代码,则可以参考如下(注意检查是否 zipfile 第三方库,设计器自带,可直接调用):

import zipfile
import os
zip_file = zipfile.ZipFile(filename)
if os.path.isdir(os.path.splitext(filename)[0]):
 zip_list = zip_file.namelist() # 得到压缩包里所有文件 
 print('zip文件内容', zip_list) 
else:
 os.mkdir(os.path.splitext(filename)[0])
for f in zip_list:
 zip_file.extract(f, os.path.splitext(filename)[0]) # 循环解压文件到指定目录
zip_file.close()

Q3 :如何解压 tar 打包文件?

A:

注意是否安装 tarfile 第三方库,RPA设计器自带,可直接调用:

import tarfile
import os

tar = tarfile.open(filename, mode = "r:gz") #"r:gz"表示 open for reading with gzip compression
tar.extractall(path=os.path.splitext(filename)[0]) # 将tar.gz文件解压到temp文件夹下
tar.close()

补充:python解压文件、压缩文件

一、文件解压

文件解压源码如下:其中入参为zip包文件目录,出参为解压后文件夹目录,如输入 /tmp/1.zip,返回 /tmp/1/

import os
import zipfile
def unzip_resource(zip_path):
  file_name = os.path.basename(zip_path)
  file_dir = os.path.dirname(zip_path)
  if os.path.splitext(zip_path)[1] == '.zip':
    file_zip = zipfile.ZipFile(zip_path, 'r')
    for resource_file in file_zip.namelist():
      file_zip.extract(resource_file, file_dir + '/' + file_name.replace('.zip', ''))
  file_path = zip_path.replace('.zip', '')
  resource_path = file_path + '/'
  return resource_path

二、文件夹打包压缩

文件夹打包源码如下:其中入参为文件夹名称以及压缩后文件的名字

import os
import zipfile
def abcZip(dir_path, file_name):
  with zipfile.ZipFile(file_name, 'w', zipfile.ZIP_DEFLATED) as target:
    for dirpath, dirnames, filenames in os.walk(dir_path):
      fpath = dirpath.replace(dir_path, '')
      fpath = fpath and fpath + os.sep or ''
      for filename in filenames:
        # file_list.append(os.path.join(dirpath,filename))
        # print(os.path.join(dirpath,filename)
        if (filename.__contains__('.DS_Store')):
          continue
        target.write(os.path.join(dirpath, filename), fpath + filename)
  target.close()

总结

以上所述是小编给大家介绍的Python解压 rar、zip、tar文件的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
Python编程中对super函数的正确理解和用法解析
Jul 02 Python
Python中struct模块对字节流/二进制流的操作教程
Jan 21 Python
Python常见异常分类与处理方法
Jun 04 Python
你眼中的Python大牛 应该都有这份书单
Oct 31 Python
python得到qq句柄,并显示在前台的方法
Oct 14 Python
查看python安装路径及pip安装的包列表及路径
Apr 03 Python
Django框架使用mysql视图操作示例
May 15 Python
简单了解Django应用app及分布式路由
Jul 24 Python
在Pytorch中计算卷积方法的区别详解(conv2d的区别)
Jan 03 Python
python tkinter之顶层菜单、弹出菜单实例
Mar 04 Python
django haystack实现全文检索的示例代码
Jun 24 Python
详解Django中 render() 函数的使用方法
Apr 22 Python
Ubuntu下Python+Flask分分钟搭建自己的服务器教程
Nov 19 #Python
使用批处理脚本自动生成并上传NuGet包(操作方法)
Nov 19 #Python
python flask搭建web应用教程
Nov 19 #Python
在Python中使用MySQL--PyMySQL的基本使用方法
Nov 19 #Python
Python可变参数会自动填充前面的默认同名参数实例
Nov 18 #Python
python tornado修改log输出方式
Nov 18 #Python
Python3常用内置方法代码实例
Nov 18 #Python
You might like
PHP入门学习笔记之一
2010/10/12 PHP
《PHP编程最快明白》第三讲:php数组
2010/11/01 PHP
php获取服务器端mac和客户端mac的地址支持WIN/LINUX
2014/05/15 PHP
php计算指定目录下文件占用空间的方法
2015/03/13 PHP
解析WordPress中函数钩子hook的作用及基本用法
2015/12/22 PHP
tp5框架内使用tp3.2分页的方法分析
2019/05/05 PHP
php实现根据身份证获取精准年龄
2020/02/26 PHP
eval与window.eval的差别分析
2011/03/17 Javascript
兼容IE和Firefox火狐的上下、左右循环无间断滚动JS代码
2013/04/19 Javascript
文字不间断滚动(上下左右)实例代码
2013/04/21 Javascript
JS获取下拉列表所选中的TEXT和Value的实现代码
2014/01/11 Javascript
javascript数组去重小结
2016/03/07 Javascript
javascript稀疏数组(sparse array)和密集数组用法分析
2016/12/28 Javascript
js实现轮播图的两种方式(构造函数、面向对象)
2017/09/30 Javascript
vue-cli webpack模板项目搭建及打包时路径问题的解决方法
2018/02/26 Javascript
Angular2 自定义表单验证器的实现方法
2018/12/14 Javascript
如何在vue中使用百度地图添加自定义覆盖物(水波纹)
2020/11/03 Javascript
[44:15]国士无双DOTA2 6.82版本详解(上)
2014/09/28 DOTA
在Lighttpd服务器中运行Django应用的方法
2015/07/22 Python
Python中函数及默认参数的定义与调用操作实例分析
2017/07/25 Python
简单了解Django模板的使用
2017/12/20 Python
Python dict和defaultdict使用实例解析
2020/03/12 Python
keras绘制acc和loss曲线图实例
2020/06/15 Python
CSS3 Columns分列式布局方法简介
2014/05/03 HTML / CSS
HTML5 虚拟键盘出现挡住输入框的解决办法
2017/02/14 HTML / CSS
新西兰Bookabach:查找全球度假屋
2020/12/03 全球购物
应届毕业生专业个人求职自荐信格式
2013/11/20 职场文书
竞聘演讲稿范文
2014/01/12 职场文书
咖啡馆创业计划书
2014/01/26 职场文书
迟到检讨书500字
2014/02/05 职场文书
银行求职信怎么写
2014/05/26 职场文书
员工拾金不昧表扬稿
2015/05/05 职场文书
乡镇司法所2015年度工作总结
2015/10/14 职场文书
小学语文国培研修日志
2015/11/13 职场文书
Python 发送SMTP邮件的简单教程
2021/06/24 Python
SpringBoot集成MongoDB实现文件上传的步骤
2022/04/18 MongoDB