1. ホーム
  2. パイソン

[解決済み】PythonでLinuxのコンソールウィンドウの幅を取得する方法

2022-03-29 22:28:07

質問

Pythonでコンソールの幅をプログラムで決定する方法はありますか?ウィンドウのピクセル幅ではなく、折り返さずに1行に収まる文字数という意味です。

編集

Linuxで動作するソリューションを探しています

どのように解決するのですか?

import os
rows, columns = os.popen('stty size', 'r').read().split()

は 'stty size' コマンドを使用します。 pythonメーリングリストのスレッド はlinuxではそれなりに普遍的なものです。stty size' コマンドをファイルとして開き、そこから 'reads' して、単純な文字列分割で座標を区切ります。

os.environ["COLUMNS"] の値とは異なり(標準シェルとしてbashを使っているにもかかわらずアクセスできない)、データも最新になります。一方 os.environ["COLUMNS"] は python インタープリタの起動時にのみ有効だと思います(その後ユーザーがウィンドウをリサイズしたと仮定して)。

(Python 3.3+でこれを行う方法については、@GringoSuaveによる回答を参照してください)