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 输出一个两行字符的变量
Feb 05 Python
Python发送Email方法实例
Aug 21 Python
浅谈python多线程和队列管理shell程序
Aug 04 Python
python tkinter界面居中显示的方法
Oct 11 Python
Python实现钉钉发送报警消息的方法
Feb 20 Python
pytorch实现mnist分类的示例讲解
Jan 10 Python
Python3自定义json逐层解析器代码
May 11 Python
opencv 阈值分割的具体使用
Jul 08 Python
解决pyinstaller 打包exe文件太大,用pipenv 缩小exe的问题
Jul 13 Python
Python列表元素删除和remove()方法详解
Jan 04 Python
五分钟学会怎么用python做一个简单的贪吃蛇
Jan 12 Python
Django后端按照日期查询的方法教程
Feb 28 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和ACCESS写聊天室(四)
2006/10/09 PHP
php 将bmp图片转为jpg等其他任意格式的图片
2009/06/21 PHP
PHP Curl模拟登录微信公众平台、新浪微博实例代码
2016/01/28 PHP
php文件管理基本功能简单操作
2017/01/16 PHP
php7安装mongoDB扩展的方法分析
2017/08/02 PHP
TP5框架页面跳转样式操作示例
2020/04/05 PHP
PHP与Web页面交互操作实例分析
2020/06/02 PHP
对JavaScript的eval()中使用函数的进一步讨论
2008/07/26 Javascript
ajax 文件上传应用简单实现
2009/03/03 Javascript
jQuery1.4.2与老版本json格式兼容的解决方法
2011/02/12 Javascript
让js弹出窗口居前显示的实现方法
2013/07/10 Javascript
Javascript实现鼠标框选操作  不是点击选取
2016/04/14 Javascript
JS弹出窗口插件zDialog简单用法示例
2016/06/12 Javascript
js实现简单的选项卡效果
2017/02/23 Javascript
利用node.js爬取指定排名网站的JS引用库详解
2017/07/25 Javascript
vue.js实现点击后动态添加class及删除同级class的实现代码
2018/04/04 Javascript
JS中判断字符串存在和非空的方法
2018/09/12 Javascript
微信小程序实现的3d轮播图效果示例【基于swiper组件】
2018/12/11 Javascript
详解几十行代码实现一个vue的状态管理
2019/01/28 Javascript
使用pm2部署node生产环境的方法步骤
2019/03/09 Javascript
React 实现车牌键盘的示例代码
2019/12/20 Javascript
详解Vue3 Composition API中的提取和重用逻辑
2020/04/29 Javascript
[02:40]2018年度DOTA2最佳新人-完美盛典
2018/12/16 DOTA
Python实现配置文件备份的方法
2015/07/30 Python
python面向对象_详谈类的继承与方法的重载
2017/06/07 Python
python使用pil进行图像处理(等比例压缩、裁剪)实例代码
2017/12/11 Python
Python socket实现的简单通信功能示例
2018/08/21 Python
python项目对接钉钉SDK的实现
2019/07/15 Python
Python实现验证码识别
2020/06/15 Python
Python 数据的累加与统计的示例代码
2020/08/03 Python
Notino希腊:购买香水和美容产品
2019/07/25 全球购物
酒店员工培训方案
2014/06/02 职场文书
综合素质自我评价怎么写
2014/09/14 职场文书
个人事迹材料范文
2014/12/29 职场文书
八年级作文之我的母亲
2019/12/10 职场文书
Java异常处理try catch的基本用法
2021/12/06 Java/Android