2016-03-28 9 views
1

Warum ist ein Prozentzeichen am Ende der Ausgabe des Python-Skripts?Prozentzeichen am Ende der Ausgabe von Python-Skript

$ echo "TEST TEST" | trimmen
testtest%

#!/usr/bin/env python 
import sys 

if __name__ == "__main__": 
    for line in sys.stdin: 
     sys.stdout.write(''.join(line.split())) 
+0

Die Problem ist gelöst, zsh fordert mit% auf, wenn der Befehl, der ausgeführt wird, keinen Zeilenumbruch druckt. – user2502106

Antwort

2

Die % Sie sehen, dass es tatsächlich Ihre Shell-Prompt sein könnte, und nicht Teil des Programms ausgegeben. Sie schreiben nach der Ausgabe keine neue Zeile, sodass die Shell-Eingabeaufforderung ganz am Ende der Ausgabe des letzten Befehls angezeigt wird.

Mögliche Lösungen:

  1. Verwenden print statt sys.stdout.write
  2. anhängen eine neue Zeile an das Ende der Ausgabe mit + "\n"
  3. eine print() bis zum Ende des Programms hinzufügen
+0

korrigiere ich es mit einem '+" \ n "' und es hat den Job gemacht. Vielen Dank – user2502106