TAR ->
import tarfile
tar = tarfile.open("tar_file.tar","w")
tar.add(".danoo_player_wifi")
tar.close()
TAR GZIP ->
tar = tarfile.open("tar_file.tar.gzip","w|gz")
tar.add("/root/.danoo_player_wifi")
tar.close()
TAR BZIP2 ->
tar = tarfile.open("tar_file.tar.bzip2","w|bz2")
tar.add("/root/.danoo_player_wifi")
tar.close()
检查tar压缩包内容 ->
import tarfile
tar = tarfile.open("temp.tar","r")
tar.list()
tar.name
tar.getnames()
tar.members
tar.close()
解压TAR包 ->
tar = tarfile.open("temp.tar","r")
tar.extractall()
tar.close()
---------------------------------------------------------
zipfile 模块
( 2.0 新增) zipfile 模块可以用来读写 ZIP 格式.
---------------------------------------------------------
列出内容
使用 namelist 和 infolist 方法可以列出压缩档的内容, 前者返回由文件名组成的列表, 后者返回由 ZipInfo实例组成的列表.
---------------------------------------------------------
使用 zipfile 模块列出 ZIP 文档中的文件
---------------------------------------------------------
import zipfile
file = zipfile.ZipFile("samples/sample.zip", "r")
# 列出压缩包内文件名
for name in file.namelist():
# 列出压缩包内文件信息
for info in file.infolist():
sample.txt sample.jpg
sample.txt (1999, 9, 11, 20, 11, 8) 302
sample.jpg (1999, 9, 18, 16, 9, 44) 4762
---------------------------------------------------------
从 ZIP 文件中读取数据
调用 read 方法就可以从 ZIP 文档中读取数据. 它接受一个文件名作为参数, 返回字符串
---------------------------------------------------------
import zipfile
file = zipfile.ZipFile("samples/sample.zip", "r")
for name in file.namelist():
sample.txt 302 'We will pe'
sample.jpg 4762 '\377\330\377\340\000\020JFIF'
---------------------------------------------------------
ZIP 文件写入数据
使用 zipfile 模块将文件储存在 ZIP 文件里
向压缩档加入文件很简单, 将文件名, 文件在 ZIP 档中的名称传递给 write 方法即可.
write 方法的第三个可选参数用于控制是否使用压缩.默认为 zipfile.ZIP_STORED , 意味着只是将数据储存在档案里而不进行任何压缩.
如果安装了 zlib 模块, 那么就可以使用 zipfile.ZIP_DEFLATED 进行压缩.
---------------------------------------------------------
import zipfile
import glob, os
file = zipfile.ZipFile("test.zip", "w")
for name in glob.glob("samples/*"):
file.close()
file = zipfile.ZipFile("test.zip", "r")
for info in file.infolist():
sample.wav (1999, 8, 15, 21, 26, 46) 13260 10985
sample.jpg (1999, 9, 18, 16, 9, 44) 4762 4626
sample.au (1999, 7, 18, 20, 57, 34) 1676 1103
...
---------------------------------------------------------
使用 zipfile 模块在 ZIP 文件中储存字符串
---------------------------------------------------------
import zipfile
import glob, os, time
file = zipfile.ZipFile("test.zip", "w")
now = time.localtime(time.time())[:6]
for name in ("life", "of", "brian"):
file.close()
# open the file again, to see what's in it
file = zipfile.ZipFile("test.zip", "r")
for info in file.infolist():
life (2000, 12, 1, 0, 12, 1) 4000 26
of (2000, 12, 1, 0, 12, 1) 2000 18
brian (2000, 12, 1, 0, 12, 1) 5000 31
---------------------------------------------------------
---------------------------------------------------------
import zipfile
z = zipfile.ZipFile(filename, 'r') # 这里的第二个参数用r表示是读取zip文件,w是创建一个zip文件
for f in z.namelist():
---------------------------------------------------------
import zipfile
z = zipfile.ZipFile(filename, 'r')
for i in z.infolist():
---------------------------------------------------------
import zipfile
z = zipfile.ZipFile(filename, 'r')
print z.read(z.namelist()[0])
---------------------------------------------------------
import zipfile, os
z = zipfile.ZipFile(filename, 'w') # 注意这里的第二个参数是w,这里的filename是压缩包的名字
#假设要把一个叫testdir中的文件全部添加到压缩包里(这里只添加一级子目录中的文件):
if os.path.isdir(testdir):
# close() 是必须调用的!
z.close()
---------------------------------------------------------