在Python中从url下载csv.gz文件

ql3eal8s  于 2023-04-18  发布在  Python
关注(0)|答案(1)|浏览(125)

我从URL下载csv. gz文件时遇到问题我下载tar. gz文件时没有问题。对于csv. gz文件,我可以解压缩.gz文件并读取我的csv文件,如果我可以使用URL而不是先有csv-1. 0. csv. gz,那将非常方便
这是可行的:

import urllib.request
urllib.request.urlretrieve('http://www.mywebsite.com/csv-1-0.tar.gz','csv-1-0.tar.gz')

这不起作用:

import urllib.request
urllib.request.urlretrieve('http://www.mywebsite.com/csv-1-0.csv.gz','csv-1-0.csv.gz')

我得到这个错误:UnicodeEncodeError:“ascii”编解码器无法在位置9编码字符“\xad”:序号不在范围内(128)

ukxgm1gy

ukxgm1gy1#

正如urllib.request文档开头所建议的那样,推荐使用优秀的requests模块用于更高级别的http客户端接口。代码非常简单:

import requests

url = "http://www.mywebsite.com/csv-1-0.csv.gz"
filename = url.split("/")[-1]
with open(filename, "wb") as f:
    r = requests.get(url)
    f.write(r.content)

基本上,在分配URL和目标文件名之后,您以二进制模式打开目标文件进行写入,请求文件,然后将请求的内容写入文件。完成并完成。

相关问题