Модуль 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')