get_pkg_data_filename#

astropy.utils.data.get_pkg_data_filename(data_name, package=None, show_progress=True, remote_timeout=None)[源代码]#

从包的标准位置检索数据文件,并提供数据的本地文件名。

此功能类似于 get_pkg_data_fileobj 但返回文件 name 而不是一个可读的类似文件的对象。这意味着此函数必须始终在本地缓存远程文件,这与 get_pkg_data_fileobj .

参数:
data_name : strPython :字符串

所需数据文件的名称/位置。以下之一:

  • 源分发中包含的数据文件的名称。路径与调用此函数的模块相关。例如,如果从 astropy.pkname 使用 'data/file.dat' 把文件放进去 astropy/pkgname/data/file.dat . 双点可以用来提升一个级别。在同一个例子中,使用 '../data/file.dat' 得到 astropy/data/file.dat .

  • 如果不存在匹配的本地文件,则会向Astropy数据服务器查询该文件。

  • 像这样的杂凑 compute_hash 可以请求,前缀为“hash/”,例如“hash/34c33b3eb0d56eb9462003af249eff28”。散列将首先在本地搜索,如果没有找到,将查询Astropy数据服务器。

package : str ,可选Python:字符串,可选

如果指定,则查找相对于给定包的文件,而不是默认的相对于调用模块的包查找的文件。

show_progress : bool ,可选可选的布尔

如果文件是从远程服务器下载的,是否显示进度条。默认为 True .

remote_timeout : floatPython :浮点

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

返回:
filename : strPython :字符串

本地文件系统上与请求的数据相对应的文件路径 data_name .

加薪:
urllib.error.URLError

如果找不到远程文件。

OSError

如果写入或读取本地文件时出现问题。

参见

get_pkg_data_contents

以bytes对象的形式返回文件或url的内容

get_pkg_data_fileobj

返回包含数据的类似文件的对象

实例

这将检索 astropy.wcs 测验::

>>> from astropy.utils.data import get_pkg_data_filename
>>> fn = get_pkg_data_filename('data/3d_cd.hdr',
...                            package='astropy.wcs.tests')
>>> with open(fn) as f:
...     fcontents = f.read()
...

这将通过哈希在本地或从astropy数据服务器检索数据文件:

>>> from astropy.utils.data import get_pkg_data_filename
>>> fn = get_pkg_data_filename('hash/34c33b3eb0d56eb9462003af249eff28')
>>> with open(fn) as f:
...     fcontents = f.read()
...