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: