问题是,我的脚本不能工作(它正在打印空通道),但是它可以在python交互控制台中工作。
import telnetlib
tn = telnetlib.Telnet("killermud.pl", 4000)
data = tn.read_very_eager()
data = data.decode()
print(data)
tn.close()这种行为的原因是什么?
发布于 2015-09-27 12:53:22
我只是看了一下read_very_eager方法的文档,它说:
读取已排队或套接字上的所有可用数据,而不阻塞。
很可能在您调用此方法时,没有数据“已在套接字上可用或排队”,因此您将一无所获。您可能希望使用类似于read_until方法的方法,它将读取数据直到找到特定的字符串。例如:
data = tn.read_until('Podaj swoje imie')发布于 2015-09-27 13:03:23
根据tlnetlib文档,如果连接关闭且没有经过处理的数据,Telnet.read_very_eager()会引发EOFError。如果没有熟透的数据,则返回“”。除非在IAC序列中,否则不要阻塞。如果您执行data=="",则返回true,因此,这意味着没有现成的数据可用。
https://stackoverflow.com/questions/32808077
复制相似问题