import os
rows, columns = os.popen('stty size', 'r').read().split()
verwendet den Befehl 'stty size', der laut einem Thread auf der Python-Mailingliste unter Linux einigermaßen universell ist. Es öffnet den Befehl 'stty size' als Datei, 'liest' daraus und verwendet einen einfachen String-Split, um die Koordinaten zu trennen.
Im Gegensatz zum Wert os.environ["COLUMNS"] (auf den ich trotz der Verwendung von bash als Standard-Shell nicht zugreifen kann) sind die Daten auch aktuell, während ich glaube, dass der Wert os.environ["COLUMNS"] Der Wert wäre nur für die Zeit des Starts des Python-Interpreters gültig (angenommen, der Benutzer hat seitdem die Größe des Fensters geändert).
(Siehe Antwort von @GringoSuave, wie man dies in Python 3.3+ macht)
Nicht sicher, warum es im Modul shutil
ist , aber es landete dort in Python 3.3. Siehe:
Abfrage der Größe des Ausgabeterminals
>>> import shutil
>>> shutil.get_terminal_size((80, 20)) # pass fallback
os.terminal_size(columns=87, lines=23) # returns a named-tuple
Eine Low-Level-Implementierung befindet sich im os-Modul. Plattformübergreifend – funktioniert unter Linux, Mac OS und Windows, wahrscheinlich anderen Unix-ähnlichen. Es gibt auch eine Rückportierung, die jedoch nicht mehr relevant ist.