python - 如何在不写入磁盘的情况下解压缩?
问题描述
我path_to_zip_file
在只读系统中有一个 zip 存档。棘手的是我需要解压缩其内容并打开testfile.csv
包含在 zip 存档中的 CSV 文件。请注意,zip 存档包含许多不同的文件,但我只想从中获取一个 CSV 文件。
我的目标是将此 CSV 文件的内容放入 pandas dataframe df
。
我的代码如下所示。有没有办法更新它,使它可以在只读系统中执行?换句话说,如何在不写入磁盘的情况下在内存中运行它?
import zipfile
import pandas as pd
path_to_zip_file = "data/test.zip"
directory_to_extract_to = "result"
with zipfile.ZipFile(path_to_zip_file, 'r') as zip_ref:
zip_ref.extractall(directory_to_extract_to)
csv_file_name = "testfile.csv"
df = pd.read_csv("{}/{}".format(directory_to_extract_to,csv_file_name), index_col=False)
解决方案
使用ZipFile.open
已经打开的存档,我们可以做到这一点:
import zipfile
import pandas as pd
with zipfile.ZipFile("archive.zip") as archive:
with archive.open("testing.txt") as csv:
df = pd.read_csv(csv)
print(df)
推荐阅读
- java - 如何使用线程 ID 在 java 中获取线程运行时间?
- mysql - MySQL 查询 - 重命名数据?
- selenium - Safari 驱动程序每次都要求在 selenium 中启用“允许远程自动化”
- python - 使用 scikit learn 在 Logistic 回归中所有系数都变为零
- jenkins - Groovy File 类放置反斜线而不是斜线
- android - Android Studio 新抽屉活动不显示任何组件,但布局名称出现在设计器上
- java - 使用 Cassandra 重新准备查询 - 在哪里初始化 PreparedStatement
- php - 用mysql登录php
- python - 如何提取 Scapy 中的原始负载?
- python-3.x - SciPy curve_fit 返回奇怪的拟合曲线