【问题标题】:How to open telnet as a textfile rather than a binary file如何将 telnet 作为文本文件而不是二进制文件打开
【发布时间】:2020-06-24 16:46:18
【问题描述】:

所以我尝试在 telnet 中使用 read_until 方法,但后来遇到了错误:

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'

我几乎可以肯定这是因为 telnet 是以二进制文件而不是文本文件的形式打开的。这是我首先打开它的方式:

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

【问题讨论】:

    标签: python telnet telnetlib


    【解决方案1】:

    错误是说PORT 应该是int 类型或bytes-like 对象。目前它是类型str。像这样将PORT 变量转换为int

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

    【讨论】:

      【解决方案2】:

      我不确定是否有更好的方法,但我只是将字符串转换为字节字符串来解决这个问题:

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

      也感谢你的减号!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-07-12
        • 2010-10-02
        • 1970-01-01
        • 2011-04-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多