Question

J'ai un programme qui saisit des données via ssh en utilisant 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)

Je voudrais enlever les 4 premières lignes de ssh_stdout_host. Je l'ai essayé d'utiliser StringIO d'utiliser readlines comme ceci:

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

Mais je suis perdu après cela. Quelle serait une bonne approche? Im en utilisant python 2.6.5. Merci.

Était-ce utile?

La solution

readlines fournit toutes les données

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

Autres conseils

Comment supprimer les lignes de stdout en python?

(ce qui est une réponse générale pour la suppression des lignes de la sortie standard fenêtre de la console Python , et n'a rien à voir avec la question spécifique impliquant paramiko, ssh, etc)

voir aussi: ici et ici

Au lieu d'utiliser la commande ou la fonction de print print(), l'utilisation combinée avec sys.stdout.write("...") sys.stdout.flush(). Pour effacer la ligne écrite, allez « à la ligne précédente » et remplacer tous les caractères par des espaces en utilisant sys.stdout.write('\r'+' '*n), où n est le nombre de caractères dans la ligne.


un exemple bien dit tout:

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)

modifier au lieu de sys.stdout.write(msg); sys.stdout.flush(), vous pouvez également utiliser

print(msg, end='')

Pour les versions Python ci-dessous 3.0, mis from __future__ import print_function en haut de votre script / module pour ce travail.

Notez que cette solution fonctionne pour la fenêtre de la console Python stdout, par exemple exécutez le script en cliquant à droite et en choisissant «Ouvrir avec -> python. Il ne fonctionne pas pour SciTe, Idle, Eclipse ou d'autres éditeurs avec des fenêtres de console intégrés. Je me attends une solution pour que ici .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top