shutil.get_terminal_size() și os.get_terminal_size() în Python

Lățimea și înălțimea ferestrei terminalului, în caractere.

Sintaxă
shutil.get_terminal_size(fallback=(80, 24))
os.get_terminal_size(fd=STDOUT_FILENO)

Ce face shutil.get_terminal_size() și os.get_terminal_size()

shutil.get_terminal_size() verifică întâi variabilele de mediu COLUMNS și LINES, apoi întreabă terminalul, iar dacă ieșirea nu este un terminal (de exemplu este redirecționată într-un fișier) returnează valoarea fallback. Este varianta recomandată.

os.get_terminal_size() întreabă direct terminalul și aruncă OSError dacă descriptorul nu este un terminal.

Parametri

Parametru Descriere
fallback Dimensiunea folosită când nu există terminal.

Ce returnează

Un tuplu cu nume (columns, lines).

Exemple

Exemplul 1: O linie cât tot terminalul

import shutil, os
latime = shutil.get_terminal_size().columns
print("=" * latime)
print(shutil.get_terminal_size())
try:
    print(os.get_terminal_size())
except OSError as e:
    print("Nu este terminal:", e.strerror)

Rezultat posibil (rulat într-un terminal de 40 de coloane)

========================================
os.terminal_size(columns=40, lines=24)
os.terminal_size(columns=40, lines=24)

Greșeli frecvente

  • Folosești os.get_terminal_size() într-un script rulat din cron sau cu ieșirea redirecționată și primești OSError.

Comenzi înrudite