Python 3.3+osфункция
os.get_terminal_size
os — терминал и устройства
Возвращает размер терминала (columns, lines); бросает OSError, если вывод не привязан к терминалу.
Синтаксис
os.get_terminal_size()
При выводе в файл или канал поднимает OSError, поэтому код, который форматирует вывод по ширине, падает под перенаправлением и в CI. Для обычных программ нужна shutil.get_terminal_size: она учитывает переменные COLUMNS и LINES и при отсутствии терминала возвращает запасное значение (80, 24).
Примеры
import os
size = os.get_terminal_size() # → ? только в терминале; в пайпе и CI — OSError
print(size) # → os.terminal_size(columns=80, lines=24) — конкретные числа зависят от размеров окна терминала
print(size.columns) # → ширина терминала в символах, например 80
print('-' * size.columns) # → разделитель во всю ширину окна — типовое применение
print(os.get_terminal_size(0).lines) # → высота терминала, привязанного к stdin (по умолчанию берётся stdout)
print(os.get_terminal_size(999)) # → OSError — дескриптор не привязан к терминалу; та же ошибка при запуске из пайпа или CI, поэтому в утилитах берут shutil.get_terminal_size() с запасным значением
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности