在python web應用程序中,我將一些東西打包在一個zip文件中。我希望完整地在內存中完成,而不用接觸磁盤。只要我創建一個平面目錄結構,就可以使用ZipFile.writestr,但是如何在zip內創建目錄?如何在不觸摸磁盤的情況下創建帶目錄的內存zip文件?
我正在使用python2.4。
http://docs.python.org/library/zipfile.html
在python web應用程序中,我將一些東西打包在一個zip文件中。我希望完整地在內存中完成,而不用接觸磁盤。只要我創建一個平面目錄結構,就可以使用ZipFile.writestr,但是如何在zip內創建目錄?如何在不觸摸磁盤的情況下創建帶目錄的內存zip文件?
我正在使用python2.4。
http://docs.python.org/library/zipfile.html
什麼'theomega'在我原來的帖子的評論中說,在文件名中添加一個'/'是不對的。謝謝!
from zipfile import ZipFile
from StringIO import StringIO
inMemoryOutputFile = StringIO()
zipFile = ZipFile(inMemoryOutputFile, 'w')
zipFile.writestr('OEBPS/content.xhtml', 'hello world')
zipFile.close()
inMemoryOutputFile.seek(0)
請注意,如果你使用python 3,那麼你會想使用['BytesIO'](https://docs.python.org/ 3 /庫/ io.html)。 – Panda 2015-06-11 15:19:36
如果你只是想讓文件夾沒有文件,最後留下'/'。 – 2018-01-26 09:41:01
使用StringIO
。它是apparently好的將它們用於zipfiles。
我們也是這樣做的。非常好地工作。 – 2010-08-31 15:47:04
這個答案已過時,是否應該降低投票率? – AnotherParker 2016-01-24 02:46:00
@AnotherParker如果你有一個更現代的解決方案,請發佈,我會upvote – RPGillespie 2017-10-17 18:06:42
您是否嘗試過簡單地設置文件的文件名以添加到'directory/filename.ext'? – theomega 2010-08-31 15:01:31
@theomega是正確的。 – mahmoud 2010-08-31 18:20:35