-1

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:\Users\Desktop\7DTD Bot\test.py", line 44, in <module>
tn.read_until("Please enter password:")
File "C:\Users\AppData\Local\Programs\Python\Python37\lib\telnetlib.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:")
Outflows
  • 163
  • 11

2 Answers2

0

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))
JBirdVegas
  • 10,855
  • 2
  • 44
  • 50
0

I'm not sure if there's a better way to do it but I just converted the string to a bytestring to fix this problem:

tn.read_until(b"Please enter password:")

And also thanks for the minus one!

Outflows
  • 163
  • 11