J'ai lu cette question depuis longtemps, et a terminé l'écriture de mon propre imprimeur pour les tableaux: tabulate
.
Mon cas d'utilisation est:
- Je veux un one-liner, la plupart du temps
- ce qui est assez intelligent pour comprendre la meilleure mise en forme pour moi
- et pouvez de sortie différente de la plaine-formats de texte
Compte tenu de votre exemple, grid
est probablement le plus semblable format de sortie:
from tabulate import tabulate
print tabulate([["value1", "value2"], ["value3", "value4"]], ["column 1", "column 2"], tablefmt="grid")
+------------+------------+
| column 1 | column 2 |
+============+============+
| value1 | value2 |
+------------+------------+
| value3 | value4 |
+------------+------------+
D'autres formats pris en charge, plain
(pas de lignes), simple
(Pandoc les tableaux simples), pipe
(comme les tableaux en PHP Markdown Extra), orgtbl
(les tables dans Emacs' org-mode), rst
(comme de simples tables en reStructuredText). grid
et orgtbl
sont facilement modifiables dans Emacs.
Performance sage, tabulate
est légèrement plus lent que l' asciitable
, mais beaucoup plus vite qu' PrettyTable
et texttable
.
P. S. je suis également un grand fan de l'alignement de chiffres par un nombre décimal de la colonne. Donc, c'est l'alignement par défaut pour les nombres, si il y a de tout (substituables).