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_cache
或import_download_cache
). 不管怎样,每个文件都被视为代表一个特定URL的内容,这个URL应该被用来查找或以其他方式操作它们。缓存目录中的文件是根据其url的加密哈希命名的(当前为MD5,因此黑客可能会导致冲突)。这些文件的修改时间通常表明它们最后一次从Internet下载的时间。
- 参数:
- remote_url :
str
Python :字符串 要下载的文件的URL
- cache : bool 或“更新”,可选bool或“update”,可选
是否缓存远程URL的内容。如果“更新”,请始终下载远程URL以防有新版本,并将结果存储在缓存中。
- show_progress : bool ,可选可选的布尔
是否在下载过程中显示进度条(默认为
True
). 不管此设置如何,进度条只在输出到终端时显示。- timeout :
float
,可选Python:Float,可选 以秒为单位的远程请求超时(默认为可配置
astropy.utils.data.Conf.remote_timeout
)- sources :
list
的str
,可选PYTHON:PYTHON列表:STR,可选 如果提供,则为尝试从中获取文件的URL列表。结果将存储在原始URL下。原始URL将 not 除非它在这个列表中,否则请尝试;这是为了防止长时间等待主服务器,而主服务器目前是不可访问的。如果传递了一个空列表,则
download_file
不会尝试连接到Internet,也就是说,如果文件不在缓存中,将引发KeyError。- pkgname公司 :
str
可选可选的STR 用于定位下载缓存的包名称。i、 e代表
pkgname='astropy'
默认的缓存位置是~/.astropy/cache
.- http_headers :
dict
或None
PYTHON:DICT或PYTHON:无 要传入的HTTP请求标头
urlopen
if needed. (These headers are ignored if the protocol for thename_or_obj
/sources
条目不是远程httpurl。)在默认情况下(None),头是User-Agent: some_value
和Accept: */*
在哪里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 anAstropyWarning
is issued. If you are frequently getting certificate verification warnings, consider installing or upgrading certifi 包,它为常见的根CA提供频繁更新的证书(即,一组与Web浏览器使用的证书类似的证书)。如果已安装,Astropy将自动使用它。
- remote_url :
- 返回:
- local_path :
str
Python :字符串 返回文件下载到的本地路径。
- local_path :
- 加薪:
urllib.error.URLError
当获取远程文件出现问题时。
KeyError
当从缓存中请求了一个文件但该文件丢失并且没有提供从Internet获取该文件的源时。
笔记
因为这个函数返回一个文件名,所以可以运行另一个进程
clear_download_cache
在您实际打开文件之前,留下一个不再指向可用文件的文件名。