python流式处理zip和xls文件

一般情况下我有一个二进制的数据,可以另存为1.zip,zip文件解压之后有1个1.xls文件,这样我可以解压zip文件然后使用相关的包读取xls文件即可

但是我现在不想这样做,我想在不创建文件的情况下,直接在内存中解压二进制数据,并且解码得到的xls的二进制数据接着处理,我应该如何做。。搜索半天网上没有找到这样的解决方案,我也不知道用什么包可以做到

阅读 4.6k
2 个回答
from zipfile import ZipFile
import io
import xlrd

with ZipFile(io.BytesIO(open('test.xlsx.zip', 'rb').read())) as myzip:
    with myzip.open('test.xlsx', 'r') as myfile:
        print(xlrd.open_workbook(file_contents=myfile.read()).sheets()[0].name)
        

首先你所谓的“不创建文件”的意思是不创建解压后的文件,还是源zip文件也不创建?

zip是文件归档压缩格式,其中必然有文件存储结构。如果你只是加解压数据流,你应该用gzip

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题