download_file#

astropy.utils.data.download_file(remote_url, cache=False, show_progress=True, timeout=None, sources=None, pkgname='astropy', http_headers=None, ssl_context=None, allow_insecure=False)[源代码]#

下载一个URL并选择性地缓存结果。

它返回包含URL内容的文件的文件名。如果 cache=True 如果文件存在于缓存中,则返回文件名;如果必须下载文件,请将其添加到缓存中。如果 cache="update" 始终下载并将其添加到缓存中。

缓存实际上是一个将URL映射到文件的字典;默认情况下,文件包含作为其键的URL的内容,但实际上这些内容可以从镜像(使用 sources )或从本地文件系统导入(使用 import_file_to_cacheimport_download_cache ). 不管怎样,每个文件都被视为代表一个特定URL的内容,这个URL应该被用来查找或以其他方式操作它们。

缓存目录中的文件是根据其url的加密哈希命名的(当前为MD5,因此黑客可能会导致冲突)。这些文件的修改时间通常表明它们最后一次从Internet下载的时间。

参数:
remote_url : strPython :字符串

要下载的文件的URL

cache : bool 或“更新”,可选bool或“update”,可选

是否缓存远程URL的内容。如果“更新”,请始终下载远程URL以防有新版本,并将结果存储在缓存中。

show_progress : bool ,可选可选的布尔

是否在下载过程中显示进度条(默认为 True ). 不管此设置如何,进度条只在输出到终端时显示。

timeout : float ,可选Python:Float,可选

以秒为单位的远程请求超时(默认为可配置 astropy.utils.data.Conf.remote_timeout

sources : liststr ,可选PYTHON:PYTHON列表:STR,可选

如果提供,则为尝试从中获取文件的URL列表。结果将存储在原始URL下。原始URL将 not 除非它在这个列表中,否则请尝试;这是为了防止长时间等待主服务器,而主服务器目前是不可访问的。如果传递了一个空列表,则 download_file 不会尝试连接到Internet,也就是说,如果文件不在缓存中,将引发KeyError。

pkgname公司str 可选可选的STR

用于定位下载缓存的包名称。i、 e代表 pkgname='astropy' 默认的缓存位置是 ~/.astropy/cache .

http_headers : dictNonePYTHON:DICT或PYTHON:无

要传入的HTTP请求标头 urlopen if needed. (These headers are ignored if the protocol for the name_or_obj/sources 条目不是远程httpurl。)在默认情况下(None),头是 User-Agent: some_valueAccept: */* 在哪里 some_value 是由 astropy.utils.data.conf.default_http_user_agent .

ssl_context : dict ,可选Python:Dict,可选

要传递到的关键字参数 ssl.create_default_context 从HTTPS或TLS+FTP源下载时。这可用于提供根CA证书的替代路径。另外,如果密钥 'certfile' 并且可选地 'keyfile''password' 都包括在内,则将它们传递给 ssl.SSLContext.load_cert_chain 。这可用于对需要它的服务器执行SSL/TLS客户端证书身份验证。

allow_insecure : bool ,可选可选的布尔

即使服务器证书验证失败,也允许通过TLS/SSL连接下载文件。当设置为时 True the potentially insecure download is allowed to proceed, but an AstropyWarning is issued. If you are frequently getting certificate verification warnings, consider installing or upgrading certifi 包,它为常见的根CA提供频繁更新的证书(即,一组与Web浏览器使用的证书类似的证书)。如果已安装,Astropy将自动使用它。

返回:
local_path : strPython :字符串

返回文件下载到的本地路径。

加薪:
urllib.error.URLError

当获取远程文件出现问题时。

KeyError

当从缓存中请求了一个文件但该文件丢失并且没有提供从Internet获取该文件的源时。

笔记

因为这个函数返回一个文件名,所以可以运行另一个进程 clear_download_cache 在您实际打开文件之前,留下一个不再指向可用文件的文件名。