Python curses中getstr的输入限制?

0 投票
1 回答
929 浏览
提问于 2025-04-17 23:53

下午好,

我正在尝试使用curses库,而我这个脚本的一个要求是能够接受大量数据。这些数据是要粘贴进来的,通常只有几千行,但有可能会增加到几万行。我的问题似乎是我的输入受限于窗口的大小?

举个例子:

begin_x = 0
begin_y = 0
height = 15
width = 30
window = curses.newwin(height, width, begin_y, begin_x)

c = window.getstr()
stdscr.addstr(0, 0, str(c.count(b'a')), curses.color_pair(1))
stdscr.refresh()

当我输入尽可能多的'a'字符时,输出结果是449。

有没有办法提高这个限制?我试着把窗口调大,但仍然只能输入最多1024个字符。

1 个回答

0

getkey来帮忙了!

这是我想到的解决办法:

d = ''

newline = 0
while newline == 0:
    c = window.getkey()
    if c == '\n':
        newline = 1
    else:
        d = d + c

d是一个字符串,c是从getkey得到的结果(一个字符的字符串)。如果收到换行符,就退出。如果没有,就继续循环,直到收到换行符为止。

撰写回答