从gzip中的多个文件中读取一个文件,然后读取一次?

时间:2020-01-10 19:28:55

标签: python-3.x pandas gzip

我的tar.gz zip文件中有几个文件。我只想将其中一个读入pandas数据框。有什么办法吗? 熊猫可以读取gz中的文件。但是,如果gz内有多个文件,似乎无法告诉它专门读取其中一个文件。

将不胜感激。 巴巴克

2 个答案:

答案 0 :(得分:2)

要读取任何压缩文件夹中的特定文件,我们只需要提供其名称或位置即可,例如,读取压缩文件夹中的特定csv文件,我们只需打开该文件并读取其内容即可。

from zipfile import ZipFile 
import pandas as pd 
# opening the zip file in READ mode 
with ZipFile("results.zip") as z:
    read = pd.read_csv(z.open(z.infolist()[2].filename))
    print(read)

这里结果的文件夹结构看起来像,我想阅读test.csv:

$ data_description.txt sample_submission.csv test.csv train.csv

答案 1 :(得分:0)

如果您使用 pardata,则可以在一行中完成:

import pardata

data = pardata.load_dataset_from_location('path-to-zip.zip')['table/csv']

返回的 data 变量应该是 zip 存档中所有 csv 文件的字典。

免责声明:我是 pardata 的主要合著者之一。

相关问题