Skip to content

sswan/tabfileio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tabfileio

Tabular file input/output in multiple formats

This package is used to read and write numerical tabular data. It is made for handling data in columns with a header (a text identifier). Supported formats are text, zipped text, excel (xls and xlsx), python pickle, json, and HDF5.

Different packages are required for different file types with output data always in a numpy.array(). The format is determined by the file extension. If the extension is unrecognized it defaults to a text format. All file formats only use packages available in the python standard library except:

  • .xls: xlrd for reading, and xlwt for writing
  • .xlsx: openpyxl
  • .hdf5 or .h5: h5py

The package expects column-based float data with text headers. The package was initially developed to store state variables for a simple simulation program. Here is an example of a text file demonstrating the general format:

   header1  header2  header3
       1.0      0.1      1.1
       2.0      0.2      1.2
       3.0      0.3      1.3
       4.0      0.4      1.4

After being processed by tabfileio.read_file() the data is represented as

(['header1', 'header2', 'header3'],array([[ 1. ,  0.1,  1.1],
                                          [ 2. ,  0.2,  1.2],
                                          [ 3. ,  0.3,  1.3],
                                          [ 4. ,  0.4,  1.4]]))

Converting File Types

There is also a small utility built-in to the module that can be invoked to quickly convert between tabular file types. As it is not very polished, it does not have its own command line executable and is invoked as a regular module:

$ python -m tabfileio input.xlsx output.txt.gz

Testing

To test the installation, run:

$ python -m tabfileio --test

About

Tabular file input/output in multiple formats

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages