博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python模块整理6-tarfile模块
阅读量:4983 次
发布时间:2019-06-12

本文共 2968 字,大约阅读时间需要 9 分钟。

官方文档:http://docs.python.org/library/tarfile.html#module-tarfile

一、打包

制作文件
>>> statement="This is a big line that ........"
>>> with open('/root/largeFile.txt','w') as myfile:
... for x in xrange(20000):
... x+=1
... myfile.write("%s\n" % statement )
1、打包文件
>>> tar=tarfile.open('/root/largeFile.txt.tar','w')
>>> tar.add('/root/largeFile.txt')
>>> tar.close()
2、打包目录
>>> tar=tarfile.open('temp.tar','w')
>>> tar.add('/tmp')
>>> tar.close()
os.walk遍历打包的目录
tar=tarfile.open('temp_walk.tar','w')
for root.dir,files in os.walk('tmp'):
for file in files:
fullpath=os.path.join(root,file)
tar.add(fullpath)
tar.close()
二、压缩
1、bz2压缩
tar=tarfile.open("largefile.tz2","w|bz2")
tar.add('largeFile.txt')
>>>tar.close()
# tar -jtvf largefile.tz2
-rw-r--r-- 0 root wheel 655360 Mar 14 22:21 largeFile.txt
2、gzip压缩
>>>tar=tarfile.open("tmpdir.tgz","w|gz")
>>>tar.add('/tmp')
>>>tar.close()
#tar -ztvf tmpdir.tgz
三、检查tar文件的内容
>>>import tarfile
>>>tar=tarfile.open('largefile.tar','r')
>>>tar.list()
-rw-r--r-- root/wheel 655360 2012-03-14 22:21:18 largeFile.txt
>>>tar.name
'/root/largefile.tar'
>>>tar.getnames() 返回只显示名字不显示其他信息的列表
>>>tar.members
[<TarInfo 'largeFile.txt' at 0x2976be6c>]
bz2压缩的
>>>tar=tarfile.open('tmpdir2.tz2','r|bz2')
>>>tar.list()
xr-xr-x root/wheel 916 2012-03-14 21:54:01 tmp/sync_dir_A/bgfsck
-r-xr-xr-x root/wheel 9401 2012-03-14 21:54:01 tmp/sync_dir_A/bluetooth
>>>tar.name
'/root/tmpdir2.tz2
>>>tar.getnames() 返回只显示名字不显示其他信息的列表
'tmp/sync_dir_A/ypupdated',
>>>tar.members
[<TarInfo 'tmp' at 0x29717cec>,
<TarInfo 'tmp/.snap' at 0x29717a2c>,
<TarInfo 'tmp/.X11-unix' at 0x29717b2c>,
<TarInfo 'tmp/.XIM-unix' at 0x2971c06c>,
gzip压缩的
>>>tar=tarfile.open('tmpdir1.tgz','r|gz')
>>>tar.list()
-rwxrwxrwt root/wheel 0 2012-03-14 21:54:05 tmp/
-rwxrwxr-x root/operator 0 2012-03-10 20:17:46 tmp/.snap/
>>> tar.name
'/root/tmpdir1.tgz'
>>> tar.getnames()
['tmp',
'tmp/.snap',
'tmp/.X11-unix',
'tmp/.XIM-unix',
'tmp/.ICE-unix',
'tmp/.font-unix',
'tmp/python.data',
'tmp/aprHZAuuw',
>>> tar.members
[<TarInfo 'tmp' at 0x28e3852c>,
<TarInfo 'tmp/.snap' at 0x28e382ec>,
<TarInfo 'tmp/.X11-unix' at 0x28e382
四、解压缩 tar.extractall()
>>> import os
>>> import tarfile
>>> os.getcwd()
'/tmp'
>>> os.chdir('/root')
>>> os.mkdir('/root/tar_tempdir')
>>> os.chdir('/root/tar_tempdir')
>>> tar=tarfile.open('/root/tmpdir1.tgz','r|gz')
>>> tar.extractall()
>>> tar.close()
>>> os.listdir(".")
['tmp']
>>> os.listdir("./tmp")
['.snap', '.X11-unix', '.XIM-unix', '.ICE-unix', '.font-unix', 'python.data', 'aprHZAuuw', 'mpmtx13970', 'mpmtx13971', 'mpmtx13972', 'mpmtx13973', 'mpmtx13974', 'mpmtx13975', 'mpmtx13976', 'mpmtx13977', 'Shell2.sh', 'file.txt', 'gdchart0.11.5dev.tar.gz', 'gdchart0.11.5dev', 'pygdchart2_0.beta1.orig.tar.gz', 'pygdchart2alpha2', 'rootdir', 'testfile2', 'pygdchart2_0.beta1-3.4.diff', 'os_rename', 'file1', 'TSFILE', 'test_mv', 'file2', 'file3', 'dir1', 'dir2', 'sync_dir_B', 'sync_dir_A']

 

转载于:https://www.cnblogs.com/diege/archive/2012/10/04/2711366.html

你可能感兴趣的文章
一些常用的js,jquerry 样例
查看>>
Oracle PL/SQL 多重选择句
查看>>
dorado中的creationType选择类型
查看>>
C++11 数值类型和字符串的相互转换
查看>>
无锡盈达聚力科技有限公司
查看>>
tyvj1659中中救援队
查看>>
kubernetes学习:CKA考试题
查看>>
LINUX samba的安装使用
查看>>
CSS border 生成三角
查看>>
asp.net(c#)开发中的文件上传组件uploadify的使用方法(带进度条)
查看>>
7.STM32中GPIO理解
查看>>
base64 json
查看>>
在vim中搜索单词
查看>>
设置定点数学属性
查看>>
自动化测试工具 Test Studio入门教程
查看>>
Python之进程线程
查看>>
排序算法(一) —— 冒泡排序
查看>>
No.026:Remove Duplicates from Sorted Array
查看>>
SpringBoot项目的几种创建方式,启动、和访问
查看>>
窗外【1】
查看>>