小编ptz*_*ptz的帖子

Python telnetlib:令人惊讶的问题

我正在使用Python模块telnetlib来创建一个telnet会话(使用国际象棋服务器),我遇到了一个问题,我真的无法包围我的大脑.以下代码完美运行:

>>> f = login("my_server") #code for login(host) below.
>>> f.read_very_eager()
Run Code Online (Sandbox Code Playgroud)

这会吐出服务器通常在登录时打印的所有内容.但是,当我把它放在一个函数中,然后调用它:

>>> def foo():
...   f = login("my_server")
...   return f.read_very_eager()
...
>>> foo()
Run Code Online (Sandbox Code Playgroud)

我什么都没得到(空字符串).我可以检查登录是否正确执行,但由于某种原因我看不到文本.它吞噬了哪里?

非常感谢.

为了完整性,这里是登录(主机):

def login(host, handle="guest", password=""):
try:
    f = telnetlib.Telnet(host) #connect to host
except:
    raise Error("Could not connect to host")
f.read_until("login: ")
try:
    f.write(handle + "\n\r")
except:
    raise Error("Could not write username to host")
if handle == "guest":
    f.read_until(":\n\r")
else:
    f.read_until("password: ")
try:
    f.write(password + "\n\r")
except:
    raise Error("Could not write password to host") …
Run Code Online (Sandbox Code Playgroud)

python telnet telnetlib

3
推荐指数
1
解决办法
6593
查看次数

标签 统计

python ×1

telnet ×1

telnetlib ×1