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 SQLite3数据库操作类分享
Jun 10 Python
详解Python中的装饰器、闭包和functools的教程
Apr 02 Python
Python中字典映射类型的学习教程
Aug 20 Python
Python实现连接postgresql数据库的方法分析
Dec 27 Python
Python使用functools实现注解同步方法
Feb 06 Python
pandas 空的dataframe 插入列名的示例
Oct 30 Python
python实现word文档批量转成自定义格式的excel文档的思路及实例代码
Feb 21 Python
Python装饰器如何实现修复过程解析
Sep 05 Python
python GUI计算器的实现
Oct 09 Python
pandas处理csv文件的方法步骤
Oct 16 Python
python Timer 类使用介绍
Dec 28 Python
Python带你从浅入深探究Tuple(基础篇)
May 15 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字符串函数系列之nl2br(),在字符串中的每个新行 (\n) 之前插入 HTML 换行符br
2011/11/10 PHP
PHP利用MySQL保存session的实现思路及示例代码
2014/09/09 PHP
PHP中异常处理的一些方法整理
2015/07/03 PHP
php图片添加文字水印实现代码
2016/03/15 PHP
PHP的PDO操作简单示例
2016/03/30 PHP
Laravel中服务提供者和门面模式的入门介绍
2017/11/06 PHP
javascript div 遮罩层封锁整个页面
2009/07/10 Javascript
对xmlHttp对象的理解
2011/01/17 Javascript
javaScript NameSpace 简单说明介绍
2013/07/18 Javascript
JQuery 获取json数据$.getJSON方法的实例代码
2013/08/02 Javascript
js 文本滚动效果的实例代码
2013/08/17 Javascript
Jquery Ajax方法传值到action的方法
2014/05/11 Javascript
使用javascript实现监控视频播放并打印日志
2015/01/05 Javascript
使用VS开发 Node.js指南
2015/01/06 Javascript
简单实现限制uploadify上传个数
2015/11/16 Javascript
Angular实现form自动布局
2016/01/28 Javascript
Angular.js实现注册系统的实例详解
2016/12/18 Javascript
angular5 子组件监听父组件传入值的变化方法
2018/09/30 Javascript
Javascript中的this,bind和that使用实例
2019/12/05 Javascript
javascript实现超好看的3D烟花特效
2020/01/01 Javascript
决策树的python实现方法
2014/11/18 Python
Python中一些不为人知的基础技巧总结
2018/05/19 Python
pandas pivot_table() 按日期分多列数据的方法
2018/11/16 Python
基于PyQt4和PySide实现输入对话框效果
2019/02/27 Python
Python GUI编程学习笔记之tkinter事件绑定操作详解
2020/03/30 Python
Top Villas美国:豪华别墅出租和度假屋
2018/07/10 全球购物
介绍一下SQL注入攻击的种类和防范手段
2012/02/18 面试题
法制宣传月活动方案
2014/05/11 职场文书
电子信息工程专业求职信
2014/06/28 职场文书
逃课检讨书怎么写
2015/01/01 职场文书
内勤岗位职责
2015/02/10 职场文书
2015年重阳节活动主持词
2015/07/30 职场文书
“学党章、守党纪、讲党规”学习心得体会
2016/01/14 职场文书
浅谈mysql执行过程以及顺序
2021/05/12 MySQL
Python还能这么玩之只用30行代码从excel提取个人值班表
2021/06/05 Python
golang中的struct操作
2021/11/11 Golang