import os
rows, columns = os.popen('stty size', 'r').read().split()
utilise la commande 'stty size' qui, selon un fil de la liste de diffusion python, est raisonnablement universelle sous Linux. Il ouvre la commande 'stty size' en tant que fichier, "lit" à partir de celui-ci et utilise une simple séparation de chaîne pour séparer les coordonnées.
Contrairement à la valeur os.environ["COLUMNS"] (à laquelle je ne peux pas accéder malgré l'utilisation de bash comme shell standard), les données seront également à jour alors que je crois que le os.environ["COLUMNS"] la valeur ne serait valide que pour le moment du lancement de l'interpréteur python (supposons que l'utilisateur ait redimensionné la fenêtre depuis).
(Voir la réponse de @GringoSuave sur la façon de procéder sur python 3.3+)
Je ne sais pas pourquoi il se trouve dans le module shutil
, mais il a atterri là dans Python 3.3. Voir :
Interrogation de la taille du terminal de sortie
>>> import shutil
>>> shutil.get_terminal_size((80, 20)) # pass fallback
os.terminal_size(columns=87, lines=23) # returns a named-tuple
Une implémentation de bas niveau se trouve dans le module os. Multiplateforme - fonctionne sous Linux, Mac OS et Windows, probablement d'autres types d'Unix. Il existe également un rétroportage, bien qu'il ne soit plus pertinent.