Paramiko stdout.readlines与channel.recv

问题描述

我是python paramiko的新手。我知道在远程服务器invokde_shellexec_command中有两种执行命令的方法。在少数情况下,使用stdout.readlines()读取输出,而在其他情况下,将channel.recv作为循环条件使用exit_status。很难理解两者之间的区别以及用于我的脚本的区别。谁能解释一下?

解决方法

这是一个相当广泛的问题,因此仅作简要介绍:
readlinesrecv –这与Paramiko无关。读取本地文件或本地程序输入时,您具有相同的功能集。使用适合您需求的任何东西。如果需要按字节读取(例如,在处理二进制输入时),则可能要使用recv(或read)。如果要按行处理文本输入,请使用readlines(或readline)。

您还将shell vs. exec混入到您的问题中,什么是单独的内容,在这里介绍:
What is the difference between exec_command and send with invoke_shell() on Paramiko?


总的来说,您最好问一个有关实施特定问题的特定问题。