我正在编写一个网络身份验证程序,当我进入实际的验证部分时,Python退出时出现错误“KeyError:\ r \ n”。为什么Python会抛出KeyError,以及如何解决这个问题呢?我在Windows 7上运行Python 2.7.2。 代码:
client.send("You should enter your username: ")
uname=client.recv(size)
client.send("You should also enter your password: ")
passc=client.recv(size)
client.send("\r\nI will verify your information.\r\n")
if users[uname].strip(cr) == passc.strip(cr):
client.send("It worked, continue...")
else: client.send("It didn't work\r\n")
在此之前,我写了一句话:
client.send("Press return");
cr = client.recv(5)
编辑: slaps head 它抛出一个键错误的原因是由于某种原因,它不会让客户端设置为uname。它完全忽略了client.recv,只是跳到下一行。
答案 0 :(得分:0)
你是从passc
而不是uname
剥离的。也许这就是问题所在。尝试打印repr(uname)
。
答案 1 :(得分:0)
如果client.recv是非阻塞的,它将接收0个字节并继续。在服务器响应之前,该线路可能正在运行