一、使用tarfile库读取与创建tar包

0、先创建一些测试文件

touch {1..2}.txt

1、创建压缩包

In [7]: import tarfile

In [9]: with tarfile.open('demo.tar',mode='w') as out:

...:out.add('1.txt')

...:out.add('2.txt')

...:---------------------------------------------------------------------------FileNotFoundError Traceback (most recent call last) in

1 with tarfile.open('demo.tar',mode='w') as out:----> 2 out.add('1.txt')3 out.add('2.txt')4# 最后一空行直接回车即可

2、读取tar包

In [3]: with tarfile.open(‘demo.tar’) as t:

…: for file in t.getmembers():

…: print(file.name)

…:

1.txt

2.txt

3、创建压缩包

with tarfile.open(‘demo.tar.gz’,mode=’w:gz’) as out:

…: out.add(‘1.txt’)

…: out.add(‘2.txt’)

…:

4、读取压缩包

In [6]: with tarfile.open(‘demo.tar.gz’,mode=’r:gz’) as out:

…: for f in out.getmembers():

…: print(f.name)

…:

1.txt

2.txt

5、提取单个或者所有文件

In [14]: with tarfile.open(‘demo.tar.gz’,mode=’r:gz’) as out:

…: out.extract(‘1.txt’)

…:

In [15]: ls

1.txt anaconda-ks.cfg demo.tar demo.tar.gz

In [16]: with tarfile.open(‘demo.tar.gz’,mode=’r:gz’) as out:

…: out.extractall()

…:

In [17]: ls

1.txt 2.txt anaconda-ks.cfg demo.tar demo.tar.gz

二、使用zipfile库创建和读取压缩包

1、创建zip文件

In [1]: import zipfile

In [2]: newZip = zipfile.ZipFile(‘demo.zip’,’w’)

In [3]: newZip.write(‘1.txt’)

In [4]: newZip.write(‘2.txt’)

In [5]: newZip.close()

In [6]: ls

1.txt 2.txt anaconda-ks.cfg demo.tar demo.tar.gz demo.zip

2、读取zip文件

In [7]: newZip = zipfile.ZipFile(‘demo.zip’)

In [8]: newZip.namelist()

Out[8]: [‘1.txt’, ‘2.txt’]

3、解压zip文件

In [12]: newZip.extract(‘1.txt’)

Out[12]: ‘/root/1.txt’

In [13]: newZip.extractall()

In [14]: ls

1.txt 2.txt anaconda-ks.cfg demo.tar demo.tar.gz demo.zip

三、使用shutil管理压缩包

In [1]: import shutil

In [2]: shutil.make_archive(‘demo’,’zip’)

Out[2]: ‘demo.zip’

In [3]: shutil.make_archive(‘demo’,’gztar’)

Out[3]: ‘demo.tar.gz’

In [4]: shutil.unpack_archive(‘demo.tar.gz’)

In [5]: shutil.unpack_archive(‘demo.zip’)

python linux解密zip_Python Linux系统管理之使用Python管理压缩包相关推荐

  1. python利器怎么编程-Linux 利器- Python 脚本编程入门(一)

    导读 众所周知,系统管理员需要精通一门脚本语言,而且招聘机构列出的职位需求上也会这么写.大多数人会认为 Bash (或者其他的 shell 语言)用起来很方便,但一些强大的语言(比如 Python)会 ...

  2. 好程序员Python学习路线分享Linux和数据库部分

    好程序员Python学习路线分享Linux和数据库部分,技能树:掌握Linux操作系统管理技术,可以搭建几乎所有Linux环境服务器. 学习线路简单示意图: 知识点细化: Linux操作系统:常见操作 ...

  3. Python基础学习1(Python的Windows和Linux的安装及简单学习)

    一Python的安装 1.Windows下安装Python (1)windows 命令行的几个常见的命令 dir:查看当前目录下的所有文件,以及目录 cd + NAME:进入到NAME目录下(tab键 ...

  4. Linux必学的系统管理命令-1

    Linux必学的系统管理命令<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" ...

  5. 鸟哥的Linux私房菜(基础篇)- 第八章、Linux 磁盘与文件系统管理

    第八章.Linux磁盘与文件系统管理 最近升级日期:2009/08/30 系统管理员很重要的任务之一就是管理好自己的磁盘文件系统,每个分割槽不可太大也不能太小,太大会造成磁盘容量的浪费,太小则会产生文 ...

  6. 《易学Python》——1.4 Linux

    本节书摘来自异步社区<易学Python>一书中的第1章,第1.4节,作者[澳]Anthony Briggs,王威,袁国忠 译,更多章节内容可以访问云栖社区"异步社区"公 ...

  7. linux下python安装opencv库_Linux下怎么配置python和opencv

    匿名用户 1级 2017-06-20 回答 以下说明在Linux下Python和OpenCV结合安装的过程,Python要使用OpenCV模块,则必须导入OpenCV提供的包,所以要提供Python支 ...

  8. 用freeze.py打包python程序成可执行程序(linux)

    用freeze.py打包python程序成可执行程序(linux) 2009-12-16 19:55:13 分类: 用freeze.py打包python程序成可执行程序(linux)    为了将一批 ...

  9. linux终端使用python3,3 个 Python 命令行工具 | Linux 中国

    原标题:3 个 Python 命令行工具 | Linux 中国 用 Click.Docopt 和 Fire 库写你自己的命令行应用. -- Jeff Triplett, Lacey Williams ...

最新文章

  1. tinybert华为
  2. sparkcore分区_Spark学习:Spark源码和调优简介 Spark Core (二)
  3. UVA11419 我是SAM
  4. sql 随机数高效率算法
  5. 余额宝 vs. P2P网贷,谁更有生命力?
  6. seq2seq和Transformer
  7. 程序员十大非技术面试问题及策略
  8. mysql limit括号_采坑笔记——mysql的order by和limit排序问题
  9. 信息奥赛一本通(1119:矩阵交换行)
  10. PX4 CMakeLists.txt 文件剖析
  11. Linux下Exit和_exit函数说明
  12. TrustBase团队完成subscript语言的Web3基金会Grant资助计划项目交付
  13. 从技术、服务到共创 声网 Agora 携手合作伙伴共建 RTC 生态
  14. java在线生成word文档_java导出word之FreeMarker生成word文档
  15. 非主流字体输入法_魏大勋更博晒非主流自拍,粉丝的关注点却在他的字体上,太复杂了...
  16. mac 谷歌浏览器翻译问题
  17. SQL注入实战 绕WTS-WAF
  18. 颜色偏差裙子测试软件,蓝黑/白金裙子告诉你视觉误差到底有多大?——一条裙子引发的全民纠结...
  19. 三相桥式全控整流电路simulink仿真_变频器为什么要整流然后再逆变?
  20. android使用动画画心形,Android中利用画图类和线程画出闪烁的心形,送给亲爱的他(她)...

热门文章

  1. IntelliJ IDEA Maven Gradle的配置
  2. leetcode 230. Kth Smallest Element in a BST | 230. 二叉搜索树中第K小的元素(Java)
  3. 【Python Flask】使用Ajax从后台请求数据
  4. Logisim 组合电路设计 七段数码管的使用
  5. 网络标准之:IANA定义的传输编码
  6. 在php中如何便利字符串,php字符串可以遍历嘛
  7. 容器源码分析之HashTable(八)
  8. Effective Java之必要时进行保护性拷贝(三十九)
  9. 深度学习在CTR预估任务中的应用
  10. 怎么理解 IaaS、SaaS 和 PaaS 的区别?