stefan3003 hat geschrieben:Bei dem "print line" wird mir aber jedes Byte einzeln ausgegeben, ich hatte ansich die ganze Zeile erwartet ;-(
Warum? Was erwartest du denn bei
Ich erwarte da einzelne Zeichen. Es kommen tatsächlich einzelene Zeichen, hurra. Mit .read() bekommst du einen String und wenn du über einen String iterierst, bekommst du nun mal einzelne Zeichen.
stefan3003 hat geschrieben:Was ist der richtige Weg um die ganze Zeile in 'line' zu haben ? Warum wird hier byteweise ausgegeben (die Datei "fdisk.txt" is ganz normales ASCII) ?
Der richtige weg wäre
also direkt über das Handle zu iterieren, statt über den String.
Persönlich würde ich aber lieber dazu das Subprocess-Modul verwenden:
Code: Alles auswählen
import subprocess
ssh_call = 'ssh stefan@meinhost -i /home/stefan/id_dsa cat /home/stefan/fdisk.txt'.split()
proc = subprocess.Popen(ssh_call, stdout=subprocess.PIPE)
for line in proc.stdout:
print line