我正在使用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文件,其中一个会覆盖另一个。