PYTHON如何在内存中生成ZIP文件
生活随笔
收集整理的這篇文章主要介紹了
PYTHON如何在内存中生成ZIP文件
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
如題,代碼如下:
class MemoryZipFile(object):def __init__(self):#創(chuàng)建內(nèi)存文件self._memory_zip= StringIO.StringIO()def append_content(self, filename_in_zip, file_content):"""description: 寫文本內(nèi)容到zip"""zf= zipfile.ZipFile(self._memory_zip,"a", zipfile.ZIP_DEFLATED,False)zf.writestr(filename_in_zip, file_content)for zfilein zf.filelist: zfile.create_system= 0return selfdef append_file(self, filename_in_zip, local_file_full_path):"""description:寫文件內(nèi)容到zip
注意這里的第二個(gè)參數(shù)是本地磁盤文件的全路徑(windows:c/demo/1.jpg | linux: /usr/local/test/1.jpg)"""zf = zipfile.ZipFile(self._memory_zip, "a", zipfile.ZIP_DEFLATED, False)zf.write(local_file_full_path, filename_in_zip)for zfile in zf.filelist: zfile.create_system = 0 return selfdef read(self):
"""description: 讀取zip文件內(nèi)容"""self._memory_zip.seek(0)return self._memory_zip.read()def write_file(self, filename):
"""description:寫zip文件到磁盤"""f = file(filename, "wb")f.write(self.read())f.close()使用方法如下:
mem_zip_file= MemoryZipFile()mem_zip_file.append_content('mimetype',"application/epub+zip")mem_zip_file.append_content('META-INF/container.xml','''<?xml version="1.0" encoding="UTF-8" ?> <container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container"> </container>''');#追加磁盤上的文件內(nèi)容到內(nèi)存,注意這里的第二個(gè)參數(shù)是本地磁盤文件的全路徑(windows:c/demo/1.jpg | linux: /usr/local/test/1.jpg)mem_zip_file.append_file("1.jpg","c:\1.jpg")#將內(nèi)存中的zip文件寫入磁盤mem_zip_file.write_file("c:test.zip")#獲取內(nèi)存zip文件內(nèi)容data= mem_zip_file.read()#上傳到fdfsmy_fdfs_client.upload_by_buffer(data,'zip')總結(jié)
以上是生活随笔為你收集整理的PYTHON如何在内存中生成ZIP文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 大量小文件存储提高效率要点详解
- 下一篇: Python+OpenCV人脸识别技术详