在zip存档python中创建文件

在zip存档python中创建文件,python,zipfile,Python,Zipfile,我有一个外部文件系统,可以从那里下载数据。我想将所有数据下载到.zip存档中 我能做的是: 创建要写入的文件 将数据从设备下载到此文件 写入文件 使用zipfile.write(文件) 我想做的是: 创建邮政编码存档 将数据从设备下载到此存档中创建的文件,无需在本地驱动器上创建该文件 下面是无法获得想法的工作代码: def get_all_files(self): self.savedir() zipf = zipfile.ZipFile(self.dir_to_save

我有一个外部文件系统,可以从那里下载数据。我想将所有数据下载到.zip存档中
我能做的是:

  • 创建要写入的
    文件
  • 数据
    从设备下载到此
    文件
  • 写入
    文件
  • 使用
    zipfile.write(文件)
我想做的是:

  • 创建邮政编码存档
  • 数据
    从设备下载到此存档中创建的文件,无需在本地驱动器上创建该文件
下面是无法获得想法的工作代码:

def get_all_files(self):
    self.savedir()
    zipf = zipfile.ZipFile(self.dir_to_save+"/SD_contents.zip", 'w');
    for file in self.nsh.get_all_files("/fs/microsd"):
            # get_all_files() returns list of full file paths on the SD
            print file
            data = self.nsh.download_file("/fs/microsd"+file)
            zipf.write(data);

将允许您将内存缓冲区的内容写入由filename或
ZipInfo
实例提供的zip条目。但是,由于zip文件的性质,无法以流式方式执行此操作。

如果您的目标只是不创建临时文件, 是您的保护程序,以及Ignacio回答中的
ZipFile.writest()