Skip to content
Related Articles

Related Articles

TextTable module in Python
  • Last Updated : 11 Oct, 2020

It is a python module, which helps us to print table on terminal. It is one of the basic python modules for reading and writing text tables in ASCII code. It aims to make the interface as similar as possible like csv module in Python. The texttable module supports both fixed-size tables (where column sizes are pre-determined) and dynamic-size tables (where columns can added or removed).


pip install texttable

Step-by-step Approach:

  • Import required module.


# Import required module
import texttable
  • Create an object of texttable()


# Creating object
tableObj = texttable.Texttable(self,max width)
# max_width must be an integer,whose value is maximum width of the table
# if set to 0, size is unlimited (self adjustible according to text inside cell),
# therefore cells won't be wrapped so it's recommended to use 0
  • Use set_cols_align() method to create columns.


# Creating columns
tableObj.set_cols_align(["l", "l", "r", "c"])
# Set the desired columns alignment:
# "l" refers to column flushed left
# "c" refers to  column centered
# "r" refers to column flushed right
  • Use set_cols_dtype() to set datatype of each column. However, this step is optional.


# Set datatype
tableObj.set_cols_dtype(["t", "i", "f", "a"])
# texttable objects supports five types of data types:
# "t" refers to text
# "f" refers to decimal
# "e" refers to exponent
# "i" refers to integer
# "a" refers to automatic
  • Use set_cols_valign() to adjust columns.


# Adjust Columns
tableObj.set_cols_valign(["t", "t", "m", "b"])
# Set the desired columns vertical alignment the elements of the 
# array should be either "t", "m" or "b":
# "t" refers to column aligned on the top of the cell
# "m" refers to column aligned on the middle of the cell
# "b" refers to column aligned on the bottom of the cell        
  • Use add_rows() method to insert rows into the table


# Adding rows
        ["Text_Heading", "Int_Heading", "Float_Heading", "Auto_Heading"],
        ["Data1", 9, 1.23456789, "GFG"],
        ["Data2", 1, 9.87654321, "g4g"],
# add_rows(self, rows, header=True):
# The 'rows' argument can be either an iterator returning arrays, or a
# by-dimensional array.
# 'header' specifies if the first row should be used as the header of the table
  • Use draw() method to display the table.



The table illustration would be something like this:

Below is a program based on the above approach:


# Import required module
import texttable
# Create texttable object
tableObj = texttable.Texttable()
# Set columns
tableObj.set_cols_align(["l", "r", "c"])
# Set datatype of each column
tableObj.set_cols_dtype(["a", "i", "t"])
# Adjust columns
tableObj.set_cols_valign(["t", "m", "b"])
# Insert rows
        ["Google", 1998, "Sundar Pichai"],
        ["Microsoft", 1975, "Satya Nadella"],
        ["Nokia", 1865, "Rajeev Suri"],
        ["Geeks for Geeks", 2008, "Sandeep Jain"],
        ["HackerRank", 2007, "Vivek Ravisankar"]
# Display table


Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course.

My Personal Notes arrow_drop_up
Recommended Articles
Page :