使用Python压缩文件时出现的多层目录的问题

Zss 发表于:

只是想压缩三个文件到一个zip文件中,会将此py文件所在的工作目录一起打包到zip文件中

于是这个zip文件中就是:目录/目录/目录/目录/目录/目录/文件

我想要的是:/文件

为了解决这种情况可以使用以下方法

def zip_fw(self,fw_name):
    file_list = [fw_name,'fw.meta','release_note-20151030.txt']
    fw_pkg = zipfile.ZipFile(self.fw_pkg_path + fw_name[:-3] + 'zip','w', zipfile.ZIP_STORED)
    for i in file_list:
        file_path = os.path.join(self.fw_bin_path,i)
        fw_pkg.write(file_path,i)
    fw_pkg.close()

self.fw_bin_path是需要压缩的文件所在的目录

file_list是在文件夹下的所有文件名

file_path表示的是文件的全路径,也就是需要压缩的文件的路径

i表示的就是要压缩的文件的文件名

 

那么

fw_pkg.write(file_path,i)

时,第一个参数表示的是需要压缩到的文件夹的路径,第二个参数名表示的是文件的名字,这样做就可以保证压缩以后不会出现多层文件目录的情况