Open In App

TextTable module in Python

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
import 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




# 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






# 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




# 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        




# 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




print(tableObj.draw())

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
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:


Article Tags :