15

我正在使用该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 但没有任何目录结构。

我怎样才能做到这一点?我没有在文档中找到此信息。

谢谢

4

1 回答 1

22

首先添加

import os

然后将该archive.write行修改为:

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

这指定每个 pdf 应写入 zip 文件,其路径仅相当于您从中读取它的路径的文件名部分(通过为call指定arcname 参数write())。

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

于 2012-10-08T07:38:56.333 回答