import os
rows, columns = os.popen('stty size', 'r').read().split()
usa il comando 'stty size' che secondo un thread sulla mailing list di Python è ragionevolmente universale su Linux. Apre il comando 'stty size' come file, 'legge' da esso e utilizza una semplice divisione di stringhe per separare le coordinate.
A differenza del valore os.environ["COLUMNS"] (a cui non posso accedere nonostante l'utilizzo di bash come shell standard) anche i dati saranno aggiornati mentre credo che os.environ["COLUMNS"] value sarebbe valido solo per il momento dell'avvio dell'interprete python (supponiamo che l'utente abbia ridimensionato la finestra da allora).
(Vedi la risposta di @GringoSuave su come farlo su Python 3.3+)
Non sono sicuro del perché sia nel modulo shutil
, ma è arrivato lì in Python 3.3. Vedi:
Interrogazione della dimensione del terminale di output
>>> import shutil
>>> shutil.get_terminal_size((80, 20)) # pass fallback
os.terminal_size(columns=87, lines=23) # returns a named-tuple
Un'implementazione di basso livello è nel modulo os. Multipiattaforma:funziona con Linux, Mac OS e Windows, probabilmente altri tipi di Unix. C'è anche un backport, anche se non più rilevante.