高级统一文件I/O#
astropy
使用 I/O Registry 为读写不同格式的数据提供统一的界面。对于许多常见情况,这将简化文件I/O流程,并减少了解其中所有低级I/O包的单独详细信息的需要 astropy
.
Overview
统一接口的基本思想是每个数据容器类,例如 Table
或 CCDData
有类方法 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')