当文件系统中不存在该文件夹时,如何在zip中添加文件夹?

时间:2019-02-14 13:14:18

标签: python-3.x zip zipfile

任务是创建zip归档文件,其中包含带有文件的文件夹树。但是,有一个细微差别,这些文件夹不在磁盘上,只有其他名称的文件,并且树包含在数据库中。

我尝试使用标准zipfile,但是当我尝试调用write方法时,出现错误,表明磁盘上没有此类文件夹。 我该如何解决这个任务?

1 个答案:

答案 0 :(得分:0)

要在归档文件中创建不在磁盘上的文件夹,必须使用writestr()方法。例如:

zf.writestr('folder1/', '')

为了将文件写入存档,同时创建许多不在磁盘上的文件夹,必须使用write()方法,其中文件名在磁盘上指定其名称,参数arcname在存档中指定其路径。这将创建在arcname中指定的所有先前文件夹。例如:

zf.write('test.txt', arcname='folder2/test1.txt')

在归档文件中的这两行之后将是文件夹“ folder1”和“ folder2”,在文件夹“ folder2”中将是名为“ test1.txt”的文件,其中包含文件系统中文件“ test.txt”的内容。 / p>