python进行rar、tar、unzip解压

2023-11-04

参考文章链接:https://blog.csdn.net/qq_22865879/article/details/120849457

1、python进行rar解压:

(1)、需要使用Python的rarfile工具包;

下载地址: http://sourceforge.net/projects/rarfile.berlios/files/rarfile-2.4.tar.gz/download

复制到Python安装文件夹的/Scripts 文件夹下,在当前窗体打开命令行,

输入pip install rarfile-2.4.tar.gz进行安装。

(2)、程序中使用

import os

import rarfile

unf= rarfile.RarFile(filename)

#需要有解压文件,指定解压程序的路径文件

rarfile.UNRAR_TOOL="C:\\Program Files\\WinRAR\\UnRAR.exe"

unf.extract(member=unf.namelist()[0],path=None,pwd=None) #这个解压文件包中的第几个文件

unf.extractall(destDir,members=None,pwd=None) #解压出来所有文件

2、gz: 即gzip。通常仅仅能压缩一个文件。与tar结合起来就能够实现先打包,再压缩。

因为gz一般仅仅压缩一个文件,全部常与其它打包工具一起工作。比方能够先用tar打包为XXX.tar,然后在压缩为XXX.tar.gz

解压gz,事实上就是读出当中的单一文件

def un_gz(file_name):

"""ungz zip file"""

f_name = file_name.replace(".gz", "")

#获取文件的名称,去掉

g_file = gzip.GzipFile(file_name)

#创建gzip对象

open(f_name, "w+").write(g_file.read())

#gzip对象用read()打开后,写入open()建立的文件里。

g_file.close()

#关闭gzip对象

3、tar: linux系统下的打包工具。仅仅打包。不压缩

XXX.tar.gz解压后得到XXX.tar,还要进一步解压出来。

注:tgz与tar.gz是同样的格式,老版本号DOS扩展名最多三个字符,故用tgz表示。

因为这里有多个文件,我们先读取全部文件名称。然后解压。例如以下:

注:tgz文件与tar文件同样的解压方法。

def un_tar(file_name):

# untar zip file"""

tar = tarfile.open(file_name)

names = tar.getnames()

if os.path.isdir(file_name + "_files"):

pass

else:

os.mkdir(file_name + "_files")

#因为解压后是很多文件,预先建立同名目录

for name in names:

tar.extract(name, file_name + "_files/")

tar.close()

4、zip: 不同于gzip。尽管使用相似的算法,能够打包压缩多个文件。只是分别压缩文件。压缩率低于tar。

与tar类似,先读取多个文件名称,然后解压。例如以下:

def un_zip(file_name):

"""unzip zip file"""

zip_file = zipfile.ZipFile(file_name)

if os.path.isdir(file_name + "_files"):

pass

else:

os.mkdir(file_name + "_files")

for names in zip_file.namelist():

zip_file.extract(names,file_name + "_files/")

zip_file.close()

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python进行rar、tar、unzip解压 的相关文章

随机推荐

  • FastJson解析继承/解析多态/反序列化去解析json

    我这个是在和外围系统调用时用到的 所以我不可能让他们去改返回的报文内容 也就是有的方法里说用SerializerFeature WriteClassName 定义一个interface或者class 其实都一样 public interfa
  • vi 编辑器总结

    创建文件 vi 一 进入vi的命令 vi filename 打开或新建文件 并将光标置于第一行首 vi n filename 打开文件 并将光标置于第n行首 vi filename 打开文件 并将光标置于最后一行首 vi pattern f
  • springboot-2.3.x最新版源码阅读环境搭建-基于gradle构建(全网首发)

    springboot 2 3 x最新版源码阅读环境搭建 基于gradle构建 全网首发 文章目录 springboot 2 3 x最新版源码阅读环境搭建 基于gradle构建 全网首发 一 前言 二 环境准备 三 下载源码 四 开始构建 五
  • 堆排序详解

    堆排序是必须要会手写的 背景介绍 堆是一种非线性数据结构 大顶堆 每个结点的值都大于或等于其左右孩子结点的值 小顶堆 每个结点的值都小于或等于其左右孩子结点的值 原理 1 从最后一个非叶子结点开始 从左到右 从上到下 与父节点进行交换 构建
  • 【编程测试题】保卫方案

    题目描述 战争游戏的至关重要环节就要到来了 这次的结果将决定王国的生死存亡 小B负责首都的防卫工作 首都位于一个四面环山的盆地中 周围的n个小山构成一个环 作为预警措施 小B计划在每个小山上设置一个观察哨 日夜不停的瞭望周围发生的情况 一旦
  • java三种注释_java注释的三种形式分别是什么

    java注释的三种形式分别是 1 单行注释 如 单行注释 2 多行注释 如 多行注释 3 文档注释 如 author JAVA的注释共有三种形式 单行注释 多行注释 文档注释 推荐教程 java课程 1 单行注释public class o
  • vue项目第四天

    使用elementui tabplane组件实现历史访问记录组件的二次封装
  • 关于windows11安装vc6.0闪退解决问题

    前两天刚升级成为windows11用户 可是突然发现windows11安装了vc6 0打开就闪退 最后才发现是windows11不兼容 解决方法如下 1 打开安装包找到如下文件 2 找到下面文件 3 找到MSDEV EXE文件 4 将MSD
  • 浏览器Uncaught QuotaExceededError错误(localStorage超出限额)

    Web Storage网络存储 HTML5的Web Storage网络存储是指网络应用程序用于在网络浏览器存储方法和通讯协议 支持持久数据存储 类似于Cookie 以及window local存储 网络存储又分为localStorage本地
  • 数电基础一:原码、反码和补码

    一 原理和计算 1 原码 在数字电路中 我们用逻辑电路输出的高低电平表示二进制码1 0 我们有时候需要对正数和负数进行操作 但是在二进制逻辑电路中只有0和1 并没有负号 所以我们在数值的最高位添0表示正数 添1表示负数 这样的数就叫原码 2
  • nacos配置中心的命名空间&配置集&配置id&配置分组

    命名空间 配置集 配置id 配置分组 命名空间 用作配置隔离 一般每个微服务一个命名空间 默认public 默认新增的配置都在public空间下 开发 测试 开发可以用命名空间分割 properties每个空间有一份 也可以为每个微服务配置
  • 震源球(沙滩球)

    震源球的三个重要参数 走向 strike 倾角 dip 滑动角 rake 走向 strike 断层的走向是断层面和水平面的交线 它有两个方向 相差180 为了明确起见 规定选取站在上盘面对下盘向右看的方向为断层面走向 记作 其取值范围为 0
  • 使用vscode进行远程调试

    官方调试手册 vscode官方调试手册 1 安装python扩展 如果是远程连接的话 一定要在ssh上启用扩展 不然创建基于python的配置文件时就会提示 无python扩展 2 新建配置文件 并修改参数 点击左侧第四个按钮 运行与调试
  • 小破孩&小屁妮

    偶闻 小破孩放出限量版情侣衫 毫不犹豫地就订了一套 很PP的 周末穿着大街上走了一圈 嘿 怪吸引眼球的
  • 当当网图书分析系统

    当当网图书分析系统 此系统有详细的录屏 下面只是部分截图 需要看完整录屏联系博主 系统开发语言python 框架为django 数据库mysql 分为爬虫和可视化分析
  • 力扣75.颜色分类 && 用异或swap时的注意事项。

    问题描述 在做 力扣75 颜色分类时候遇到的问题 荷兰国旗问题 代码正常写 但最后提交出现多次错误 代码 class Solution public void swap int a int b a b b a a b void sortCo
  • ERROR: Cannot create variant 'android-lint' after configuration ':sdk:debugRuntimeElements' has been

    最近项目添加model的时报错 看着错误信息眼熟 在此记录一下解决方法 错误信息 ERROR Cannot create variant android lint after configuration sdk debugRuntimeEl
  • thinkphp5学习路程 六 实现分页功能

    实现分页的功能具体的就是这个 paginate paginate 10 20 代表的含义就是一页显示10条数据 显示20页 public function test 查询数据库 result Db table user gt where i
  • 疯狂的联邦学习!研究员年薪百万?

    码农不容易 我这十几年一直在学习 停都停不下来 因为互联网技术发展真的造化弄人 上学那会儿 老师说C 有前途 因为大多数的企业都用它来写服务器程序 过了两年突然原来这个世界是Java的 遂挑灯恶补Spring 然而 技术永远在诞生新的 概念
  • python进行rar、tar、unzip解压

    参考文章链接 https blog csdn net qq 22865879 article details 120849457 1 python进行rar解压 1 需要使用Python的rarfile工具包 下载地址 http sourc