概要
ターミナルのサイズが知りたいときがあって、最終的にめっちゃ簡単に取得できたので忘れない内にメモメモ。
最初、以下の gist を発見。
Get current terminal size on Linux, Mac, and Windows · GitHub
結構大変やん・・って思ってたら、以下のコメント発見。
Note that there is python standard lib function for this now: os.get_terminal_size()
Get current terminal size on Linux, Mac, and Windows · GitHub
あ、os.get_terminal_size()
なんて素敵なものがあるのねってことで
みると
通常は高水準関数である shutil.get_terminal_size() を使用してください。os.get_terminal_size は低水準の実装です。
って書いてありました。なので、shutil 側を見る
戻り値は、os.terminal_size
型。 Python 3.3 から追加されたみたいですね。知らなかったです。
サンプル
てことで、サンプル.
""" ターミナルの行列のサイズを取得するサンプルです。 REFERENCES: http://bit.ly/2Vw6asZ http://bit.ly/2VutNSI http://bit.ly/2VsJOZi http://bit.ly/2VrpMhR """ import shutil from os import terminal_size from trypython.common.commoncls import SampleBase from trypython.common.commonfunc import pr class Sample(SampleBase): def exec(self): # ---------------------------------------------------------- # shutil.get_terminal_size() を利用することで # 現在実行しているターミナルの行と列のサイズを取得することができる。 # # shutil.get_terminal_size() は、内部で os.get_teminal_size() # を呼び出すようになっている。 # # 戻り値は、 os.terminal_size オブジェクト # # 対応しているOSは、 unix, windows となっている。 # この関数が追加されたのは、 python 3.3 # ---------------------------------------------------------- ts: terminal_size = shutil.get_terminal_size() pr('terminal size', ts) pr('\tcolumns', ts.columns) pr('\tlines', ts.lines) def go(): obj = Sample() obj.exec() if __name__ == '__main__': go()
try-python/terminalsize01.py at master · devlights/try-python · GitHub
pycharm上で実行したら
terminal size=os.terminal_size(columns=80, lines=24) columns=80 lines=24
ってなって、ちょっとウィンドウ大きくしておいたコマンドプロンプトで実行したら
terminal size=os.terminal_size(columns=150, lines=40) columns=150 lines=40
ってなりました。ちゃんと取れてますね。いやー便利これ。
過去の記事については、以下のページからご参照下さい。
- いろいろ備忘録日記まとめ
サンプルコードは、以下の場所で公開しています。
- いろいろ備忘録日記サンプルソース置き場