get_pkg_data_fileobj

astropy.utils.data.get_pkg_data_fileobj(data_name, package=None, encoding=None, cache=True)[ソース]

パケットの標準位置からデータファイルを検索し,そのファイルを読み出しバイトのクラスファイルオブジェクトとして提供する.

パラメータ
data_name応力.応力

必要なデータファイルの名前/場所。以下の選択肢の1つ:

  • ソース配信に含まれるデータファイルの名前。このパスは,この関数を呼び出すモジュールに対して.例えば、もし astropy.pkname 使用 'data/file.dat' 書類を入れる astropy/pkgname/data/file.dat それがそうです。2点はレベルを上げるために使うことができます。同じ例では '../data/file.dat' 得る astropy/data/file.dat それがそうです。

  • マッチするローカルファイルが存在しない場合は,Astropyデータサーバにそのファイルを問い合わせる.

  • このようなハッシュは compute_hash プレフィックスは、‘hash/34 c 33 b 3 b 0 d 56 eb9462003 af 249 effer 28’のような‘hash/’であることを要求することができる。まずローカルでハッシュを検索し,見つからなければAstropyデータサーバに問い合わせる.

package文字列、オプション

指定された場合、呼び出しモジュールに対するデフォルトのパケットルックアップではなく、所与のパケットに対するファイルが検索される。

encoding文字列、オプション

When None (default), returns a file-like object with a read method 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.

いつ? 'binary' 似たようなファイルのオブジェクトを返します read 方法戻り bytes 物体です。

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ブルル.

Trueである場合、ファイルは、ローカルにダウンロードされて保存されるか、またはキャッシュされたローカルコピーにアクセスされる。Falseである場合、クラスファイル·オブジェクトはリソースに直接アクセスする(例えば、リモートURLにアクセスする場合は、同様である。 urllib.request.urlopen 戻ります)。

返品
fileobj書類状.

データファイルの内容を持つオブジェクトは,通過可能である read 機能します。使用することができます with 文の後は自動的に自分自身を閉じる. with 立ちはだかっています。

賃上げをする
urllib.error.URLError

もしリモートファイルが見つからなかったら。

OSError

ローカルファイルの書き込みや読み出し時に問題が発生する.

参考

get_pkg_data_contents

ファイルまたはurlの内容をバイトオブジェクトの形で返す.

get_pkg_data_filename

データを含むファイルのローカル名を返す

実例.

これは検索データファイルとその内容を astropy.wcs テスト:

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

次の例は、Astpyデータサーバからデータファイルをダウンロードします。 allsky/allsky_rosat.fits ソース配信にはファイルは存在しません。また、次のアクセス時にダウンロードする必要がないように、ファイルをローカルに保存します。:

>>> from astropy.utils.data import get_pkg_data_fileobj
>>> with get_pkg_data_fileobj('allsky/allsky_rosat.fits',
...                           encoding='binary') as fobj:  
...     fcontents = fobj.read()
...
Downloading http://data.astropy.org/allsky/allsky_rosat.fits [Done]

これは同じことをしましたが not ローカルキャッシュ::

>>> with get_pkg_data_fileobj('allsky/allsky_rosat.fits',
...                           encoding='binary', cache=False) as fobj:  
...     fcontents = fobj.read()
...
Downloading http://data.astropy.org/allsky/allsky_rosat.fits [Done]