解压缩包含csv的gzip文件

时间:2018-10-12 19:56:28

标签: python python-3.x binary zip gzip

我刚刚碰到一个端点,可以下拉gzip压缩文件。 我尝试保存它并提取其中的csv,但是无论是否尝试将其当前状态从二进制转换为utf-8 / utf-16,我在编码过程中始终遇到错误。

要写入保存的gzip,我以二进制模式编写:

r = requests.get(url, auth=auth, stream=True)
with gzip.open('file.gz', 'wb') as f:
    f.write(r.content)

r.content如下所示:

b'PK\x03\x04\x14\x00\x08\x08\x08\x00f\x8dKM\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00A\x00\x00\x00RANKTRACKING_report_created_at_11_10_18_17_41-20181011-174141.csv\xec\xbdk\x8f\xe3V\x96\xae\xf9}\x80\xf9\x0f\ ... '

要手动将文件解压缩到我的计算机上,我首先必须解压缩为zip,然后才能将其解压缩以获取csv。我在那里也尝试过同样的方法,但是在那里也遇到了编码错误。

寻找一种方法来提取此csv,以便我可以在python控制台中打印行。

1 个答案:

答案 0 :(得分:2)

这不是gzip文件。那是一个zip文件。然后,您将获取从URL检索的zip文件,并尝试再次将其压缩为gzip文件。因此,现在您在gzip文件中有了一个zip文件。与提取CSV内容相比,您已经移了一步,而不是一步。

您需要使用zipfile提取下载的zip文件的内容。