🌐
PyPI
pypi.org › project › prettytable
prettytable · PyPI
By default, PrettyTable produces ASCII tables that look like the ones used in SQL database shells. But it can print them in a variety of other formats as well. If the format you want to use is common, PrettyTable makes this easy for you to do ...
      » pip install prettytable
    
Published   Nov 14, 2025
Version   3.17.0
🌐
Readthedocs
ptable.readthedocs.io
Welcome to PTable’s documentation! — PTable 0.9.0 documentation
Welcome to PTable’s documentation! ... PTable is a simple Python library designed to make it quick and easy to represent tabular data in visually appealing ASCII tables, originally forked from PrettyTable .
🌐
ZetCode
zetcode.com › python › prettytable
Python PrettyTable - generating tables in Python with PrettyTable
January 29, 2024 - The example reads data from the data.html file and generates a PrettyTable with the from_html_one method. With the sortby property, we specify which column is going to be sorted. The reversesort property controls the direction of sorting (ascending vs descending). ... #!/usr/bin/python from prettytable import PrettyTable x = PrettyTable() x.field_names = ["City name", "Area", "Population", "Annual Rainfall"] x.add_row(["Adelaide", 1295, 1158259, 600.5]) x.add_row(["Brisbane", 5905, 1857594, 1146.4]) x.add_row(["Darwin", 112, 120900, 1714.7]) x.add_row(["Hobart", 1357, 205556, 619.5]) x.add_row
🌐
PyPI
pypi.org › project › prettyTables
prettyTables · PyPI
This is a python package that aims to provide a simple and pretty way of printing tables to the console making use of a class.
      » pip install prettyTables
    
Published   Jul 11, 2022
Version   1.1.5
🌐
Google Code
code.google.com › archive › p › prettytable › wikis › Tutorial.wiki
Google Code Archive - Long-term storage for Google Code Project Hosting.
Archive · Skip to content · The Google Code Archive requires JavaScript to be enabled in your browser · Google · About Google · Privacy · Terms
🌐
Medium
medium.com › @michaelperssonse › python-tutorial-prettytable-2e505be61630
Python Tutorial: PrettyTable. How to print simple and beautiful… | by Michael Persson | Medium
September 24, 2023 - Python Tutorial: PrettyTable How to print simple and beautiful tables in Python In my line of work as a software test engineer, I sometimes write small python scripts that fetch data from test …
🌐
Readthedocs
ptable.readthedocs.io › en › latest › tutorial.html
Tutorial — PTable 0.9.0 documentation
By default, PrettyTable produces ASCII tables that look like the ones used in SQL database shells. But if can print them in a variety of other formats as well. If the format you want to use is common, PrettyTable makes this very easy for you to do using the set_style method.
🌐
GeeksforGeeks
geeksforgeeks.org › python › creating-tables-with-prettytable-library-python
Creating Tables with PrettyTable Library - Python - GeeksforGeeks
August 18, 2020 - PrettyTable class inside the prettytable library is used to create relational tables in Python.
🌐
Javatpoint
javatpoint.com › prettytable-in-python
Prettytable in Python - Javatpoint
Prettytable in Python with python, tutorial, tkinter, button, overview, entry, checkbutton, canvas, frame, environment set-up, first python program, operators, etc.
Find elsewhere
Top answer
1 of 2
4

We can do by adding row into PrettyTable object by add_row method.

Demo:

>>> from prettytable import PrettyTable
>>> import random
>>> 
>>> x = PrettyTable(["ServiceID", "Service", "Price"])
>>> 
>>> while True:
...     #- Get value
...     ID = random.randint(1,90000) #range high to lower probability of non-uniqueness
...     prompt1 = raw_input("Please add a service name to the list\n")
...     try:
...         #- Type Casting.
...         prompt2 = int(raw_input("Please enter a price for the service\n"))
...     except ValueError:
...         print("Please enter valid type")
...         continue
...     #- Add row
...     x.add_row([ID, prompt1, prompt2])
...     #- Ask user to Continue or not.
...     choice = raw_input("Continue yes/ no:").lower()
...     if not(choice=="yes" or choice=="y"):
...         break
... 
Please add a service name to the list
2
Please enter a price for the service
3
Continue yes/ no:y
Please add a service name to the list
4
Please enter a price for the service
6
Continue yes/ no:y
Please add a service name to the list
5
Please enter a price for the service
7
Continue yes/ no:n
>>> print x
+-----------+---------+-------+
| ServiceID | Service | Price |
+-----------+---------+-------+
|   38515   |    2    |   3   |
|    8680   |    4    |   6   |
|   51188   |    5    |   7   |
+-----------+---------+-------+
>>> 

Delete Row:

Use del_row() method. We need to pass index of row which we want to remove.

>>> print x
+-----------+---------+-------+
| ServiceID | Service | Price |
+-----------+---------+-------+
|   38515   |    2    |   3   |
|    8680   |    4    |   6   |
|   51188   |    5    |   7   |
+-----------+---------+-------+
>>> x.del_row(1)
>>> print x
+-----------+---------+-------+
| ServiceID | Service | Price |
+-----------+---------+-------+
|   38515   |    2    |   3   |
|   51188   |    5    |   7   |
+-----------+---------+-------+

Need to handle exception if we provide index value greater then total rows in exception will raise, that need to handle in ur code.

Exception is:

>>> x.del_row(10)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/prettytable.py", line 832, in del_row
    raise Exception("Cant delete row at index %d, table only has %d rows!" % (row_index, len(self._rows)))
Exception: Cant delete row at index 10, table only has 2 rows!

Note:

  1. Use raw_input() for Python 2.x

  2. Use input() for Python 3.x

2 of 2
0

I've accomplished that by always creating a new instance of the class prettytable.PrettyTable inside the while loop.

from prettytable import PrettyTable
import random

serviceID = []
services = []
price = []

while True:
    try:
        x = PrettyTable()

        ID = random.randint(1,90000) #range high to lower probability of non-uniqueness
        serviceID.append(ID) #Generates unique ID for each service

        prompt1 = input("Please add a service name to the list\n")
        services.append(prompt1)

        prompt2 = input("Please enter a price for the service\n")
        prompt2 == int(prompt2)
        price.append(prompt2)

        x.add_column("ServiceID", serviceID)
        x.add_column("Service", services)
        x.add_column("Price", price)

        print(x)


    except ValueError:
        print("Please enter valid type")
        continue

Here is my version of code using methods field_names() and add_row().

from prettytable import PrettyTable
import random

serviceID = []
services = []
price = []

x = PrettyTable()

x.field_names = ["ServiceID", "Service", "Price"]

while True:
    try:
         ID = random.randint(1,90000) #range high to lower probability of non-uniqueness
         serviceID.append(ID) # in order to store new value if you will need it later

         prompt1 = input("Please add a service name to the list\n")
         services.append(prompt1) # in order to store new value if you will need it later

         prompt2 = input("Please enter a price for the service\n")
         prompt2 == int(prompt2)
         services.append(prompt2) # in order to store new value if you will need it later

         x.add_row([ID, prompt1, prompt2])
         print(x)

    except ValueError:
        print("Please enter valid type")
        continue
🌐
GitHub
github.com › jazzband › prettytable › blob › main › src › prettytable › prettytable.py
prettytable/src/prettytable/prettytable.py at main · prettytable/prettytable
"""Return a new PrettyTable instance · · Arguments: · encoding - Unicode encoding scheme used to decode any encoded input · title - optional table title · field_names - list or tuple of field names · fields - list or tuple of field names to include in displays ·
Author   prettytable
🌐
GitHub
github.com › lmaurits › prettytable
GitHub - lmaurits/prettytable: Automatically exported from code.google.com/p/prettytable · GitHub
To print two "normal" tables with one borderless table between them, you could do this: print x print x.get_string(border=False) print x = Displaying your table in HTML form = PrettyTable will also print your tables in HTML form, as `<table>`s.
Starred by 31 users
Forked by 6 users
Languages   Python
🌐
Snyk
snyk.io › advisor › prettytable › functions › prettytable.prettytable
How to use the prettytable.PrettyTable function in prettytable | Snyk
def print_issues(data): n = ...y"]["name"],issue["status"]["name"], issue["subject"]]) print(table) A simple Python library for easily displaying tabular data in a visually appealing ASCII table format...
🌐
Abilian
lab.abilian.com › Tech › Python › Useful Libraries › (Pretty) tables in Python
(Pretty) tables in Python - Abilian Innovation Lab
You can also customize the formatting of the table by setting various parameters of the tabulate() function, such as the alignment of columns, the table border style, and the table format (e.g., “plain”, “simple”, “grid”, “pipe”, “orgtbl”, “jira”, “presto”, “fancy_grid”, “github”, “mediawiki”, “moinmoin”, “latex”, “latex_booktabs”, “tsv”, etc.). For more information, you can refer to the official documentation of the library. To use the PrettyTable library in Python, you first need to install it using pip:
🌐
GitHub
github.com › kxxoling › PTable
GitHub - kxxoling/PTable: PrettyTable is a simple Python library designed to make it quick and easy to represent tabular data in visually appealing ASCII tables. · GitHub
PTable is a simple Python library designed to make it quick and easy to represent tabular data in visually appealing ASCII tables, originally forked from PrettyTable. As PTable is a fork of PrettyTable, and compatible with all its APIs, so PTable ...
Starred by 127 users
Forked by 47 users
Languages   Python 99.0% | Makefile 1.0%
🌐
Readthedocs
gemseo.readthedocs.io › en › 5.1.0 › _modules › gemseo.third_party.prettytable.prettytable.html
prettytable module — GEMSEO 5.1.0 documentation
PrettyTable.add_column() PrettyTable.add_row() PrettyTable.clear() PrettyTable.clear_rows() PrettyTable.copy() PrettyTable.del_row() PrettyTable.get_html_string() PrettyTable.get_string() PrettyTable.paginate() PrettyTable.set_style() PrettyTable.align · PrettyTable.attributes ·
🌐
GitHub
github.com › vishvananda › prettytable
GitHub - vishvananda/prettytable
TUTORIAL ON HOW TO USE THE PRETTYTABLE 0.6 API *** This tutorial is distributed with PrettyTable and is meant to serve as a "quick start" guide for the lazy or impatient. It is not an exhaustive description of the whole API, and it is not guaranteed to be 100% up to date. For more complete and update documentation, check the PrettyTable wiki at http://code.google.com/p/prettytable/w/list *** = Getting your data into (and out of) the table = Let's suppose you have a shiny new PrettyTable: from prettytable import PrettyTable x = PrettyTable() and you want to put some data into it.
Starred by 47 users
Forked by 7 users
Languages   Python 98.2% | Shell 1.8% | Python 98.2% | Shell 1.8%
🌐
Debian
packages.debian.org › sid › python3-prettytable
Debian -- Details of package python3-prettytable in sid
PrettyTable allows for selection of which columns are to be printed, independent alignment of columns (left or right justified or centred) and printing of "sub-tables" by specifying a row range. This package contains the Python 3 version of prettytable.
🌐
GitHub
github.com › adamlamers › prettytable
GitHub - adamlamers/prettytable: Python utility for easily creating text-based tables
By default, PrettyTable produces ASCII tables that look like the ones used in SQL database shells. But if can print them in a variety of other formats as well. If the format you want to use is common, PrettyTable makes this very easy for you ...
Starred by 8 users
Forked by 2 users
Languages   Python 100.0% | Python 100.0%
🌐
GitHub
github.com › prettytable › prettytable › releases
Releases · prettytable/prettytable
Add demo to __main__: python -m prettytable (#347) @hugovk · Update Ruff: more f-strings and sort __all__ (#348) @hugovk · Fix default styles not being reset between set_style() calls (#344) @MonstersInc-sudo · Fix add_autoindex alignment for HTML (#345) @stuertz ·
Author   prettytable