限制raw_input长度

Limit raw_input length

我正在寻找一种解决方案来限制用户可以在 raw_input 中键入的字符数。我在同一行中有两个 raw_input,看起来像这样:

Name: (user input)                           Date of Birth: (user input)

如果用户输入的姓名超过 X 个字符,它将开始在出生日期之上书写,如下所示:

Name: Mary Jane Smith McDonald Obama Romney Bushh of Birth: (user input)

我找到的最接近的是:Limiting Python input strings to certain characters and lengths,但这对我不起作用。我不希望它显示警告;我希望它停止接受更多字符 and/or 转到下一个输入。

我正在使用 blessed,这是一个使用 curses 将第二个输入与第一个输入放在同一行的库。

有什么想法吗?

函数 getstr()cursesraw_input 替代项,适用于字符限制:

s = stdscr.getstr(0,0, 15) #Input is limited to 15 characters, once the limit is hit, it stops accepting more

这是我刚刚做出的一个巧妙的事情,可能会帮助查看这个不使用 curses 的线程的人。在输入过程中有效约束用户输入的字符串长度。

import readchar
import sys

string = ""

while len(string) < 20:
    c = readchar.readchar()
    sys.stdout.write(c)
    string += c

print '\n' + string