python3 TypeError: a

发布时间:2019-09-27 07:07:17编辑:auto阅读(1920)

    运行telnetlib的时候报错:TypeError: a bytes-like object is required, not ‘str’,原因是因为python2和python3的版本的差异。
    在python2中可正常运行,而python3最重要的新特性也是对文本和二进制数据做了更清晰的区分。文本用unicode编码,为str类型,二进制数据则为bytes类型。

    python有两种类型转换的函数encode(),decode() 。

    encode(编码),可以将str类型编码为bytes。
    decode(译码),可以将bytes类型转换为str类型。

    image

    因此在telnetlib交互的时候需要使用encode()。

    tn.read_until("username:".encode())

关键字