Open In App

TextTable module in Python

Last Updated : 11 Oct, 2020
Improve
Improve
Like Article
Like
Save
Share
Report

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).

Installation:

pip install texttable

Step-by-step Approach:

  • Import required module.

Python3




# Import required module
import texttable


  • Create an object of texttable()

Python3




# 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.

Python3




# 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.

Python3




# 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.

Python3




# 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

Python3




# Adding rows
table.add_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.

Python3




print(tableObj.draw())


The table illustration would be something like this:

Below is a program based on the above approach:

Python3




# 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
tableObj.add_rows([
        ["ORGANIZATION", "ESTABLISHED", "CEO"],
        ["Google", 1998, "Sundar Pichai"],
        ["Microsoft", 1975, "Satya Nadella"],
        ["Nokia", 1865, "Rajeev Suri"],
        ["Geeks for Geeks", 2008, "Sandeep Jain"],
        ["HackerRank", 2007, "Vivek Ravisankar"]
        ])
  
# Display table
print(tableObj.draw())


Output:



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads