<p>我很久以前就读过这个问题,并且完成了我自己漂亮的表格打印机的编写:<a href="https://pypi.python.org/pypi/tabulate" rel="noreferrer">^{<cd1>}</a>。</p>
<p>我的用例是:</p>
<ul>
<li>我大部分时间想要一条单行线</li>
<li>这足够聪明为我找到最好的格式</li>
<li>可以输出不同的纯文本格式</li>
</ul>
<p>在您的示例中,<code>grid</code>可能是最相似的输出格式:</p>
<pre><code>from tabulate import tabulate
print tabulate([["value1", "value2"], ["value3", "value4"]], ["column 1", "column 2"], tablefmt="grid")
+------------+------------+
| column 1 | column 2 |
+============+============+
| value1 | value2 |
+------------+------------+
| value3 | value4 |
+------------+------------+
</code></pre>
<p>其他支持的格式有<code>plain</code>(无行)、<code>simple</code>(Pandoc简单表)、<code>pipe</code>(类似于PHP Markdown Extra中的表)、<code>orgtbl</code>(类似于Emacs的org模式中的表)、<code>rst</code>(类似于structuredtext中的简单表)。<code>grid</code>和<code>orgtbl</code>在Emacs中很容易编辑。</p>
<p>性能方面,<code>tabulate</code>比<code>asciitable</code>稍慢,但比<code>PrettyTable</code>和<code>texttable</code>快得多。</p>
<p>p.S.我也非常喜欢对齐数字<a href="https://tex.stackexchange.com/questions/2746/aligning-numbers-by-decimal-points-in-table-columns">by a decimal column</a>。因此,这是数字的默认对齐方式(如果有)(可重写)。</p>