如何通过python curses获取屏幕大小

dau*_*ers 6 python command-line programming ncurses

我正在编写一个终端程序,需要获取我正在使用的 TTY 的大小。互联网似乎暗示这可以用诅咒来完成,但我似乎无法在 python 中找到方法。如果可能,我试图避免使用 ROWS 和 COLUMNS 环境变量:)

Tim*_*imo 11

显然, getmaxyx() 方法正是您所需要的。它返回一个 (height, width) 元组。

Python 参考

一些教程

编辑:教程链接已失效,这是存档版本。这是该链接中的示例:

现在假设我们要沿对角线绘制 X。我们需要知道什么时候停止,所以我们需要知道屏幕的宽度和高度。这是通过 stdscr.getmaxyx() 函数完成的。此函数返回一个具有 (height, width) 值的元组。

#!/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()
Run Code Online (Sandbox Code Playgroud)

  • 虽然这从理论上可以回答这个问题,但[最好](​​http://meta.stackexchange.com/q/8259)在此处包含答案的基本部分,并提供参考链接。 (2认同)