Рисование таблиц в терминале с использованием символов поля ANSI

Я пытаюсь напечатать таблицу, которая более приятна для глаз, чем ее текстовое представление. в основном я хочу преобразовать что-то вроде этого:

+-----+--------+
| age | weight |
+-----+--------+
| 10  | 100    |
| 80  | 500    |
+-----+--------+

во что-то вроде этого:

┌─────┬────────┐
| age | weight |
├─────┼────────┤
│ 10  │   100  │
│ 80  │  500   │
└─────┴────────┘

вот скриншот того, что я вижу в терминале:

in terminal looks like this

Обратите внимание на промежутки между строками. Моя проблема в том, что они не подключаются должным образом, в то время как другие инструменты Unix, использующие печать ANSI, отлично смотрятся в терминале. Например, tree, если я запускаю tree -A в моем терминале, я получаю следующее:

tree in terminal

обратите внимание, как вертикальные линии соединяются вместе. это забавно, потому что когда я копирую и вставляю вывод tree в текстовый редактор и запускаю свой скрипт, я получаю что-то вроде этого:

tree in my code

Очевидно, мне что-то не хватает о печати символов ANSI в терминале, и я не могу найти ничего об этом погуглить. Кто-нибудь может пролить свет на эту тему?

15
задан Brian Tompsett - 汤莱恩 17 June 2017 в 20:56
поделиться