Python3:有没有办法像python2一样使用telnetlib,而没有ascii编码和b前缀?

永远学习

有没有办法通过telnetlib使python2脚本与python3兼容?

我注意到我需要在read_until()前面加上字母b,并且在我要进行write()时需要在字符串上使用encode('ascii')。

Python2

tn = telnetlib.Telnet("192.168.1.45")
tn.write("ls " + dirname + "\n")
answer = tn.read_until(":/$")

Python3

tn = telnetlib.Telnet("192.168.1.45")
cmd_str = "ls " + dirname + "\n"
tn.write(cmd_str.encode('ascii'))
answer = tn.read_until(b":/$")

这将帮助我将许多脚本更新为3.x,因为这是唯一的主要更改。

谢谢!

德莱尼

您可以在中编写自己的子类 encodingtelnetlib.py

class Telnet(Telnet):

    def __init__(self, host=None, port=0,
                 timeout=socket._GLOBAL_DEFAULT_TIMEOUT,
                 encoding='ascii'):
         self.encoding = encoding
         super().__init__(host, port, timeout)

    def write(self, buffer):
        if isinstance(buffer, str):
            buffer = buffer.encode(self.encoding)
        return super().write(buffer)

    # and etc.... for other methods

现在,改变它的问题import telnetlibimport encodingtelnetlib as telnetlib这比查找每个读取和写入要容易。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

有没有办法像python中的枚举列表一样查看字典?

来自分类Dev

在python中有没有办法像使用patch.dict一样修补列表?

来自分类Dev

有没有办法使用 SWIG C++ 创建一个 python 模块,它可以在 Python2 和 Python3 中导入

来自分类Dev

有没有办法像 finally 一样使用 TaskContinuationOptions

来自分类Dev

有没有办法使SSH会话像本地终端会话一样工作?

来自分类Dev

有没有办法使屏幕像普通终端一样滚动?

来自分类Dev

有没有办法像Java中的MouseListener中的mouseClicked一样在KeyListener中使用keyPressed?

来自分类Dev

有没有办法像aws_subnet_ids一样列出GCP VPC的所有子代?

来自分类Dev

有没有办法像在VisualStudio或AndroidStudio中一样在python中创建GUI?

来自分类Dev

有没有办法像Javascript一样在一个词中传递键值?

来自分类Dev

有没有办法像android视图权重一样在CSS中调整div的大小?

来自分类Dev

在Julia中:有没有办法像R的all.equal()一样测试相等性?

来自分类Dev

有没有办法使<li>下拉菜单功能像<option>选择菜单一样?

来自分类Dev

像`kill -9`一样,内核内部有没有办法杀死内核kthread?

来自分类Dev

有没有办法像Gitlab一样为Github添加截止日期

来自分类Dev

有没有办法像R中的capture.output()一样捕获Julia中的stdout?

来自分类Dev

有没有办法像访问当前对象一样访问django-reversion对象?

来自分类Dev

有没有办法像 jQuery 一样通过选择器获取 Tabulator 对象?

来自分类Dev

有没有办法在 linux 上像使用 wacom 表一样使用我的 Galaxy 选项卡?

来自分类Dev

有没有办法让Chrome像在Safari中一样显示SVG光标?

来自分类Dev

有没有办法使G ++ / clang ++的编译时间与MSVC一样快?

来自分类Dev

有没有像Pycharm一样的c ++ IDE检查编码样式?

来自分类Dev

有没有办法像我们使用 XPath 阅读一样来编写 XML?

来自分类Dev

有没有办法使用 Python3 (WITHOUT Dataflow) 从 Datastore 命名空间中删除所有实体?

来自分类Dev

有没有办法将python3中的reportlib中的PDF文件合并?

来自分类Dev

有没有办法像HTML中的“ aria-hidden”一样“隐藏”屏幕阅读器视图?

来自分类Dev

有没有办法像xterm一样在Linux中模拟vt52或任何其他终端类型?

来自分类Dev

有没有办法像GA移动SDK一样将Google Analytics for Web置于“空运行”模式?

来自分类Dev

有没有办法像Windows“ Ctrl + Alt + Delete”一样列出并杀死Mac OS X上正在运行的进程?

Related 相关文章

  1. 1

    有没有办法像python中的枚举列表一样查看字典?

  2. 2

    在python中有没有办法像使用patch.dict一样修补列表?

  3. 3

    有没有办法使用 SWIG C++ 创建一个 python 模块,它可以在 Python2 和 Python3 中导入

  4. 4

    有没有办法像 finally 一样使用 TaskContinuationOptions

  5. 5

    有没有办法使SSH会话像本地终端会话一样工作?

  6. 6

    有没有办法使屏幕像普通终端一样滚动?

  7. 7

    有没有办法像Java中的MouseListener中的mouseClicked一样在KeyListener中使用keyPressed?

  8. 8

    有没有办法像aws_subnet_ids一样列出GCP VPC的所有子代?

  9. 9

    有没有办法像在VisualStudio或AndroidStudio中一样在python中创建GUI?

  10. 10

    有没有办法像Javascript一样在一个词中传递键值?

  11. 11

    有没有办法像android视图权重一样在CSS中调整div的大小?

  12. 12

    在Julia中:有没有办法像R的all.equal()一样测试相等性?

  13. 13

    有没有办法使<li>下拉菜单功能像<option>选择菜单一样?

  14. 14

    像`kill -9`一样,内核内部有没有办法杀死内核kthread?

  15. 15

    有没有办法像Gitlab一样为Github添加截止日期

  16. 16

    有没有办法像R中的capture.output()一样捕获Julia中的stdout?

  17. 17

    有没有办法像访问当前对象一样访问django-reversion对象?

  18. 18

    有没有办法像 jQuery 一样通过选择器获取 Tabulator 对象?

  19. 19

    有没有办法在 linux 上像使用 wacom 表一样使用我的 Galaxy 选项卡?

  20. 20

    有没有办法让Chrome像在Safari中一样显示SVG光标?

  21. 21

    有没有办法使G ++ / clang ++的编译时间与MSVC一样快?

  22. 22

    有没有像Pycharm一样的c ++ IDE检查编码样式?

  23. 23

    有没有办法像我们使用 XPath 阅读一样来编写 XML?

  24. 24

    有没有办法使用 Python3 (WITHOUT Dataflow) 从 Datastore 命名空间中删除所有实体?

  25. 25

    有没有办法将python3中的reportlib中的PDF文件合并?

  26. 26

    有没有办法像HTML中的“ aria-hidden”一样“隐藏”屏幕阅读器视图?

  27. 27

    有没有办法像xterm一样在Linux中模拟vt52或任何其他终端类型?

  28. 28

    有没有办法像GA移动SDK一样将Google Analytics for Web置于“空运行”模式?

  29. 29

    有没有办法像Windows“ Ctrl + Alt + Delete”一样列出并杀死Mac OS X上正在运行的进程?

热门标签

归档