python压缩文件_如何在python中压缩文件夹和文件?

I've got a folder called: 'files' which contains lots of jpg photographs. I've also got a file called 'temp.kml'. I want to create a KMZ file (basically a zip file) which contains the temp.kml file AND the files directory which has the photographs sitting inside it.

Here is my code:

zfName = 'simonsZip.kmz'

foo = zipfile.ZipFile(zfName, 'w')

foo.write("temp.kml")

foo.close()

os.remove("temp.kml")

This creates the kmz file and puts the temp.kml inside. But I also want to put the folder called 'files' in as well. How do I do this?

I read here on StackOverflow that some people have used shutil to make zip files. Can anyone offer a solution?

解决方案

The zipfile module in python has no support for adding a directory with file so you need to add the files one by one.

This is an (untested) example of how that can be achieved by modifying your code example:

import os

zfName = 'simonsZip.kmz'

foo = zipfile.ZipFile(zfName, 'w')

foo.write("temp.kml")

# Adding files from directory 'files'

for root, dirs, files in os.walk('files'):

for f in files:

foo.write(os.path.join(root, f))

foo.close()

os.remove("temp.kml")

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值