Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中使用Zipfile压缩具有扁平目录结构的文件?_Python_Python 2.7 - Fatal编程技术网

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

如何在Python中使用Zipfile压缩具有扁平目录结构的文件?,python,python-2.7,Python,Python 2.7,我正在使用Python中的ZipFile包压缩文件。这是我的密码: 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文件包含一个目录结构。添加的文件以完整路

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

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(pdffile, os.path.basename(pdffile))
这指定每个pdf都应写入zip文件,其路径仅相当于读取它的路径的文件名部分(通过指定文件名)


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

尝试使用
os.walk
,而不是glob?