如何无需写入磁盘解压ZIP包并读取其中CSV文件至pandas DataFrame
解决方案
完全不需要解压到磁盘,直接在内存中读取压缩包内的目标CSV即可,修改后代码如下:
import zipfile import pandas as pd path_to_zip_file = "data/test.zip" csv_file_name = "testfile.csv" with zipfile.ZipFile(path_to_zip_file, 'r') as zip_ref: # 直接读取压缩包内的CSV文件到类文件对象,无磁盘写入 with zip_ref.open(csv_file_name) as f: df = pd.read_csv(f, index_col=False)
原理解释
zipfile.ZipFile提供的open()方法可以直接在内存中定位并读取压缩包内的指定文件,返回可被pandas识别的类文件对象,不需要向磁盘写入任何临时文件- 全程只有对原zip压缩包的读操作,完全适配只读系统的权限限制
- 如果目标CSV文件在压缩包的子目录下,只需要把
csv_file_name替换为压缩包内的完整相对路径即可
内容的提问来源于stack exchange,提问作者Fluxy
相关产品推荐
相关产品推荐

