🌐
GitHub
github.com › gregbanks › python-tabulate
GitHub - gregbanks/python-tabulate: fork of https://bitbucket.org/astanin/python-tabulate · GitHub
=========================== ========== =========== Table formatter time, μs rel. time =========================== ========== =========== join with tabs and newlines 22.6 1.0 csv to StringIO 31.6 1.4 asciitable (0.8.0) 777.6 34.4 tabulate (0.7.2) 1374.9 60.9 PrettyTable (0.7.2) 3640.3 161.2 texttable (0.8.1) 3901.3 172.8 =========================== ========== =========== ... 0.7: latex tables. Printing lists of named tuples and NumPy record arrays. Fix printing date and time values. Python <= 2.6.4 is supported.
Starred by 188 users
Forked by 14 users
Languages   Python
🌐
GitHub
github.com › astanin › python-tabulate
GitHub - astanin/python-tabulate: Pretty-print tabular data in Python, a library and a command-line utility. Repository migrated from bitbucket.org/astanin/python-tabulate. · GitHub
Usage: tabulate [options] [FILE ...] Pretty-print tabular data. Use Python module for more features. FILE a filename of the file with tabular data; if "-" or missing, read data from stdin.
Starred by 2.5K users
Forked by 186 users
Languages   Python
🌐
PyPI
pypi.org › project › tabulate
tabulate · PyPI
Options: -h, --help show this message -1, --header use the first row of data as a table header -o FILE, --output FILE print table to FILE (default: stdout) -s REGEXP, --sep REGEXP use a custom column separator (default: whitespace) -F FPFMT, --float FPFMT floating point number format (default: g) -I INTFMT, --int INTFMT integer point number format (default: "") -f FMT, --format FMT set output table format; supported formats: plain, simple, github, grid, fancy_grid, pipe, orgtbl, rst, mediawiki, html, latex, latex_raw, latex_booktabs, latex_longtable, tsv (default: simple) Such features as decimal point alignment and trying to parse everything as a number imply that tabulate:
      » pip install tabulate
    
Published   Mar 04, 2026
Version   0.10.0
🌐
GitHub
github.com › zackdever › python-tabulate
GitHub - zackdever/python-tabulate: github fork of https://bitbucket.org/astanin/python-tabulate · GitHub
===================================== ========== =========== Table formatter time, μs rel. time ===================================== ========== =========== join with tabs and newlines 27.0 1.0 csv to StringIO 38.5 1.4 tabletext (0.1) 529.4 19.6 asciitable (0.8.0) 877.2 32.5 tabulate (0.7.6-dev) 1549.7 57.5 tabulate (0.7.6-dev, WIDE_CHARS_MODE) 2271.5 84.2 PrettyTable (0.7.2) 3986.1 147.8 texttable (0.8.3) 4412.8 163.6 ===================================== ========== =========== ... 0.7: latex tables. Printing lists of named tuples and NumPy record arrays. Fix printing date and time values. Python <= 2.6.4 is supported. ... Contributions should include tests and an explanation for the changes they propose. Documentation (examples, docstrings, README.rst) should be updated accordingly.
Author   zackdever
🌐
GitHub
github.com › thruston › python-tabulate
GitHub - thruston/python-tabulate: A neat-text-table filter · GitHub
This verb provides an equivalent of the normal Python3 list method pop for the table. By default pop removes the last row, but you can use it to remove any row with the appropriate integer argument. For the purposes of pop the rows are zero indexed, so pop 0 will remove the top row, and the usual convention of negative indexes applies, so pop -1 will remove the last. Indexes that are too large are just ignored. Obviously if you are using tabulate from an editor you could just delete the row directly instead of use this command, but it is handy in certain idioms.
Author   thruston
🌐
GitHub
github.com › astanin › python-tabulate › blob › master › tabulate › __init__.py
python-tabulate/tabulate/__init__.py at master · astanin/python-tabulate
Pretty-print tabular data in Python, a library and a command-line utility. Repository migrated from bitbucket.org/astanin/python-tabulate. - python-tabulate/tabulate/__init__.py at master · astanin/python-tabulate
Author   astanin
🌐
GitHub
github.com › tabulate › tabulate
GitHub - tabulate/tabulate: A simple user-friendly interface to custom tables in a WordPress database. · GitHub
This plugin provides a simple user-friendly interface to tables in your database. Somewhat akin to phpMyAdmin, but easier to use and more focused on end users. The documentation can be found at tabulate.readthedocs.org.
Starred by 43 users
Forked by 12 users
Languages   PHP 67.6% | CSS 17.9% | HTML 10.6% | JavaScript 3.9%
🌐
GeeksforGeeks
geeksforgeeks.org › python › introduction-to-python-tabulate-library
Introduction to Python Tabulate Library - GeeksforGeeks
July 23, 2025 - The tabulate library is a Python library that provides a function to display data in various tabular formats. It can process data structures such as lists, lists of dictionaries, or pandas DataFrames and output them in formats like plain text, ...
🌐
GitHub
github.com › cmck › python-tabulate
GitHub - cmck/python-tabulate · GitHub
Pretty-print tabular data in Python, a library and a command-line utility.
Starred by 5 users
Forked by 2 users
Languages   Python
Find elsewhere
🌐
GitHub
github.com › topics › python-tabulate
python-tabulate · GitHub Topics · GitHub
python pypi python3 batch-file subprocess batch-script python-requests tabulate python-package-management python-subprocess python-tabulate python-package-manager python-package-update python-package-updater python-package-upgrade
🌐
GitHub
github.com › zackdever › python-tabulate › blob › master › tabulate.py
python-tabulate/tabulate.py at master · zackdever/python-tabulate
"latex_booktabs" produces a tabular environment of LaTeX document markup · using the booktabs.sty package: · >>> print(tabulate([["spam", 41.9999], ["eggs", "451.0"]], tablefmt="latex_booktabs")) \\begin{tabular}{lr} \\toprule · spam & 41.9999 \\\\ eggs & 451 \\\\ \\bottomrule ·
Author   zackdever
🌐
GitHub
github.com › thruston › python-tabulate › blob › master › README.md
python-tabulate/README.md at master · thruston/python-tabulate
This verb provides an equivalent of the normal Python3 list method pop for the table. By default pop removes the last row, but you can use it to remove any row with the appropriate integer argument. For the purposes of pop the rows are zero indexed, so pop 0 will remove the top row, and the usual convention of negative indexes applies, so pop -1 will remove the last. Indexes that are too large are just ignored. Obviously if you are using tabulate from an editor you could just delete the row directly instead of use this command, but it is handy in certain idioms.
Author   thruston
🌐
GitHub
github.com › astanin › python-tabulate › blob › master › CHANGELOG
python-tabulate/CHANGELOG at master · astanin/python-tabulate
Pretty-print tabular data in Python, a library and a command-line utility. Repository migrated from bitbucket.org/astanin/python-tabulate. - astanin/python-tabulate
Author   astanin
🌐
GitHub
github.com › kkew3 › tabulate
GitHub - kkew3/tabulate: Multiline fixed-width plaintext table generator · GitHub
Format plain text into fixed-width table with multi-line cell by wrapping text in each field Usage: tabulate [OPTIONS] [FILENAME] Arguments: [FILENAME] The input stream, default to stdin Options: -W, --widths <WIDTHS> The column widths -T, --table-width <TABLE_WIDTH> The table total width, default to terminal width -L, --layout <TABLE_LAYOUT> The table layout, default to "grid_no_header" -S, --strict Specify to enable strict mode -d, --delimiter <DELIMITER> The field delimiter in the input data, default to <TAB> -e, --escape Specify to enable escape sequence as `echo -e` in input data -h, --help Print help
Author   kkew3
🌐
Python for Network Engineers
pyneng.readthedocs.io › en › latest › book › 12_useful_modules › tabulate.html
tabulate - Python for network engineers
Regular expressions ... IV. Data writing and transmission ... V. Working with network devices ... VI. Basics of object-oriented programming ... VII. Working with databases ... VIII. Additional information ... tabulate is a module that allows you to display table data beautifully.
Top answer
1 of 16
1041

There are some light and useful python packages for this purpose:

1. tabulate

https://pypi.python.org/pypi/tabulate

from tabulate import tabulate
print(tabulate([['Alice', 24], ['Bob', 19]], headers=['Name', 'Age']))
Name      Age
------  -----
Alice      24
Bob        19

tabulate has many options to specify headers and table format.

print(tabulate(
    [['Alice', 24], ['Bob', 19]],
    headers=['Name', 'Age'],
    tablefmt='orgtbl'))
| Name   |   Age |
|--------+-------|
| Alice  |    24 |
| Bob    |    19 |

2. PrettyTable

https://pypi.python.org/pypi/PrettyTable

from prettytable import PrettyTable
t = PrettyTable(['Name', 'Age'])
t.add_row(['Alice', 24])
t.add_row(['Bob', 19])
print(t)
+-------+-----+
|  Name | Age |
+-------+-----+
| Alice |  24 |
|  Bob  |  19 |
+-------+-----+

PrettyTable has options to read data from csv, html, sql database. Also you are able to select subset of data, sort table and change table styles.

3. texttable

https://pypi.python.org/pypi/texttable

from texttable import Texttable
t = Texttable()
t.add_rows([['Name', 'Age'], ['Alice', 24], ['Bob', 19]])
print(t.draw())
+-------+-----+
| Name  | Age |
+=======+=====+
| Alice | 24  |
+-------+-----+
| Bob   | 19  |
+-------+-----+

with texttable you can control horizontal/vertical align, border style and data types.

4. termtables

https://github.com/nschloe/termtables

import termtables as tt

string = tt.to_string(
    [["Alice", 24], ["Bob", 19]],
    header=["Name", "Age"],
    style=tt.styles.ascii_thin_double,
    # alignment="ll",
    # padding=(0, 1),
)
print(string)
+-------+-----+
| Name  | Age |
+=======+=====+
| Alice | 24  |
+-------+-----+
| Bob   | 19  |
+-------+-----+

with texttable you can control horizontal/vertical align, border style and data types.

Other options

  • terminaltables - Easily draw tables in terminal/console applications from a list of lists of strings. Supports multi-line rows.
  • asciitable can read and write a wide range of ASCII table formats via built-in Extension Reader Classes.
2 of 16
324

Some ad-hoc code:

row_format ="{:>15}" * (len(teams_list) + 1)
print(row_format.format("", *teams_list))
for team, row in zip(teams_list, data):
    print(row_format.format(team, *row))

This relies on str.format() and the Format Specification Mini-Language.

🌐
Copdips
copdips.com › 2018 › 07 › use-python-tabulate-module-to-create-tables.html
Use python tabulate module to create tables - A code to remember
July 28, 2018 - If you want to create some tables from a python list, you can use the tabulate module, it can generate the table easily in text mode and in many formats, than you can past it into markdown, wiki files or add the print version to your python CLI in order to give a beautiful output to the CLI users.
🌐
GitHub
github.com › astanin › python-tabulate › blob › master › HOWTOPUBLISH
python-tabulate/HOWTOPUBLISH at master · astanin/python-tabulate
Pretty-print tabular data in Python, a library and a command-line utility. Repository migrated from bitbucket.org/astanin/python-tabulate. - astanin/python-tabulate
Author   astanin
🌐
GitHub
github.com › topics › tabulate
tabulate · GitHub Topics · GitHub
markdown cli utility csv command-line csv-files csv-format column columns csv-parsing columnate tabulate ... A tutorial-based introduction to web scraping with Python.
🌐
Snyk
snyk.io › advisor › tabulate › functions › tabulate.tabulate
How to use the tabulate.tabulate function in tabulate | Snyk
Azure / sonic-utilities / crm / main.py View on Github · data = [] for stage in ["INGRESS", "EGRESS"]: for bind_point in ["PORT", "LAG", "VLAN", "RIF", "SWITCH"]: crm_stats = countersdb.get_all(countersdb.COUNTERS_DB, 'CRM:ACL_STATS:{0}:{1}'.format(stage, bind_point)) if crm_stats: for res in ["acl_group", "acl_table"]: data.append([ stage, bind_point, res, crm_stats['crm_stats_' + res + "_used"], crm_stats['crm_stats_' + res + "_available"] ]) print '\n' print tabulate(data, headers=header, tablefmt="simple", missingval="") print '\n'