python tarfile模块

 

import tarfile,os
target="C:\\Users\\LXS\\PycharmProjects\\user_manager\\app01"
tar=tarfile.open("C:\\Users\\LXS\\PycharmProjects\\ceshi.tgz","w:gz")
tar.add(target,arcname="")   #1.这样打包的内容同4是不带app01目录的,不加arcname打包的是绝对路径
tar.add(target,arcname=os.path.basename(target))         # arcname="app01"这层保留的目录,同3带app01目录
os.chdir("C:\\Users\\LXS\\PycharmProjects\\user_manager")
tar.add("app01")  #3.这是带app01目录的
tar.add("app01",arcname="")  #4.同样不带app01目录
tar.close()

 

def tar_gz(file_name,tmp_tar_dir,tmp_dir):
    """ 打包不带绝对路径
    :param file_name:   packaged name
    :param tmp_tar_dir: compressed package deposit directory 压缩包存放路径
    :param tmp_dir: packaged directory 压缩文件路径
    :return:
    """
    tar = tarfile.open(os.path.join(tmp_tar_dir,file_name),"w:gz")
    for root,dir,files in os.walk(tmp_dir):
        root_dir = os.path.relpath(root,start=tmp_dir)
        for file in files:
            full_path = os.path.join(root,file)
            tar.add(full_path,arcname=os.path.join(root_dir,file))
    tar.close()

 

posted @ 2019-03-22 21:22  林夕之风  阅读(661)  评论(0)    收藏  举报