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: