我有一个程序使用paramiko通过ssh获取一些数据:
ssh = paramiko.SSHClient()
ssh.connect(main.Server_IP, username=main.Username, password=main.Password)
ssh_stdin_host, ssh_stdout_host, ssh_stderr_host =ssh_session.exec_command(setting.GetHostData)
我想从ssh-stdout-u主机删除前4行。我试过使用StringIO来使用这样的readlines:
output = StringIO("".join(ssh_stdout_host))
data_all = output.readlines()
但这之后我迷路了。什么是一个好的方法?我使用的是Python2.6.5。谢谢。
如何在python中从stdout删除行?
(这是从stdoutPython控制台窗口中删除行的一般答案,与涉及paramiko、ssh等的特定问题无关)
另请参见:here和here
不要使用
print
命令或print()
函数,而是使用sys.stdout.write("...")
与sys.stdout.flush()
组合使用。要删除写入的行,请转到“返回上一行”,并使用sys.stdout.write('\r'+' '*n)
用空格覆盖所有字符,其中n
是行中的字符数。一个很好的例子说明了这一切:
编辑 除了
sys.stdout.write(msg); sys.stdout.flush()
,您还可以使用对于低于3.0的Python版本,将
from __future__ import print_function
放在脚本/模块的顶部,这样可以工作。注意,此解决方案适用于stdout Python控制台窗口,例如,通过右键单击并选择“open with->;Python”来运行脚本。它不适用于SciTe、Idle、Eclipse或其他带有合并控制台窗口的编辑器。我在等一个解决方案。
readlines提供所有数据
相关问题 更多 >
编程相关推荐