[英]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.