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

1. 创建tar包
In [1]: import tarfile

In [2]: with tarfile.open('demo.tar',mode='w') as out:
...: out.add('1.txt')
...: out.add('2.txt')
...:
2. 读取tar包
In [1]: import tarfile

In [2]: with tarfile.open('demo.tar') as t:
...: for file in t.getmembers():
...: print(file.name)
...:
1.txt
2.txt
3. 创建压缩包
In [8]: with tarfile.open('demo.tar.gz',mode='w:gz') as out:
...: out.add('1.txt')
...: out.add('2.txt')
4. 读取压缩包
In [10]: 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]: with tarfile.open('demo.tar.gz',mode='r:gz') as out:
...: out.extractall()
...:

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

1. 创建zip文件
In [19]: import zipfile

In [20]: newZip = zipfile.ZipFile('demo.zip','w')

In [21]: newZip.write('1.txt')

In [22]: newZip.write('2.txt')

In [23]: newZip.close()
2. 读取zip文件
In [24]: newZip = zipfile.ZipFile('demo.zip')

In [25]: newZip.namelist()
Out[25]: ['1.txt', '2.txt']
3. 解压zip文件
In [27]: newZip.extract('1.txt')
Out[27]: '/tmp/test/1.txt' In [28]: newZip.extractall()

  

三、 使用shutil管理压缩包

In [40]: import shutil

In [41]: shutil.make_archive('demo','zip')
Out[41]: 'demo.zip' In [42]: shutil.make_archive('demo','gztar')
Out[42]: 'demo.tar.gz' In [43]: shutil.unpack_archive('demo.tar.gz') In [44]: shutil.unpack_archive('demo.zip')

  

使用Python管理压缩包的更多相关文章

  1. 使用 python 管理 mysql 开发工具箱 - 1

    Mysql 是一个比较优秀的开源的数据库,很多公司都在使用.作为运维人员,经常做着一些重复性的工作,比如创建数据库实例,数据库备份等,完全都可以使用 python 编写一个工具来实现. 一.模块 Co ...

  2. 使用Python管理数据库

    使用Python管理数据库   这篇文章的主题是如何使用Python语言管理数据库,简化日常运维中频繁的.重复度高的任务,为DBA们腾出更多时间来完成更重要的工作.文章本身只提供一种思路,写的不是很全 ...

  3. 使用 python 管理 mysql 开发工具箱 - 2

    这篇博文接着上篇文章<使用 python 管理 mysql 开发工具箱 - 1>,继续写下自己学习 python 管理 MySQL 中的知识记录. 一.MySQL 的读写分离 学习完 My ...

  4. python管理工具easy_install与pip

    刚开始同步系统的接触python和linux,在昊妹妹的指引下学习了使用python管理工具,希望能够通过不断熟练来学习 1.记录之前先复习以下linux下常用目录 ./  表示当前目录 ~/ 表示h ...

  5. [GitPython]使用python管理你的git库

    你想使用python来自动管理一个git仓库的时候,GitPython是一个不错的选择. 简介: 先看看下面这段代码: from git import Repo repo = Repo("~ ...

  6. 使用Python管理Azure(1):基础配置

    Azure提供了丰富的Python SDK来对Azure进行开发管理,包括使用Azure的开源框架在Azure上创建web应用程序,对Azure的虚拟机,存储等进行管理,本系类会简单介绍如何在ASM和 ...

  7. Anaconda多版本Python管理

    Anaconda是一个集成python及包管理的软件,记得最早使用时在2014年,那时候网上还没有什么资料,需要同时使用py2和py3的时候,当时的做法是同时安装Anaconda2和Anaconda3 ...

  8. Anaconda多版本Python管理以及TensorFlow版本的选择安装

    Anaconda是一个集成python及包管理的软件,记得最早使用时在2014年,那时候网上还没有什么资料,需要同时使用py2和py3的时候,当时的做法是同时安装Anaconda2和Anaconda3 ...

  9. Python——管理属性(1)

    管理属性 这里将展开介绍前面提到的[属性拦截]技术.包含下面内容: [1]__getattr__和__setattr__方法.把没有定义的属性获取和全部的属性赋值指向通用的处理器方法 [2]__get ...

随机推荐

  1. ORB-SLAM2(一)----使用Eclipse进行开发

    1.导入项目 准备工作 1, first we should make sure the compile with build.sh under ORB_SLAM2-master is OK. 2, ...

  2. Java全栈程序员之01:做个Linux下的程序猿

    Windows10正在成为史上口碑最差的Windows系统 (图侵删) 我曾经花了数次1小时去寻找解决方案去关闭自动更新,包括停掉服务.修改注册表等等.但是都没有成功. 微软自身是知道这个问题的,但就 ...

  3. 后台任务hangfire

    Installation¶ There are a couple of packages for Hangfire available on NuGet. To install Hangfire in ...

  4. 【PMP】项目采购管理~重点知识

    1.合同的类型与区别 固定总价(FFP):大多数买方都喜欢这种合同,因为货物的采购价格在一开始就已确定,并且不允许改变(除非工作范围发生变更) 总价加激励费用(FPIF):这种总价合同给买方和卖方提供 ...

  5. 整死你个妖精,CDN西游捉妖记!

    CDN的降价潮和撕逼季已过,终于轮到小黑羊来做个科普啦. 这事儿,要从西游记取经开始…… [本图来自肖传湛个人网站:www.moko.cc/hiyoko] 1300年前,唐僧师徒取经要跋涉十万八千里, ...

  6. 8.翻译系列: EF 6中配置领域类(EF 6 Code-First 系列)

    原文地址:http://www.entityframeworktutorial.net/code-first/configure-classes-in-code-first.aspx EF 6 Cod ...

  7. Service discovery

    https://www.cnblogs.com/dirt2/p/5987067.html Use Assigned Numbers in the Service Discovery Protocol ...

  8. maven项目中利用jmeter-maven-plugin插件直接执行jmeter jmx脚本

    jmeter脚本需要执行脚本,先得下载jmeter并解压jmeter.如想在maven项目中通过mvn install 直接执行jmx文件,这样就能在测试服务器上通过一个命令就能执行下性能测试了,给自 ...

  9. 老司机在zabbix上的一次翻车

    [前言] 自以为是zabbix的老司机了,没有想到今天翻车了! 一般人出错了都可以找到一个借口.我就不一样啦,我感觉我可以找两个1): 针对官方文档 给出的操作步骤没有经过深入的思考 2): 今天没有 ...

  10. iptabes一条指令开放多个端口

    开放某个范围段内的端口: -A INPUT -p tcp -m state --state NEW -m tcp --dport 9001:9009 -j ACCEPT 开放多个不连续的端口: -A ...