Comment supprimer les lignes de stdout en python?
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.
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)
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 .