【发布时间】:2018-10-12 19:56:27
【问题描述】:
我刚刚到达一个端点,可以下载一个 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.open(...,只使用open(...。
标签: python python-3.x binary zip gzip