解压缩包含 csv 的 gzip 文件

Unzipping a gzip file that contains a csv

我刚刚到达终点,可以下载一个 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 控制台中打印行。

这不是 gzip 文件。那是一个 zip 文件。然后,您将获取从 URL 检索到的 zip 文件,并尝试将其再次压缩为 gzip 文件。所以现在你在 gzip 文件中有一个 zip 文件。您离提取 CSV 内容更远了一步,而不是更近了一步。

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