https://github.com/atomgomba/txtable
Plain text tables for Python 3
https://github.com/atomgomba/txtable
formatter json python3 table
Last synced: 5 months ago
JSON representation
Plain text tables for Python 3
- Host: GitHub
- URL: https://github.com/atomgomba/txtable
- Owner: atomgomba
- License: unlicense
- Created: 2015-11-05T14:07:24.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2018-07-19T11:57:11.000Z (almost 8 years ago)
- Last Synced: 2025-11-08T11:16:03.819Z (8 months ago)
- Topics: formatter, json, python3, table
- Language: Python
- Size: 10.7 KB
- Stars: 10
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
Awesome Lists containing this project
README
txtable - Plain text tables for Python 3
========================================
Pretty-print tabular data as plain text. Supports Markdown and reStructuredText tables too.
Sample outputs
==============
Default formatter
-----------------
::
Date Mobile Operating System Percent of Usage
========== ======================= ================
2008-12-01 Android 0
2008-12-01 iOS 32.56
2008-12-01 SymbianOS 42.02
2008-12-01 Series 40 0
2008-12-01 BlackBerry OS 0
2008-12-01 Samsung 0
2008-12-01 Unknown 16
2008-12-01 Windows Phone 0
Headless formatter
------------------
::
Date Mobile Operating System Percent of Usage
2008-12-01 Android 0
2008-12-01 iOS 32.56
2008-12-01 SymbianOS 42.02
2008-12-01 Series 40 0
2008-12-01 BlackBerry OS 0
MD formatter
------------
::
Date | Mobile Operating System | Percent of Usage
---------- | ----------------------- | ----------------
2008-12-01 | Android | 0
2008-12-01 | iOS | 32.56
2008-12-01 | SymbianOS | 42.02
2008-12-01 | Series 40 | 0
2008-12-01 | BlackBerry OS | 0
RST formatter
-------------
::
+------------+-------------------------+------------------+
| Date | Mobile Operating System | Percent of Usage |
+============+=========================+==================+
| 2008-12-01 | Android | 0 |
+------------+-------------------------+------------------+
| 2008-12-01 | iOS | 32.56 |
+------------+-------------------------+------------------+
| 2008-12-01 | SymbianOS | 42.02 |
+------------+-------------------------+------------------+
| 2008-12-01 | Series 40 | 0 |
+------------+-------------------------+------------------+
| 2008-12-01 | BlackBerry OS | 0 |
+------------+-------------------------+------------------+
Installation
============
It's the usual process as with any other Python package:
.. code:: bash
python3 setup.py install
Or install with pip:
.. code:: bash
pip3 install txtable
Usage as a module
=================
Default usage:
.. code:: python
# let's pretty-print a CSV file
import csv
from txtable import TextTable
with open("cities.csv") as f:
data = list(csv.reader(f))
# the TextTable constructor takes a sequence type as the first argument
print(TextTable(data))
Use a formatter (available formatters are DefaultFormatter, HeadlessFormatter, MdFormatter, RstFormatter):
.. code:: python
print(TextTable(data, formatter=MdFormatter()))
Command-line usage
==================
The command-line interface supports formatting input data in JSON and CSV format. Input can be a list of files or stdin.
.. code:: bash
cat cities.csv | python3 -m txtable -t csv -f md
.. code:: bash
curl http://ponydealer.com/api/available.json | python3 -m txtable -t json
Command-line help
-----------------
.. code:: bash
usage: txtable [-h] [-f FORMATTER] [-t TYPE] [files [files ...]]
positional arguments:
files Path to input files (json/csv) or read from stdin when
empty (default: [])
optional arguments:
-h, --help show this help message and exit
-f FORMATTER, --formatter FORMATTER
Table format: default, headless, md (Markdown) or rst
(ReStructuredText) (default: default)
-t TYPE, --type TYPE Input data type to read from stdin: json/csv (default:
json)