Замените вывод print() в терминале для длинных строкPython

Программы на Python
Ответить
Anonymous
 Замените вывод print() в терминале для длинных строк

Сообщение Anonymous »

У меня есть функция в Python, которую может запустить пользователь, и выйти из которой можно, отправив ctrl-c. Я хочу отобразить таймер для этой функции, чтобы показать, как долго она работала, а затем несколько статических сообщений. Моя текущая реализация включает комбинацию символов \033[A, \033[K и \r. Уже работает в обычных случаях.
Моя проблема в том, что эти символы сообщают терминалу, на сколько физических строк нужно двигаться вверх. Если строка обновления состоит из нескольких строк (предположим, они свернули или разделили панели в tmux), это вызовет проблемы. Есть ли способ подсчитать длину напечатанных строк? Я могу использовать модуль os, чтобы получить ширину терминала, но не знаю, как преобразовать ее в строки (желательно для общей строки, которая может содержать любые символы ascii.
Я уже смотрел проклятия, но, похоже, это предназначено для приложений, которым необходимо переписать весь экран терминала. Я просто хочу добавить любую предыдущую историю, которая могла быть у терминала.
P.S. Я бы предпочел сохранить внешние зависимости. Я имею в виду использовать это как можно ограниченнее. Разумеется, доступна стандартная библиотека.

Подробнее здесь: https://stackoverflow.com/questions/792 ... ng-strings
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»