import os
rows, columns = os.popen('stty size', 'r').read().split()
usa el comando 'stty size' que, según un hilo en la lista de correo de python, es razonablemente universal en Linux. Abre el comando 'stty size' como un archivo, 'lee' de él y utiliza una división de cadena simple para separar las coordenadas.
A diferencia del valor os.environ["COLUMNAS"] (al que no puedo acceder a pesar de usar bash como mi shell estándar), los datos también estarán actualizados mientras que creo que os.environ["COLUMNAS"] el valor solo sería válido para el momento del lanzamiento del intérprete de python (supongamos que el usuario cambió el tamaño de la ventana desde entonces).
(Vea la respuesta de @GringoSuave sobre cómo hacer esto en python 3.3+)
No estoy seguro de por qué está en el módulo shutil
, pero aterrizó allí en Python 3.3. Ver:
Consultando el tamaño del terminal de salida
>>> import shutil
>>> shutil.get_terminal_size((80, 20)) # pass fallback
os.terminal_size(columns=87, lines=23) # returns a named-tuple
Una implementación de bajo nivel está en el módulo os. Multiplataforma:funciona con Linux, Mac OS y Windows, probablemente con otros sistemas similares a Unix. También hay un backport, aunque ya no es relevante.