首页 > 解决方案 > 如何在不写入磁盘的情况下解压缩?

问题描述

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)

标签: pythonpandaspython-zipfile

解决方案


使用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)

推荐阅读