python tarfile模块基本使用以及去除压缩包绝对路径

当我们要写程序对文件夹/目录进行压缩的时候,可以用到python中的tarfile模块

以下是详细代码解析

    def package_file(obj_path, outFullName):
    	# obj_path:需要打包的文件夹;
    	# outFullName: 打包后的压缩包存放的路径
        tar = tarfile.open(outFullName, "w:gz")  # 如果只打包不压缩 将"w:gz"改为"w:""w"  ;先用tarfile.open打开压缩后存放的文件包路径
        for root, dirs, files in os.walk(obj_path):
            os.chdir(obj_path)
            os.chdir('..')
            path = os.getcwd()  # 通过os操做系统到文件目录的上一级 获取当前路径
            root_ = os.path.relpath(root,start=path)   # 用start= 这个选项,是在设置相对路径,从start之后的path开始
            for filename in files:
                tar.add(os.path.join(root, filename),arcname=os.path.join(root_,filename))   # 使用相对路径进行打包  add方法就是将需要压缩的文件/子文件夹添加到压缩包
            for dir in dirs:
	            tar.add(os.path.join(root, dir),arcname=os.path.join(root_,dir)) 
            # 加上这个的意思是:第一轮for循环只是对所有的文件进行打包,如果出现了空文件夹,里边没有文件的话将不会对这个空文件夹进行打包,但是遍历了所有的文件夹add近压缩包的话也会将空的文件夹加进去那么也能够进行打包了
        tar.close()

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值