2014-12-04 54 views
1

我有一個外部文件系統和一種從那裏下載數據的方法。我想將所有數據下載到.zip壓縮文件中。
什麼我可以做的是:在zip壓縮文件裏創建文件python

  • 創建file從設備寫入
  • 下載data這個file
  • file
  • 將文件添加到壓縮存檔與zipfile.write(file)

我想要做的是:

  • 在這個檔案創建一個從設備拉鍊archive
  • 下載data創建文件,而不我的本地驅動器上創建它

這裏是行不通的代碼來得到一個想法:

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); 

回答

1

ZipFile.writestr()將允許您將內存緩衝區的內容寫入由文件名給出的zip條目或ZipInfo實例。但由於zip文件的性質,無法以流方式進行操作。

2

如果您的目標僅僅是不創建臨時文件,StringIO 是您的保護者,以及來自Ignacio的答案ZipFile.writestr()

相關問題