解决zipfile压缩的文件路径太深,直接调用即可

import os
import zipfile
import shutil
def zipDir(dirpath,outdir):
    #把路径中最后一个文件夹的名字取出来作为雅苏报的名字
    zip_path=dirpath.split("\\")[-1]
    print(zip_path)
    zip_name=zip_path+".zip"
    if not os.path.exists(zip_path):
        os.makedirs(zip_path)
    #把源路径下的文件都复制到程序当前路径下准备压缩
    for file in os.listdir(dirpath):
        shutil.copy(os.path.join(dirpath,file),zip_path)

    zip = zipfile.ZipFile(zip_name, 'w', zipfile.ZIP_DEFLATED)
    for path in os.listdir(zip_path):
        new_path=os.path.join(zip_path,path)
        print(new_path)
        zip.write(new_path)

    zip.close()
    #然后把压缩好的文件移动回去
    try:
        shutil.move(zip_name,outdir)
    except:
        os.remove(os.path.join(outdir,zip_name))
        shutil.move(zip_name, outdir)
        shutil.rmtree(zip_path)
if __name__ == '__main__':
    #要压缩的路径 要保存的压缩文件的路径
    zipDir("C:\\Users\\Administrator\\Desktop\\1",r"C:\\Users\\Administrator\Desktop")


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

追梦小狂魔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值