2013-11-21 4 views
-2
table = Texttable() 
table.set_deco(Texttable.HEADER | Texttable.VLINES | Texttable.HLINES | Texttable.BORDER) 
table.add_rows([ ["Name", "Age", "Nickname"], 
        ["Xavier Huon", 32, "Xav'"], 
        ["Baptiste Clement", 1, "Baby"] ]) 
print table.draw() 

результат:питон: Объединение столбцов в texttable

enter image description here

, как я могу это сделать?

enter image description here

+0

Ваш результат не пуст, поделитесь информацией о получившемся в ожидании –

+0

что ты говоришь? –

+0

Я изменю таблицу 1 на таблицу 2, как изменить таблицу? –

ответ

1

Там не очень хороший способ сделать это с texttable. Например, он, похоже, не понимает, что под основным заголовком могут быть дополнительные сгруппированные списки.

Вместо этого, вы можете сделать это с некоторым умным форматированием:

>>> table = Texttable() 
>>> table.set_deco(Texttable.HEADER | Texttable.VLINES | Texttable.HLINES | Texttable.BORDER) 
>>> 
>>> table.add_rows([ ["Name\nfirst | last", "Age", "Nickname"], 
...      ["Xavier | Huon", 32, "Xav'"], 
...      ["Baptiste | Clement", 1, "Baby"] ]) 
>>> print table.draw() 
+--------------------+-----+----------+ 
|  Name  | Age | Nickname | 
| first | last |  |   | 
+====================+=====+==========+ 
| Xavier | Huon | 32 | Xav'  | 
+--------------------+-----+----------+ 
| Baptiste | Clement | 1 | Baby  | 
+--------------------+-----+----------+ 

Единственная проблема будет совместив first и last элементы имен должны таблица расти больше с более длинным названием. Однако вы можете определить математику, чтобы определить наибольшее имя, а затем использовать форматирование строк влево и вправо. Я оставлю это как упражнение для читателя (и apparently double poster).

+0

не использовать \ n но cols 'name' colspan2 как colspan в текстовом столе? –

+0

@RobbyZhi: Вы не можете. – VooDooNOFX

 Смежные вопросы

  • Нет связанных вопросов^_^