python - 类型错误:'在同时通过 python telnet 发送 cmd
问题描述
我试图ls /
通过 python telnet 发送 cmd
import telnetlib
tel = telnetlib.Telnet('10.10.0.1'.'1234')
tel.write('ls / ')
但我得到一个错误:
if IAC in buffer:
TypeError: 'in <string>' requires string as left operand, not bytes
解决方案
您需要将字符串编码为 ASCII:
tel.write(('ls / ').encode('ascii'))
在 Python3 中,str
类将字符串存储为 unicode,您需要将它们显式转换为ascii
. 您基本上需要一个字节字符串,其中每个字符都作为 ASCII 字符而不是 Unicode 字符。
推荐阅读
- excel - 在圆环图上定位标签
- javascript - 为什么在刷新浏览器时出现错误 HTTP 状态 412
- imagemagick - 如何在 ImageMagick 7 中将图像大小调整到特定高度?
- php - Laravel 调用未定义的方法问题
- sql - SQL Union Query - 两个访问表
- git - 如何删除 GitHub 中的文件系统贡献者?
- javascript - 如何在 typescript reactjs 中定义它之外的类方法?
- javascript - 本地存储值更改后页面未更新,反应
- php - 使用 HTML 表单存储到资源(Laravel 5.8)
- angular - 如何使用 Angular 7 Resolver 将 queryParams 传递给 API 端点