Reading and Writing Table Objects#
astropy
provides a unified interface for reading and writing data in
different formats. For many common cases this will streamline the process of
file I/O and reduce the need to learn the separate details of all of the I/O
packages within astropy
. For details and examples of using this interface
see the Unified File Read/Write Interface section.
Getting Started#
The Table
class includes two methods,
read()
and write()
, that
make it possible to read from and write to files. A number of formats are
automatically supported (see Built-In Table Readers/Writers) and new file
formats and extensions can be registered with the Table
class (see I/O Registry (astropy.io.registry)).
To use this interface, first import the Table
class,
then call the Table
read()
method with the name of the file and the file format, for instance
'ascii.daophot'
:
>>> from astropy.table import Table
>>> t = Table.read('photometry.dat', format='ascii.daophot')
It is possible to load tables directly from the Internet using URLs. For
example, download tables from VizieR catalogs
in CDS format ('ascii.cds'
):
>>> t = Table.read("ftp://cdsarc.u-strasbg.fr/pub/cats/VII/253/snrs.dat",
... readme="ftp://cdsarc.u-strasbg.fr/pub/cats/VII/253/ReadMe",
... format="ascii.cds")
For certain file formats, the format can be automatically detected, for example from the filename extension:
>>> t = Table.read('table.tex')
Similarly, for writing, the format can be explicitly specified:
>>> t.write(filename, format='latex')
As for the read()
method, the format may
be automatically identified in some cases.
Any additional arguments specified will depend on the format. For examples of
this see the section Built-In Table Readers/Writers. This section also
provides the full list of choices for the format
argument.
Supported Formats#
The Unified File Read/Write Interface has built-in support for the following data file formats: