У меня есть код Python, который автоматически распечатает набор данных в хорошем формате столбца, включая включение соответствующих escape-последовательностей ASCII для цветного отображения различных фрагментов данных для удобства чтения.
В конечном итоге каждая строка представляется в виде списка, причем каждый элемент представляет собой столбец с пробелом, так что одни и те же столбцы на каждой строке всегда имеют одинаковую длину. К сожалению, когда я действительно отправляюсь на печать, не все столбцы выстраиваются в линию. Я подозреваю, что это связано с escape-последовательностями ASCII - поскольку функция len
, похоже, не распознает их:
>>> a = '\x1b[1m0.0\x1b[0m'
>>> len(a)
11
>>> print a
0.0
И поэтому, когда каждый столбец имеет одинаковую длину в соответствии с len
, они не имеют одинаковой длины при печати на экране.
Есть ли какой-либо способ (за исключением выполнения некоторых хакеров с регулярными выражениями, которые я бы предпочел не делать), чтобы взять экранированную строку и выяснить, что напечатанная длина так, чтобы я мог использовать простую площадку? Может быть, какой-то способ просто "распечатать" его обратно в строку и изучить длину этого?