我无法从网址下载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)
截至一开始就对文档的建议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和目标文件名后,您可以打开目标文件以二进制模式进行写入,请求该文件,然后将请求的内容写入该文件。做完了。