Tabellen auf der Konsole mit terminaltables für Python

Die Ausgabe von Tabellen auf der Konsole kann sich als relativ aufwendig erweisen, da hier viele Randbedingungen beachtet werden müssen. Python Entwickler können hierfür das terminaltables Paket verwenden, was ihnen sehr viel Arbeit abnehmen kann.

In der aktuellen Version 3.1.0 ist terminaltables mit vielen Python Versionen aus der 2er und der 3er Serie und mit verschiedenen Betriebssystemen wie Linux, Windows und MacOS kompatibel.

Damit es verwendet werden kann muss es zunächst installiert werden. Dies kann zum Beispiel wie folgt per pip geschehen.

$ pip install terminaltables

Für einen anschließenden Test wird der interaktive Python-Interpreter gestart, das Modul importiert und ein paar Testdaten angelegt.

$ python
>>> import terminaltables
>>> data = [
... ["Heading 1", "Heading 2"],
... ["Data", "Data"],
... ["Data", "Data"],
... ["Data", "Data"]
... ]

Anschließend können die verschiedenen zur Verfügung stehenden Tabellen getestet werden. Im Folgenden sind einige Beispiel zu sehen.

>>> table = terminaltables.AsciiTable(data)
>>> print(table.table)
+-----------+-----------+
| Heading 1 | Heading 2 |
+-----------+-----------+
| Data      | Data      |
| Data      | Data      |
| Data      | Data      |
+-----------+-----------+
>>> table = terminaltables.AsciiTable(data, title="Test")
>>> print(table.table)
+Test-------+-----------+
| Heading 1 | Heading 2 |
+-----------+-----------+
| Data      | Data      |
| Data      | Data      |
| Data      | Data      |
+-----------+-----------+
>>> table = terminaltables.SingleTable(data, title="Test")
>>> print(table.table)
┌Test───────┬───────────┐
│ Heading 1 │ Heading 2 │
├───────────┼───────────┤
│ Data      │ Data      │
│ Data      │ Data      │
│ Data      │ Data      │
└───────────┴───────────┘
>>> table = terminaltables.DoubleTable(data, title="Test")
>>> print(table.table)
╔Test═══════╦═══════════╗
║ Heading 1 ║ Heading 2 ║
╠═══════════╬═══════════╣
║ Data      ║ Data      ║
║ Data      ║ Data      ║
║ Data      ║ Data      ║
╚═══════════╩═══════════╝
>>> table = terminaltables.GithubFlavoredMarkdownTable(data)
>>> print(table.table)
| Heading 1 | Heading 2 |
|-----------|-----------|
| Data      | Data      |
| Data      | Data      |
| Data      | Data      |

Neben den hier aufgeführten Beispielen gibt es noch weitere Einstellungsmöglichkeiten, die die Darstellung der Tabellen verändern. Es ist auch möglich die Text mit Hilfe von anderen Module einzufärben. Das kann zum Beispiel mit colorama erfolgen, welches in dem Artikel "Farbige Textausgabe mit colorama für Python" bereits vorgestellt wurde. In der terminaltables Dokumentation können weitere Informationen und Beispiele gefunden werden.

Links

Verwandte Artikel