如何在Python中使用Zipfile压缩具有扁平目录结构的文件



我正在使用ZipFile包来压缩Python中的文件。这是我的代码:

archive = zipfile.ZipFile(join(settings.ARCHIVES_DIR, 'test.zip'), "a")
for pdffile in glob.glob(join(settings.IBILLING_DIR, '*.pdf')):
archive.write(pdffile)
archive.close()

我面临的问题是,创建的ZIP文件包含一个目录结构。添加的文件添加了完整的路径,这意味着提取存档的用户最终也将获得一个目录结构。我想将文件添加到ZIP中,但没有任何目录结构。

我该怎么做?我在文档中没有找到这些信息。

感谢

首先添加

import os

则将archive.write行修改为:

archive.write(pdffile, os.path.basename(pdffile))

这指定每个pdf都应该被写入zip文件,其路径仅相当于读取路径的文件名部分(通过为write()调用指定arcname参数)。

但是,请注意,这意味着如果在不同的目录中有两个同名的PDF文件,其中一个会覆盖另一个。

最新更新