Как удалить линии от Stdout в Python?
Вопрос
У меня есть программа, которая захватывает некоторые данные через 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 или других редакторов с включенными консольными окнами. Я жду себя для решения для этого здесь.