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

Печать табличных данных в файл, модуль prettytable в Python

Модуль prettytable может распечатать таблицу на стандартный вывод (терминал) или получить их строковое представление.

Для того, чтобы красиво сохранить табличные данные в текстовый файл, необходимо просто получить строку, содержащую то, что будет напечатано в терминале. Для получения строковых данных нужно использовать метод PrettyTable.get_string().

Полученная строка гарантированно будет выглядеть точно так же, как при печати. Теперь можно делать все, что обычно делают со строкой, например, записывать таблицу в файл или вставлять ее в графический интерфейс.

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

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],
    ]
)

Сохранение табличных данных в файл

with open('mytable.txt', 'w') as fp:
    # создаем строку для записи в файл
    table = mytable.get_string()
    # пишем данные
    fp.write(table)
    # дописываем символ начала строки 
    fp.write('\n')

Смотрим что получилось:

$ cat mytable.txt
#+-----------+------+------------+-----------------+
#| City name | Area | Population | Annual Rainfall |
#+-----------+------+------------+-----------------+
#|  Adelaide | 1295 |  1158259   |      600.5      |
#|  Brisbane | 5905 |  1857594   |      1146.4     |
#|   Darwin  | 112  |   120900   |      1714.7     |
#|   Hobart  | 1357 |   205556   |      619.5      |
#+-----------+------+------------+-----------------+

Для получения строкового представления таблицы PrettyTable, так же можно использовать встроенную функцию str().

with open('mytable.txt', 'w') as fp:
    # создаем строку для записи в файл
    table = str(mytable)
    fp.write(table + '\n')