限制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()
是 curses
的 raw_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
我正在寻找一种解决方案来限制用户可以在 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()
是 curses
的 raw_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