Сообщить об ошибке.

Удаление данных из таблицы, модуль prettytable в Python

Есть три способа удалить данные из созданной таблицы PrettyTable. Методы удаления данных в разделе рассмотрены в порядке возрастания полноты удаления.

Создадим таблицу с которой будем работать:

from prettytable import PrettyTable
mytable = PrettyTable()
mytable.field_names = ["City name", "Area", "Population", "Annual Rainfall"]
mytable.add_rows(
    [
        ["Adelaide", 1295, 1158259, 600.5],
        ["Brisbane", 5905, 1857594, 1146.4],
        ["Darwin", 112, 120900, 1714.7],
        ["Hobart", 1357, 205556, 619.5],
    ]
)

PrettyTable.del_row(row):

Метод PrettyTable.del_row() принимает целочисленный индекс единственной строки row для удаления, индексация строк таблицы начинается с 0.

# удалим 3-ю строку
>>> mytable.del_row(2)
# +-----------+------+------------+-----------------+
# | City name | Area | Population | Annual Rainfall |
# +-----------+------+------------+-----------------+
# |  Adelaide | 1295 |  1158259   |      600.5      |
# |  Brisbane | 5905 |  1857594   |      1146.4     |
# |   Hobart  | 1357 |   205556   |      619.5      |
# +-----------+------+------------+-----------------+

PrettyTable.del_column(fild_name):

Метод PrettyTable.del_column() принимает имя поля fild_name одного столбца для удаления.

# удалим столбец с именем `Population`
>>> mytable.del_column('Population')
# +-----------+------+-----------------+
# | City name | Area | Annual Rainfall |
# +-----------+------+-----------------+
# |  Adelaide | 1295 |      600.5      |
# |  Brisbane | 5905 |      1146.4     |
# |   Hobart  | 1357 |      619.5      |
# +-----------+------+-----------------+

PrettyTable.clear_rows():

Метод PrettyTable.clear_rows() не принимает аргументов и удаляет все строки в таблице, но сохраняет имена полей такими, какими они были, чтобы можно было повторно заполнить его данными того же типа.

# очистим таблицу, оставив только шапку
>>> mytable.clear_rows()
>>> print(mytable)
#+-----------+------+-----------------+
#| City name | Area | Annual Rainfall |
#+-----------+------+-----------------+
#+-----------+------+-----------------+

# добавим новую строку
>>> mytable.add_row(["Melbourne", 1566, 646.9])
>>> print(mytable)
#+-----------+------+-----------------+
#| City name | Area | Annual Rainfall |
#+-----------+------+-----------------+
#| Melbourne | 1566 |      646.9      |
#+-----------+------+-----------------+

PrettyTable.clear():

Метод PrettyTable.clear() не принимает аргументов и удаляет все строки и все имена полей. Это не совсем то же самое, что создание нового экземпляра таблицы, хотя настройки, связанные со стилем сохраняются.

# очистим таблицу полностью
>>> mytable.clear()
>>> print(mytable)
#++
#||
#++
#++

# добавим новые данные, при этом стиль таблицы сохраниться
>>> mytable.field_names = ["action", "meaning", "result"]
>>> mytable.add_row(['square', '2', '4'])
>>> print(mytable)
#+--------+---------+--------+
#| action | meaning | result |
#+--------+---------+--------+
#| square |    2    |   4    |
#+--------+---------+--------+