高级统一文件I/O#

astropy 使用 I/O Registry 为读写不同格式的数据提供统一的界面。对于许多常见情况,这将简化文件I/O流程,并减少了解其中所有低级I/O包的单独详细信息的需要 astropy .

Overview

统一接口的基本思想是每个数据容器类,例如 TableCCDData 有类方法 read()write() 可用于读写数据。

这些方法的第一个位置参数指定输入或输出。通常,输入可以是文件名、类似文件的对象或URL。对于某些格式,最值得注意的是 astropy.io.ascii 格式时,输入还可以是表示数据的字符串或字符串列表。输出可以是文件名或类似文件的对象。

文件格式使用 format 关键字参数。除非格式可以根据文件名或文件内容唯一确定,否则这是必需的。

Example

下面的示例显示了如何读取专用DAOphot格式的表并将其写回FITS格式。请注意,FITS是一种格式,接口会自动从文件名中识别该格式,因此 format 不需要争论。

>>> from astropy.table import Table
>>> t = Table.read('photometry.dat', format='ascii.daophot')
>>> t.write('photometry.fits')

每种文件格式都由特定的读取器或写入器处理,并且每个函数都有自己的参数集。

Getting Help

要获取有关每种格式的可用参数的帮助,请使用 help() 适当的方法 read()write() 类方法,例如, astropy.table.Table.read .在下面的示例中,我们不显示长输出:

>>> from astropy.table import Table
>>> from astropy.nddata import CCDData
>>> CCDData.read.help('fits')
>>> Table.read.help('ascii')
>>> Table.read.help('ascii.latex')
>>> Table.write.help('hdf5')
>>> Table.write.help('csv')