Python tabulate: как добиться автоматической подкладки в tabulate? - PullRequest
0 голосов
/ 14 марта 2020
from tabulate import tabulate
table_header = ['Options', 'Explain','Impact']
table_data = []
for i in self.add_list:
    table_data.append( (somethingtoprint) )
pfile.write(tabulate(table_data, headers=table_header, tablefmt='grid'))

Здесь, когда что-то напечатано очень длинная строка, выходной формат поврежден. Есть ли способ использовать табулирование более красивым?

Обновлено: я имею в виду, что содержимое таблицы настолько длинное, что оно превысит ширину экрана, тогда отображение может быть испорчено.

как

имя_идентификатора

123 "

1 Ответ

0 голосов
/ 14 марта 2020

Я не могу комментировать. Как выглядит эта «очень длинная строка»? Я использовал этот код ниже, и он работал нормально для меня. Моя очень длинная строка была длиной 2970 символов.

table = [["Sun"*990 ,696000,1989100000],["Earth",6371,5973.6],
          ["Moon",1737,73.5],["Mars",3390,641.85]]
print(tabulate(table))

Обращение к комментариям. Да, это так, потому что в строке нет возвращаемых строк. Я предполагаю, что автор пакета не хотел произвольно добавлять возврат строки. Вы можете вставить свою собственную строку возврата и табулировать будет обрабатывать их. Вывод зависит от размера шрифта и ширины экрана. Если длина линии превышает ширину экрана, она переносится. Я думаю, это то, что вы подразумеваете под этим выглядит плохо. Вы можете вывести в файл и просмотреть его (обязательно отключите все функции переноса строк).

Вот пример того, как это сделать.

from tabulate import tabulate
from pathlib import Path

table = [["Sun"*990,696000,1989100000],["Earth",6371,5973.6],
          ["Moon",1737,73.5],["Mars",3390,641.85]]

file_output = Path('test.txt')
file_output.write_text(tabulate(table))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...