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 aread
method returnsstr
(unicode
) objects, usinglocale.getpreferredencoding
as an encoding. This matches the default behavior of the built-inopen
when nomode
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 returnstr
(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]