Skip to main content
`Ctrl`+`K`

# get_pkg_data_contents

astropy.utils.data.get_pkg_data_contents(data_name, package=None, encoding=None, cache=True)

  Retrieves a data file from the standard locations and returns its contents as a bytes object.

  Parameters:
    data_name `python:str`

      Name/location of the desired data file. One of the following:

      > - The name of a data file included in the source distribution. The path is relative to the module calling this function. For example, if calling from `astropy.pkname`, use `'data/file.dat'` to get the file in `astropy/pkgname/data/file.dat`. Double-dots can be used to go up a level. In the same example, use `'../data/file.dat'` to get `astropy/data/file.dat`.

      > - If a matching local file does not exist, the Astropy data server will be queried for the file.

      > - A hash like that produced by `compute_hash` can be requested, prefixed by ‘hash/’ e.g. ‘hash/34c33b3eb0d56eb9462003af249eff28’. The hash will first be searched for locally, and if not found, the Astropy data server will be queried.

      > - A URL to some other file.

    package `python:str`, optional

      If specified, look for a file relative to the given package, rather than the default of looking relative to the calling module’s package.

    encoding `python:str`, optional

      When `None` (default), returns a file-like object with a `read` method that returns `str` (`unicode`) objects, using `locale.getpreferredencoding` as an encoding. This matches the default behavior of the built-in `open` when no `mode` argument is provided.

      When `'binary'`, returns a file-like object where its `read` method returns `bytes` objects.

      When another string, it is the name of an encoding, and the file-like object’s `read` method will return `str` (`unicode`) objects, decoded from binary using the given encoding.

    cache bool

      If True, the file will be downloaded and saved locally or the already-cached local copy will be accessed. If False, the file-like object will directly access the resource (e.g. if a remote URL is accessed, an object like that from `urllib.request.urlopen` is returned).

  Returns:
    contents `bytes`

      The complete contents of the file as a bytes object.

  Raises:
    `urllib.error.URLError`

      If a remote file cannot be found.

    `OSError`

      If problems occur writing or reading a local file.

  See also

  `get_pkg_data_fileobj`

    returns a file-like object with the data

  `get_pkg_data_filename`

    returns a local name for a file containing the data