get_pkg_data_fileobjs

astropy.utils.data.get_pkg_data_fileobjs(datadir, package=None, pattern='*', encoding=None)[source]

Returns readable file objects for all of the data files in a given directory that match a given glob pattern.

Parameters:
datadirpython:str

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

  • The name of a directory included in the source distribution. The path is relative to the module calling this function. For example, if calling from astropy.pkname, use 'data' to get the files in astropy/pkgname/data

  • Remote URLs are not currently supported

packagepython: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.

patternpython:str, optional

A UNIX-style filename glob pattern to match files. See the glob module in the standard library for more information. By default, matches all files.

encodingpython: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.

Returns:
fileobjspython:iterator of python:file object object

File objects for each of the files on the local filesystem in datadir matching pattern.

Examples

This will retrieve the contents of the data file for the astropy.wcs tests:

>>> from astropy.utils.data import get_pkg_data_filenames
>>> for fd in get_pkg_data_fileobjs('data/maps', 'astropy.wcs.tests',
...                                 '*.hdr'):
...     fcontents = fd.read()
...