Reading and writing data tables with types and uncertainties (pwkit.tabfile
)¶
pwkit.tabfile - I/O with typed tables of uncertain measurements.
Functions:
read - Read a typed table file. vizread - Read a headerless table file, with columns specified separately write - Write a typed table file.
The table format is line-oriented text. Hashes denote comments. Initial lines of the form “colname = value” set a column name that gets the same value for every item in the table. The header line is prefixed with an @ sign. Subsequent lines are data rows.
-
pwkit.tabfile.
read
(path, tabwidth=8, **kwargs)[source]¶ Read a typed tabular text file into a stream of Holders.
Arguments:
- path
- The path of the file to read.
- tabwidth=8
- The tab width to assume. Please don’t monkey with it.
- mode=’rt’
- The file open mode (passed to io.open()).
- noexistok=False
- If True and the file is missing, treat it as empty.
**kwargs
- Passed to io.open ().
Returns a generator for a stream of pwkit.Holder`s, each of which will contain ints, strings, or some kind of measurement (cf `pwkit.msmt).
-
pwkit.tabfile.
vizread
(descpath, descsection, tabpath, tabwidth=8, **kwargs)[source]¶ Read a headerless tabular text file into a stream of Holders.
Arguments:
- descpath
- The path of the table description ini file.
- descsection
- The section in the description file to use.
- tabpath
- The path to the actual table data.
- tabwidth=8
- The tab width to assume. Please don’t monkey with it.
- mode=’rt’
- The table file open mode (passed to io.open()).
- noexistok=False
- If True and the file is missing, treat it as empty.
**kwargs
- Passed to io.open ().
Returns a generator of a stream of pwkit.Holder`s, each of which will contain ints, strings, or some kind of measurement (cf `pwkit.msmt). In this version, the table file does not contain a header, as seen in Vizier data files. The corresponding section in the description ini file has keys of the form “colname = <start> <end> [type]”, where <start> and <end> are the 1-based character numbers defining the column, and [type] is an optional specified of the measurement type of the column (one of the usual b, i, f, u, Lu, Pu).
-
pwkit.tabfile.
write
(stream, items, fieldnames, tabwidth=8)[source]¶ Write a typed tabular text file to the specified stream.
Arguments:
- stream
- The destination stream.
- items
- An iterable of items to write. Two passes have to be made over the items (to discover the needed column widths), so this will be saved into a list.
- fieldnames
- Either a list of field name strings, or a single string. If the latter, it will be split into a list with .split().
- tabwidth=8
- The tab width to use. Please don’t monkey with it.
Returns nothing.