web-dev-qa-db-ja.com

python cursesを使用して画面サイズを取得する方法

私は端末プログラムを書いているので、使用しているTTYのサイズを取得する必要があります。インターネットはこれを呪いで行うことができると示唆しているようですが、私はPythonでどのように見つけることができないようです。可能な場合、ROWSおよびCOLUMNS環境変数の使用を避けようとしています:)

6
daubers

どうやら、getmaxyx()メソッドが必要なものです。 (高さ、幅)タプルを返します。

Pythonリファレンス

一部のチュートリアル

編集:チュートリアルリンクは無効です here's アーカイブバージョン。そして、ここにそのリンクからの例があります:

ここで、対角線の下にXを描きたいとしましょう。停止するタイミングを知る必要があるため、画面の幅と高さを知る必要があります。これは、stdscr.getmaxyx()関数を使用して行われます。この関数は、(高さ、幅)の値を持つタプルを返します。

#!/usr/bin/python

import curses
import time
stdscr = curses.initscr()
curses.cbreak()
curses.noecho()
stdscr.keypad(1)

try:
# Run your code here
    height,width = stdscr.getmaxyx()
    num = min(height,width)
    for x in range(num):
        stdscr.addch(x,x,'X')
    stdscr.refresh()
    time.sleep(3)
finally:
    curses.nocbreak()
    stdscr.keypad(0)
    curses.echo()
    curses.endwin()
11
Timo