Как открыть te lnet как текстовый файл, а не как двоичный файл - PullRequest
0 голосов
/ 12 марта 2020

Итак, я пытался использовать метод read_until в te lnet, но затем столкнулся с ошибкой:

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'

Я почти уверен, что это потому, что te lnet открывается как бинарный файл, а не как текстовый файл. Вот как я его открыл в первую очередь:

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:")

Ответы [ 2 ]

0 голосов
/ 12 марта 2020

Я не уверен, есть ли лучший способ сделать это, но я просто преобразовал строку в строку для решения этой проблемы:

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

А также спасибо за минус один!

0 голосов
/ 12 марта 2020

Ошибка говорит, что PORT должен иметь тип int или bytes-like объект. В настоящее время это тип str. Преобразуйте переменную PORT в int следующим образом.

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