Python中的tabing?

2024-05-15 04:40:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要将数据作为表格写入文本文件。有点像数据库。标题有车手,赛车,车队,网格,最快圈数,比赛时间和积分。当我试图写下它的数据,不要排队。因为有些司机的名字比其他人长。你知道吗

看起来有点像这样:

|     Driver      |
|Sebastian William|
|Tom Hamilton  | 

只有两个名字与标题对齐。我现在只想解决司机的问题,一旦我想,我应该能够得到所有其他头条线了。你知道吗

使用for循环遍历字典数组,我将x设置为等于驱动程序名称的len,22是最长名称(18)的长度加上几个空格。你知道吗

TextFile.write((items['Driver']+'\t|').expandtabs(22-x))

有没有办法让他们排成一排?你知道吗


Tags: 数据名称数据库网格标题driver时间名字
2条回答

您可以使用format string syntax

>>> "|{:22}|".format("Niki Lauda")
'|Niki Lauda            |'

也可以更改对齐方式:

>>> "|{:>22}|".format("Niki Lauda")
'|            Niki Lauda|'
>>> "|{:^22}|".format("Niki Lauda")
'|      Niki Lauda      |'

如果希望列大小更灵活,也可以将其参数化:

>>> "|{:^{}}|".format("Niki Lauda", 24)
'|       Niki Lauda       |'

除了Tim提供的答案之外,您还可以选择使用Tabulate,这非常易于使用和定制。你知道吗

table = [["spam",42],["eggs",451],["bacon",0]]
headers = ["item", "qty"]
print tabulate(table, headers, tablefmt="grid")

+    +   -+
| item   |   qty |
+========+=======+
| spam   |    42 |
+    +   -+
| eggs   |   451 |
+    +   -+
| bacon  |     0 |
+    +   -+

这也提供了对多种不同数据库样式的支持。我更喜欢使用format,因为它允许我通过配置tablefmt参数来完全更改输出样式。你知道吗

相关问题 更多 >

    热门问题