Вопрос

У меня есть программа, которая захватывает некоторые данные через SSH, используя Paramiko:

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)

Я хотел бы удалить первые 4 строки от ssh_stdout_host. Я пробовал использовать Stringio, чтобы использовать такие читания:

output = StringIO("".join(ssh_stdout_host))
data_all = output.readlines()

Но я потерян после этого. Что было бы хорошим подходом? Я использую Python 2.6.5. Спасибо.

Это было полезно?

Решение

ReadLines предоставляет все данные

allLines = [line for line in stdout.readlines()]
data_no_firstfour = "\n".join(allLines[4:])

Другие советы

Как удалить линии от Stdout в Python?

(Это общий ответ на удаление линий от Stdout Консоль Python, и не имеет ничего общего с конкретным вопросом, связанным с Paramiko, SSH и т. Д.)

смотрите также: здесь а также здесь

Вместо того, чтобы использовать print команда или print() Функция, использование sys.stdout.write("...") в сочетании с sys.stdout.flush(). Отказ Чтобы стереть письменную строку, перейдите к предыдущей линии «и перезаписать всех персонажей по пробелам, используя sys.stdout.write('\r'+' '*n), куда n это количество символов в линии.


Приятный пример говорит все это:

import sys, time

print ('And now for something completely different ...')
time.sleep(0.5)

msg = 'I am going to erase this line from the console window.'
sys.stdout.write(msg); sys.stdout.flush()
time.sleep(1)

sys.stdout.write('\r' + ' '*len(msg))
sys.stdout.flush()
time.sleep(0.5)

print('\rdid I succeed?')
time.sleep(1)

редактироватьвместо sys.stdout.write(msg); sys.stdout.flush(), вы также можете использовать

print(msg, end='')

Для версий Python ниже 3.0 положите from __future__ import print_function В верхней части вашего сценария / модуля для этого на работу.

Обратите внимание, что это решение работает для окна консоли STDOUT Python, например, запускайте скрипт, щелкнув правой кнопкой мыши и выбирая «открытый с -> Python». Он не работает для SCITE, IDLE, Eclipse или других редакторов с включенными консольными окнами. Я жду себя для решения для этого здесь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top