TextTable module in Python

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).
Installation:
pip install texttable

Step-by-step Approach:
Import required module.
Python3
# Import required moduleimport texttable
Create an object of texttable()
Python3
# Creating objecttableObj = 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 columnstableObj.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 datatypetableObj.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 ColumnstableObj.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 rowstable.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 moduleimport texttable  # Create texttable objecttableObj = texttable.Texttable()  # Set columnstableObj.set_cols_align(["l", "r", "c"])  # Set datatype of each columntableObj.set_cols_dtype(["a", "i", "t"])  # Adjust columnstableObj.set_cols_valign(["t", "m", "b"])  # Insert rowstableObj.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 tableprint(tableObj.draw())
Output:
python-modules
Python
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.