问题描述
我正在尝试从 NASA GES DISC 下载 netCDF 文件。文本文件中有 1000 个 netCDF 文件链接,我想使用请求模块下载它。响应状态码是 200 但文件的内容不是我想要的格式。我无法解码。
import requests
result = requests.get(myURL)
result.content.decode()
结果为 UnicodeDecodeError: 'utf-8' codec can't decode byte 0x89 in position 0: invalid start byte
。
文件内容以如下格式返回b'\x89HDF\r\n\x1a\n\x00\x00\x00\x00\x00\x08\x08\x00\x04\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff...
我如何解码结果。除了从 url 下载之外,还有其他选择吗?
解决方法
根据您的问题,您有一个提供 netCDF 文件链接的 url 列表,并且您想将它们全部下载。下面的代码向您展示了如何将其保存为临时文件:
import urllib
url = "ftp://ftp.cdc.noaa.gov/Datasets/COBE/sst.mon.ltm.1981-2010.nc"
new = "/tmp/tmp.nc"
urllib.request.urlretrieve(url,new)