Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
214 views
in Technique[技术] by (71.8m points)

python - How to open telnet as a textfile rather than a binary file

So I was trying to use the read_until method in telnet but then ran into the error:

Traceback (most recent call last):
File "c:UsersDesktop7DTD Bot	est.py", line 44, in <module>
tn.read_until("Please enter password:")
File "C:UsersAppDataLocalProgramsPythonPython37lib	elnetlib.py", 
line 302, in read_until
i = self.cookedq.find(match)
TypeError: argument should be integer or bytes-like object, not 'str'

I'm almost sure that this is because the telnet is being opened as a binary file rather than as a text file. Here's how I opened it in the first place:

HOST = config.get("telnet", "telnet_host")
PORT = config.get("telnet", "telnet_port")
PASS = config.get("telnet", "telnet_pass")

tn = telnetlib.Telnet(HOST, PORT)
tn.read_until("Please enter password:")
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

The error is saying the PORT should be of type int or a bytes-like object. Currently it is type str. Convert the PORT variable to an int like this.

tn = telnetlib.Telnet(HOST, int(PORT))

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...