Python 抛出 KeyError: \r\n

0 投票
2 回答
3229 浏览
提问于 2025-04-17 10:29

我正在写一个网络认证程序,当我到达实际验证的部分时,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)

补充说明:拍头 之所以出现这个KeyError,是因为某种原因,客户端无法设置uname。它完全忽略了client.recv那一行,直接跳到下一行。

2 个回答

0

如果client.recv是非阻塞的,它会接收到0字节的数据,然后继续执行。这很可能是因为这一行代码在服务器还没有回应之前就已经运行了。

0

你在处理 passc 的时候去掉了一些东西,但 uname 却没有去掉。可能这就是问题所在。试着打印一下 repr(uname) 的结果。

撰写回答