繁体   English   中英

如何在不写入磁盘的情况下解压缩?

[英]How to unzip without writing to disk?

我在只读系统中有一个 zip 存档path_to_zip_file 棘手的是我需要解压缩其内容并打开包含在 zip 存档中的 CSV 文件testfile.csv 请注意 zip 存档包含许多不同的文件,但我只想从中获取 CSV 文件。 我的目标是将此 CSV 文件的内容放入 Pandas 数据框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)

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

在已经打开的存档上使用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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM