0

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)
4

2 回答 2

2

使用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)
于 2021-10-15T20:50:11.243 回答
1

简单的方法是将它解压到 /tmp,它是 RAM 中的一个目录。您还可以使用 python 的tempfile库创建一个临时目录并将其提取到那里(它可能只是在 /tmp 中创建一个目录)

于 2021-10-15T20:36:36.420 回答