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使用urllib2模块获取gravatar头像实例
Dec 18 Python
python网络编程示例(客户端与服务端)
Apr 24 Python
更改Ubuntu默认python版本的两种方法python-> Anaconda
Dec 18 Python
Python用sndhdr模块识别音频格式详解
Jan 11 Python
Python实现的径向基(RBF)神经网络示例
Feb 06 Python
基于python3 OpenCV3实现静态图片人脸识别
May 25 Python
python机器人运动范围问题的解答
Apr 29 Python
Python异常处理例题整理
Jul 07 Python
推荐8款常用的Python GUI图形界面开发框架
Feb 23 Python
Window系统下Python如何安装OpenCV库
Mar 05 Python
python 中不同包 类 方法 之间的调用详解
Mar 09 Python
解决django中form表单设置action后无法回到原页面的问题
Mar 13 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
ThinkPHP学习笔记(一)ThinkPHP部署
2014/06/22 PHP
Javascript 获取LI里的内容
2008/12/17 Javascript
一个可以随意添加多个序列的tag函数
2009/07/21 Javascript
extjs中form与grid交互数据(record)的方法
2013/08/29 Javascript
把文本中的URL地址转换为可点击链接的JavaScript、PHP自定义函数
2014/07/29 Javascript
ie8模式下click无反应点击option无反应的解决方法
2014/10/11 Javascript
JS数字抽奖游戏实现方法
2015/05/04 Javascript
angular.js之路由的选择方法
2016/09/24 Javascript
JS中this上下文对象使用方式
2016/10/09 Javascript
详解Node.js开发中的express-session
2017/05/19 Javascript
js实现从左向右滑动式轮播图效果
2017/07/07 Javascript
Javascript快速实现浏览器系统通知
2017/08/26 Javascript
vue.js提交按钮时进行简单的if判断表达式详解
2018/08/08 Javascript
vue实现的微信机器人聊天功能案例【附源码下载】
2019/02/18 Javascript
微信小程序上传多图到服务器并获取返回的路径
2019/05/05 Javascript
使用layui定义一个模块并使用的例子
2019/09/14 Javascript
详解Nuxt.js 实战集锦
2019/11/19 Javascript
Javascript实现秒表计时游戏
2020/05/27 Javascript
[03:22]DSPL第一期精彩集锦:酷炫到底!
2014/11/07 DOTA
在CentOS上配置Nginx+Gunicorn+Python+Flask环境的教程
2016/06/07 Python
有趣的python小程序分享
2017/12/05 Python
matplotlib savefig 保存图片大小的实例
2018/05/24 Python
使用Python代码实现Linux中的ls遍历目录命令的实例代码
2019/09/07 Python
numpy ndarray 取出满足特定条件的某些行实例
2019/12/05 Python
Python 实现OpenCV格式和PIL.Image格式互转
2020/01/09 Python
Html5元素及基本语法详解
2016/08/02 HTML / CSS
HTML5页面音视频在微信和app下自动播放的实现方法
2016/10/20 HTML / CSS
澳大利亚优惠网站:Deals.com.au
2019/07/02 全球购物
您在慕尼黑的跑步商店:Lauf-bar
2019/10/11 全球购物
在使用非全零作为空指针内部表达的机器上, NULL是如何定义
2014/11/09 面试题
工商管理实习生自我鉴定范文
2013/12/18 职场文书
植树节口号
2014/06/21 职场文书
英语三分钟演讲稿
2014/08/19 职场文书
Go Gin实现文件上传下载的示例代码
2021/04/02 Golang
PL350与SW11的比较
2021/04/22 无线电
nginx从安装到配置详细说明(安装,安全配置,防盗链,动静分离,配置 HTTPS,性能优化)
2022/02/12 Servers