import os
rows, columns = os.popen('stty size', 'r').read().split()
Pythonメーリングリストのスレッドによると、Linuxではかなり普遍的な「stty size」コマンドを使用します。 「stty size」コマンドをファイルとして開き、そこから「読み取り」、単純な文字列分割を使用して座標を分離します。
os.environ["COLUMNS"] の値 (標準シェルとして bash を使用しているにもかかわらずアクセスできない) とは異なり、データも最新のものになりますが、os.environ["COLUMNS"] は値は、Python インタープリターの起動時にのみ有効です (それ以降、ユーザーがウィンドウのサイズを変更したとします)。
(Python 3.3+ でこれを行う方法については、@GringoSuave の回答を参照してください)
モジュール shutil
にある理由がわからない 、しかしそれはPython 3.3でそこに着陸しました。参照:
出力端子のサイズを問い合わせる
>>> import shutil
>>> shutil.get_terminal_size((80, 20)) # pass fallback
os.terminal_size(columns=87, lines=23) # returns a named-tuple
低レベルの実装は os モジュールにあります。クロスプラットフォーム - Linux、Mac OS、および Windows で動作し、おそらく他の Unix ライクでも動作します。バックポートもありますが、もはや関係ありません。