Python中使用tarfile压缩、解压tar归档文件示例

来源:互联网 发布:算法导论 pdf 百度云 编辑:程序博客网 时间:2024/05/24 06:29
Python自带的tarfile模块可以方便读取tar归档文件,牛b的是可以处理使用gzip和bz2压缩归档文件tar.gz和tar.bz2。

与tarfile对应的是zipfile模块,zipfile是处理zip压缩的。请注意:os.system(cmd)可以使Python脚本执行命令,当然包括:tar -czf  *.tar.gz *,tar -xzf *.tar.gz,unzip等,当我觉得这样尽管可以解决问题,但我觉得很业余。


使用tarfile压缩

import tarfile #创建压缩包名tar = tarfile.open("/tmp/tartest.tar.gz","w:gz")#创建压缩包for root,dir,files in os.walk("/tmp/tartest"):    for file in files:        fullpath = os.path.join(root,file)        tar.add(fullpath)tar.close()

使用tarfile解压

def extract(tar_path, target_path):    try:        tar = tarfile.open(tar_path, "r:gz")        file_names = tar.getnames()        for file_name in file_names:            tar.extract(file_name, target_path)        tar.close()    except Exception, e:        raise Exception, e

其中open的原型是:

tarfile.open(name=None, mode='r', fileobj=None, bufsize=10240, **kwargs)

mode的值有:

'r' or 'r:*'   Open for reading with transparent compression (recommended).'r:'   Open for reading exclusively without compression.'r:gz'   Open for reading with gzip compression.'r:bz2'   Open for reading with bzip2 compression.'a' or 'a:'   Open for appending with no compression. The file is created if it does not exist.'w' or 'w:'   Open for uncompressed writing.'w:gz'   Open for gzip compressed writing.'w:bz2'   Open for bzip2 compressed writing.



0 0
原创粉丝点击