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

2024-05-26 09:18:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个叫做“文件”的文件夹,里面有很多jpg照片。我还有一个名为“temp.kml”的文件。我想创建一个KMZ文件(基本上是一个zip文件),其中包含temp.kml文件和包含照片的files目录。

这是我的代码:

zfName = 'simonsZip.kmz'
foo = zipfile.ZipFile(zfName, 'w')
foo.write("temp.kml")
foo.close()
os.remove("temp.kml")

这将创建kmz文件并将temp.kml放入其中。但我也希望把名为“文件”的文件夹放进去。我该怎么做?

我在StackOverflow上看到一些人用shuil制作zip文件。有人能提供解决方案吗?


Tags: 文件代码目录文件夹foofileszipkml
2条回答

python中的zipfile模块不支持添加带有文件的目录,因此需要逐个添加文件。

这是一个(未经测试的)示例,说明如何通过修改代码示例来实现此目标:

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")

你可以使用shutil

import shutil

shutil.make_archive("simonsZip", "zip", "files")

相关问题 更多 >