Render data as clean ASCII/Unicode tables in the terminal with zero configuration
pip install philiprehberger-text-tableRender data as clean ASCII/Unicode tables in the terminal with zero configuration.
pip install philiprehberger-text-table
from philiprehberger_text_table import table
headers = ["Name", "Age", "City"]
rows = [
["Alice", 30, "New York"],
["Bob", 25, "London"],
["Charlie", 35, "Tokyo"],
]
print(table(headers, rows))
Output:
┌─────────┬─────┬──────────┐
│ Name │ Age │ City │
├─────────┼─────┼──────────┤
│ Alice │ 30 │ New York │
│ Bob │ 25 │ London │
│ Charlie │ 35 │ Tokyo │
└─────────┴─────┴──────────┘
from philiprehberger_text_table import from_dicts
data = [
{"name": "Alice", "score": 95},
{"name": "Bob", "score": 87},
]
print(from_dicts(data))
from philiprehberger_text_table import from_csv
print(from_csv("data.csv"))
# ASCII style
print(table(headers, rows, style="ascii"))
# Markdown style
print(table(headers, rows, style="markdown"))
# Minimal style (no borders)
print(table(headers, rows, style="minimal"))
# Compact style (no outer borders)
print(table(headers, rows, style="compact"))
# Override auto-detection for all columns
print(table(headers, rows, align="center"))
# Per-column alignment
print(table(headers, rows, align=["left", "center", "right"]))
from philiprehberger_text_table import from_csv_string
csv_data = "Name,Age\nAlice,30\nBob,25"
print(from_csv_string(csv_data))
print(table(headers, rows, max_width=10))
| Function | Description |
|---|---|
table(headers, rows, *, style="unicode", max_width=None, align=None) | Render a table from headers and row data |
from_dicts(data, *, style="unicode", max_width=None, align=None) | Render a table from a list of dictionaries |
from_csv(path, *, style="unicode", max_width=None, align=None) | Read a CSV file and render as a table |
from_csv_string(text, *, style="unicode", max_width=None, align=None) | Render a table from CSV string content |
Styles: "unicode", "ascii", "markdown", "minimal", "compact"
Alignments: "left", "right", "center" (default: auto-detect, numeric columns right-aligned)
pip install -e .
python -m pytest tests/ -v
If you find this project useful: