问题描述
我想用python在磁盘上某个位置创建一些文件的zip文件。我成功获取了文件夹的路径和每个文件名,所以我做到了:
with zp(os.path.join(self.savePath,self.selectedindex + ".zip"),"w") as zip:
for file in filesToZip:
zip.write(self.folderPath + file)
一切正常,但是输出的zipfile包含导致文件的整个文件夹结构。有没有办法只压缩文件而不压缩带有它的文件夹?
解决方法
ZipFile.write(filename,arcname = None,compress_type = None, compresslevel = None)
将名为 filename 的文件写入存档,并为其提供存档 名称 arcname (默认情况下,该名称与filename相同,但是 没有驱动器号,并删除了引导路径分隔符。
因此,只需指定一个明确的arcname
:
with zp(os.path.join(self.savePath,self.selectedIndex + ".zip"),"w") as zip:
for file in filesToZip:
zip.write(self.folderPath + file,arcname=file)