我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎样用Python解压缩*.tgz文件

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎样用Python解压缩*.tgz文件

怎样用Python解压缩*.tgz文件

KnightPython:

正如*大熊*所说,使用tarfile模块即可:
import tarfile
tarobj = tarfile.open("my_backup_file.tgz", "r:gz")
for tarinfo in tarobj:
    tarobj.extract(tarinfo.name, r"d:/temp/backup")
tarobj.close()
十分感谢!

============

把 cygwin/msys/mingw 的 tar.exe、gzip.exe、gunzip.exe 这些一块拷过去,
使用
os.system() 调用

=============

Windows下最常见的压缩文件只有两种,.zip和.rar。可是Linux就不同了,有.Z、bz2、.gz、.tar、.tar.gz等众多的压 缩文件名,它们分别对应了各种压缩打包命令。要了解这些压缩打包命令的使用,首先要弄清两个概念:打包和压缩。打包是指将一大堆文件或目录什么的变成一个 总的文件,压缩则是将一个大的文件通过一些压缩算法变成一个小文件。Linux中的很多压缩命令只能针对一个文件进行压缩,当要压缩一大堆文件时,就得先 借助打包命令将这一大堆文件先打成一个包,然后再用压缩命令进行压缩。因此打包命令在Linux的应用中具有很重要的作用。
Linux下最常用的打包命令就是tar,使用tar命令打包后,就可以用其它的命令来进行压缩了。tar命令的使用方法如下:

tar [-cxtzjvfpPN] 文件与目录
参数说明:
-c :建立一个打包文件;
-x :解开一个打包文件;
-t :查看 tar包里面的文件;
(特别注意,在选择参数时,c/x/t仅能存在一个,不可同时存在,因为不可能同时压缩与解压缩。)
-z :打包后用gzip压缩,生成.tar.gz文件;
-j :打包后用zip2压缩,生成.tar.bz2文件;
-v :压缩的过程中显示文件;
-f :使用文件名,请留意,在f之后要立即接文件名,不要再加其它参数;
-p :保持原文件的属性;
-P :使用绝对路径来压缩;
-N :设定日期(yyyy/mm/dd),比后面接的日期还要新的文件才会被打包进新建的文件中;
--exclude FILE:在打包的过程中,不要将FILE打包。

举几个例子:

例一:将整个/etc目录下的文件全部打包成为/tmp/etc.tar
tar -cvf /tmp/etc.tar /etc  #仅打包,不压缩
tar -zcvf /tmp/etc.tar.gz /etc  #打包后,以gzip压缩
tar -jcvf /tmp/etc.tar.bz2 /etc  #打包后,以bzip2压缩

例二:查阅上述/tmp/etc.tar.gz文件内有哪些文件
tar -ztvf /tmp/etc.tar.gz

例三:将/tmp/etc.tar.gz文件解压缩到/usr/local/class="lazy" data-src下
cd /usr/local/class="lazy" data-src   #先将工作目录变换到/usr/local/class="lazy" data-src下
tar -zxvf /tmp/etc.tar.gz
  
例四:只将/tmp/etc.tar.gz内的etc/passwd解压到/tmp下
cd /tmp
tar -zxvf /tmp/etc.tar.gz etc/passwd

例五:将/etc内的所有文件备份下来,并且保存其权限!
tar -zxvpf /tmp/etc.tar.gz /etc

例六:在/home当中,比2005/06/01新的文件才备份
tar -N '2005/06/01' -zcvf home.tar.gz /home

例七:备份/home、/etc,但不要/home/dmtsai
tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc

例八:将/etc打包后直接解开在/tmp底下,而不产生文件!
cd /tmp
tar -cvf - /etc | tar -xvf -





现在有一个需求,不知道该如何才能实现
压缩: tar czvf /data/backup/test.tar.gz /data/a/b/directory
解压:
cd /data/test
tar xzvf /data/backup/test.tar.gz

问题是,解压后的文件,在/data/test/data/a/b/directory里面
能否压缩时只保留directory以下的所有目录,以directory作为/,而不是/data/a/b/directory?

问题已经解决,找到了GNU tar的官方资料
http://www.delorie.com/gnu/docs/tar/tar_98.html

这样写就可以解决了
tar czvf /data/backup/test.tar.gz /data/a/b/directory
改成
tar czvf /data/backup/test.tar.gz -C /data/a/b(空格)directory


-C是临时切换工作目录,-P是绝对路径,在这里只用到-C参数就行了

================

之前写了一个自动解压压缩文件到压缩文件所在文件夹的脚本
后根据自己需要,写了另外两个。原理一样
都是使用winrar的命令
第一个脚本没考虑周到,只能解压rar文件
改进后可以支持winrar支持的各种文件
把指定文件夹下的文件保存到指定文件夹
#rardir.py
import os
import sys
class="lazy" data-src=sys.argv[1]
dst=sys.argv[2]
format=['rar','zip','7z','ace','arj','bz2','cab','gz','iso','jar','lzh','tar','uue','z']
os.chdir(sys.argv[1])
for file in os.listdir('.'):
if os.path.isfile(file) and (os.path.splitext(file)[1][1:].lower() in format)==True:
#cmd='winrar x -ibck "'+file+'" "'+dst+'//'+os.path.splitext(file)[0]+'//"'
cmd='winrar x -ibck "'+file+'" "'+dst+'//"'
os.system(cmd)
os.remove(file)
print('done '+file)
第一个版本的改进
#rardecmp.py
#decompress with winrar
#arguments :filename directory opt
# opt='mkdir' to create directory with the correspond filename
# opt='direct' to decompress rar files in current directory
# opt='mk&del' to mkdir and delete rar file
import os
import sys
if len(sys.argv)!=3:
print ('wrong arguments/n')
print ('rar.py directory opt/n')
print ('opt=/'mkdir/' to create directory with the correspond filename/n')
print ('opt=/'direct/' to decompress rar files in current directory/n')
print ('opt=/'diredel/' to decompress rar files in current directory and delete files/n')
print ('opt=/'mkdel/' to mkdir and delete rar file/n')
exit(0)
#-ibck ,minimized when running
opt=sys.argv[2]
os.chdir(sys.argv[1])
format=['rar','zip','7z','ace','arj','bz2','cab','gz','iso','jar','lzh','tar','uue','z']
for file in os.listdir('.'):
if os.path.isfile(file) and (os.path.splitext(file)[1][1:].lower() in format)==True:
if opt=='mkdir':
cmd='winrar x -ibck "'+file+'"'+' "'+os.path.splitext(file)[0]+'"//'
os.system(cmd)
elif opt=='direct':
cmd='winrar x -ibck "'+file+'"'
os.system(cmd)
......

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

怎样用Python解压缩*.tgz文件

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

怎样用Python解压缩*.tgz文件

怎样用Python解压缩*.tgz文件KnightPython:正如*大熊*所说,使用tarfile模块即可:import tarfiletarobj = tarfile.open("my_backup_file.tgz", "r:gz")
2023-01-31

怎样在Linux中压缩和解压缩文件

这期内容当中小编将会给大家带来有关怎样在Linux中压缩和解压缩文件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。当在备份重要文件和通过网络发送大文件的时候,对文件进行压缩非常有用。请注意,压缩一个已经压
2023-06-16

Python压缩/解压gzip大文件

Code tells all:#encoding=utf-8#author: walker#date: 2015-10-26#summary: 测试gzip压缩/解压文件import gzip  BufSize = 1024*8      
2023-01-31

Python 解压缩文件详解

zipfile模块及相关方法介绍:1 压缩1.1 创建zipfile对象zipfile.ZipFile(file, mode='r', compression=0, allowZip64=True, compresslevel=None)创
2023-01-31

python解压缩文件怎么实现

可以使用Python中的zipfile模块来解压缩文件。下面是一个简单的示例代码:import zipfiledef unzip_file(zip_file, extract_dir):with zipfile.ZipFile(zip_f
python解压缩文件怎么实现
2024-03-06

Python怎么批量解压和压缩文件夹

这篇文章主要介绍“Python怎么批量解压和压缩文件夹”,在日常操作中,相信很多人在Python怎么批量解压和压缩文件夹问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python怎么批量解压和压缩文件夹”的疑
2023-06-29

Python中怎么压缩文件

Python中怎么压缩文件,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。可扩充性可说是Python作为一种编程语言的特色。新的内置模块(module)可以用C 或 C++写成。
2023-06-17

怎么在Linux中压缩及解压缩文件

这篇文章主要讲解了“怎么在Linux中压缩及解压缩文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么在Linux中压缩及解压缩文件”吧!对文件进行压缩,可以通过使用较少的字节对文件中的数
2023-06-16

Linux怎样加密压缩文件及文件夹

Linux怎样加密压缩文件及文件夹,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。zip -rem folder.zip folder 用zip命令对文件夹进行加
2023-06-05

Python压缩解压缩zip文件及破解zip文件密码的方法

python 的 zipfile 提供了非常便捷的方法来压缩和解压 zip 文件。 例如,在py脚本所在目录中,有如下文件:readability/readability.js readability/readability.txt rea
2022-06-04

Linux怎么解压、压缩gz文件

这篇文章主要介绍“Linux怎么解压、压缩gz文件”,在日常操作中,相信很多人在Linux怎么解压、压缩gz文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux怎么解压、压缩gz文件”的疑惑有所帮助!
2023-06-28

如何使用Python破解压缩文件

这篇文章主要介绍如何使用Python破解压缩文件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!其实都大同小异:无非就是字典爆破,就看你是有现成密码字典,还是自己生成密码字典,然后进行循环输入密码,直到输入正确位置。现
2023-06-14

使用Python读写及压缩和解压缩文件的示例

读写文件 首先看一个例子:f = open('thefile.txt','w') #以写方式打开, try:f.write('wokao') finally:f.close()文件的打开方式:f = open(‘文件','mode') ‘
2022-06-04

Linux压缩文件格式是怎样的

这期内容当中小编将会给大家带来有关Linux压缩文件格式总结是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。对于刚刚接触Linux的人来说,一定会给Linux下一大堆各式各样的文件名给搞晕。别个不说
2023-06-13

利用Java怎么对文件进行压缩与解压缩

今天就跟大家聊聊有关利用Java怎么对文件进行压缩与解压缩,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。用java压缩/解压文件: import java.io.*; import
2023-05-31

电脑怎么解压文件压缩包

这篇“电脑怎么解压文件压缩包”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“电脑怎么解压文件压缩包”文章吧。解压文件压缩包的方
2023-07-02

go怎么压缩和解压zip文件

本篇内容主要讲解“go怎么压缩和解压zip文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“go怎么压缩和解压zip文件”吧!压缩zipfunc Zip(dest string, paths .
2023-07-02

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录