'''
python中的tarfile模块实现文档的归档压缩和解压缩 功能:
把工作空间下面的所有文件,打包生成一个tar文件
同时提供一个方法把该tar文件中的一些文件解压缩到
指定的目录中
'''

运行效果:

如果在你计算机的C盘里面没有test目录,系统会自动创建该目录:c:\\test

如果在你计算机的c:\\test目录下面没有temp目录,系统会自动创建该目录:c:\\test\\temp

控制台输出:

Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:03:43) [MSC v.1600 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>>
创建目录:[c:\test]
创建目录:[c:\test\temp]
获取工作空间下的所有文件...
打开文件:[c:\test\hongten.tar]
压缩文件:[fibo.py]
压缩文件:[main.py]
压缩文件:[pythonindex.html]
压缩文件:[test_arrange.py]
压缩文件:[test_array.py]
压缩文件:[test_blogs.py]
压缩文件:[test_calendar.py]
压缩文件:[test_calendar_html.py]
压缩文件:[test_class.py]
压缩文件:[test_collections]
压缩文件:[test_collections.py]
压缩文件:[test_copy.py]
压缩文件:[test_count.py]
压缩文件:[test_email.py]
压缩文件:[test_email_send.py]
压缩文件:[test_filecmp.py]
压缩文件:[test_for.py]
压缩文件:[test_function.py]
压缩文件:[test_glob.py]
压缩文件:[test_gzip.py]
压缩文件:[test_linecache.py]
压缩文件:[test_list.py]
压缩文件:[test_modules.py]
压缩文件:[test_more_mudels.py]
压缩文件:[test_mysql.py]
压缩文件:[test_n.py]
压缩文件:[test_os.py]
压缩文件:[test_pprint.py]
压缩文件:[test_qq.py]
压缩文件:[test_shutil.py]
压缩文件:[test_stat.py]
压缩文件:[test_tar.py]
压缩文件:[test_tempfile.py]
压缩文件:[test_tkinter.py]
压缩文件:[test_truth_value.py]
压缩文件:[test_wifi.py]
压缩文件:[test_windows.py]
压缩文件:[__pycache__]
关闭文件[c:\test\hongten.tar]
##################################################
打开文件:[c:\test\hongten.tar]
获取到所有文件名称:['fibo.py', 'main.py', 'pythonindex.html', 'test_arrange.py', 'test_array.py', 'test_blogs.py', 'test_calendar.py', 'test_calendar_html.py', 'test_class.py', 'test_collections', 'test_collections.py', 'test_copy.py', 'test_count.py', 'test_email.py', 'test_email_send.py', 'test_filecmp.py', 'test_for.py', 'test_function.py', 'test_glob.py', 'test_gzip.py', 'test_linecache.py', 'test_list.py', 'test_modules.py', 'test_more_mudels.py', 'test_mysql.py', 'test_n.py', 'test_os.py', 'test_pprint.py', 'test_qq.py', 'test_shutil.py', 'test_stat.py', 'test_tar.py', 'test_tempfile.py', 'test_tkinter.py', 'test_truth_value.py', 'test_wifi.py', 'test_windows.py', '__pycache__', '__pycache__/fibo.cpython-33.pyc']
提取文件:[pythonindex.html]
>>>

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

代码部分:

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

 #python tar

 #Author : Hongten
#MailTo : hongtenzone@foxmail.com
#QQ : 648719819
#Blog : http://www.cnblogs.com/hongten
#Create : 2013-08-19
#Version: 1.0 import os
import tarfile
'''
python中的tarfile模块实现文档的归档压缩和解压缩 功能:
把工作空间下面的所有文件,打包生成一个tar文件
同时提供一个方法把该tar文件中的一些文件解压缩到
指定的目录中
'''
#global var
SHOW_LOG = True
#tar文件存放位置
TAR_PATH = ''
#取出文件存放目录
EXT_PATH = '' def write_tar_file(path, content):
'''打开指定path的tar格式的文件,如果该文件不存在
系统会自动创建该文件,如果该文件以及存在,则打开文件
打开文件后,向文件中添加文件(这个功能类似于把几个文件
打包成tar包文件)'''
with tarfile.open(path, 'w') as tar:
if SHOW_LOG:
print('打开文件:[{}]'.format(path))
for n in content:
if SHOW_LOG:
print('压缩文件:[{}]'.format(n))
tar.add(n)
if SHOW_LOG:
print('关闭文件[{}]'.format(path))
tar.close() def get_workspace_files():
'''获取工作空间下面的所有文件,然后以列表的形式返回'''
if SHOW_LOG:
print('获取工作空间下的所有文件...')
return os.listdir('./') def extract_files(tar_path, ext_path, ext_name):
'''解压tar文件中的部分文件到指定目录中'''
with tarfile.open(tar_path) as tar:
if SHOW_LOG:
print('打开文件:[{}]'.format(tar_path))
names = tar.getnames()
if SHOW_LOG:
print('获取到所有文件名称:{}'.format(names))
for name in names:
if name.split('.')[-1] == ext_name:
if SHOW_LOG:
print('提取文件:[{}]'.format(name))
tar.extract(name, path = ext_path) def mkdir(path):
'''创建不存在的目录'''
if os.path.exists(path):
if SHOW_LOG:
print('存在目录:[{}]'.format(path))
else:
if SHOW_LOG:
print('创建目录:[{}]'.format(path))
os.mkdir(path) def init():
global SHOW_LOG
SHOW_LOG = True
#tar文件存放位置
global TAR_PATH
TAR_PATH = 'c:\\test\\hongten.tar'
#取出文件存放目录
global EXT_PATH
EXT_PATH = 'c:\\test\\temp'
#创建目录,如果目录不存在
path = os.path.split(TAR_PATH)[0]
mkdir(path)
mkdir(EXT_PATH) def main():
init()
content = get_workspace_files()
#打包文件
write_tar_file(TAR_PATH, content)
print('#' * 50)
#提取文件
extract_files(TAR_PATH, EXT_PATH, 'html') if __name__ == '__main__':
main()

python开发_tarfile_文档归档压缩|解压缩的更多相关文章

  1. python开发_HTMLParser_html文档解析

    ''' 在HTMLParser类中,定义了很多的方法,但是很多方法都是没有实现的, 这需要我们继承HTMLParser类,自己去实现一些方法 如: # Overridable -- handle st ...

  2. WEB前端开发规范文档(转)

    http://codeguide.bootcss.com/  编写灵活.稳定.高质量的 HTML 和 CSS 代码的规范上面的文档 再结合下面的规范: 无论是从技术角度还是开发视角,对于web前端开发 ...

  3. 网站开发进阶(三十八)Web前端开发规范文档你需要知道的事

    Web前端开发规范文档你需要知道的事 规范目的 为提高团队协作效率, 便于后台人员添加功能及前端后期优化维护, 输出高质量的文档, 特制订此文档. 本规范文档一经确认, 前端开发人员必须按本文档规范进 ...

  4. Web前端开发规范文档你需要知道的事

    Web前端开发规范文档你需要知道的事 规范目的 为提高团队协作效率, 便于后台人员添加功能及前端后期优化维护, 输出高质量的文档, 特制订此文档. 本规范文档一经确认, 前端开发人员必须按本文档规范进 ...

  5. WEB前端开发规范文档[转]

    为新项目写的一份规范文档, 分享给大家. 我想前端开发过程中, 无论是团队开发, 还是单兵做站, 有一份开发文档做规范, 对开发工作都是很有益的. 本文档由本人编写, 部分意见来源于网络, 以此感谢, ...

  6. 【转】Python之xml文档及配置文件处理(ElementTree模块、ConfigParser模块)

    [转]Python之xml文档及配置文件处理(ElementTree模块.ConfigParser模块) 本节内容 前言 XML处理模块 ConfigParser/configparser模块 总结 ...

  7. centos 文档的压缩和打包 gzip,bzip2,xz,zip,unzip,tar,tgz 第九节课

    centos  文档的压缩和打包   gzip,bzip2,xz,zip,unzip,tar,tgz  第九节课 SAS盘可以支持热插拔,看机器 tar.zip.tar -czvf 不会动源文件,gz ...

  8. 使用Python操作Excel文档(一)

    Python | 使用Python操作Excel文档(一) 0 前言 在阅读本文之前,请确保您已满足或可能满足以下条件: 请确保您具备基本的Python编程能力. 请确保您会使用Excel. 请确保您 ...

  9. Python读取word文档内容

    1,利用python读取纯文字的word文档,读取段落和段落里的文字. 先读取段落,代码如下: 1 ''' 2 #利用python读取word文档,先读取段落 3 ''' 4 #导入所需库 5 fro ...

随机推荐

  1. elasticsearch删除索引报错【原】

    如果elasticsearch删除索引报错 curl -X DELETE 'http://10.73.26.66:9200/httpd-34-2017.08.15' {"error" ...

  2. WDCP各种停止重启命令

    service wdapache start|stop|restart    wdcp后台 启动|停止|重起service nginxd start|stop|restart        nginx ...

  3. HDU 2859 Phalanx(二维DP)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2859 题目大意:对称矩阵是这样的矩阵,它由“左下到右”线对称. 相应位置的元素应该相同. 例如,这里是 ...

  4. java1.8环境配置+win10系统

    Java环境配置相关 Java jdk 1.8版本的环境配置和1.7版本 存在一些差异,当然不同的操作系统可能会对jdk配置有一定的变化.本文我主要说1.8版本的jdk在window10 系统上的配置 ...

  5. hdu 5914(斐波拉契数列)

    Triangle Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Su ...

  6. bug优先级定义

    优先级定义如下: <版本前期阶段>(功能刚提测): [P0—紧急]:完全不能满足产品要求,基本功能明显未实现或完全不可用,阻塞测试流程与进度(核心功能流程) 1.功能未实现 .功能缺失 2 ...

  7. postgresql 数据导入导出

    [转] 分类: postgresql2013-06-09 10:21 2486人阅读 评论(0) 收藏 举报 一.导出数据库及具体表 1.导出数据库:方式一:pg_dump  -U  postgres ...

  8. python开发学习-day05(正则深入、冒泡排序算法、自定义模块、常用标准模块)

    s12-20160130-day05 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: ...

  9. 为啥我喜欢在Windows 7环境下做Unity开发?

    先说明,以下情况只针对本人哦~ 前阵子我在OSX的最新版本Mavericks下做Unity开发,后来我把MacbookPro卖了,自己组装了个PC搞开发,为啥呢? 1:OSX下 MonoDevelop ...

  10. 安装Caffe时出现的错误

    一.error MSB3073类错误 一般是由于CommonSettings.props配置出现错误. 第一处是你安装CUDA的版本号,第二次是你安装cudnn的路径. 也可参照http://blog ...