在python中使用zipfile压缩文件时层级很多,有很多层目录,但是需要去除这些层级目录

如下图本来只压缩一个文件结果这个文件所在的路径全都被压缩进去啦

image.png

那么解决方法就是在做压缩的时候,重新做一个命名即可。如下所示:

yadir='D:/databak/'
zipfilepath='D:/zipfile.zip'
filelists = os.listdir(yadi)
if filelists == None or len(filelists) < 1:
    print (">>>>>>待压缩的文件目录:" + yadir + " 里面不存在文件,无需压缩. <<<<<<")
else:
    z = zipfile.ZipFile(zipfilepath, 'w' ,zipfile.ZIP_DEFLATED)
    for fil in filelists:
        filefullpath = os.path.join(yadir, fil)
        # filefullpath是文件的全路径,fil是文件名,这样就不会带目录啦
        z.write(filefullpath, fil)
    z.close()如上述代码所示,
如上述代码所示,yadir是需要压缩的文件所在的目录,而filelists是在文件夹下的所有文件名,filefullpath表示的是文件的全路径,也就是需要压缩的文件的路径,而fil表示的就是要压缩的文件的文件名,那么z.write(filefullpath,fil)时,第一个参数表示的是需要压缩到的文件夹的路径,第二个参数名表示的是文件的名字,这样做就可以保证压缩以后不会出现多层文件目录的情况。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值