Python: Bedeutung der -u-option?
Bin ich aufgefallen, in einigen python-code -u wird verwendet, um starten Sie den python-interpreter.
Ich schaute auf die man-Seite für python, aber ich konnte nicht viel aus ihm heraus. Bitte geben Sie mir einige Beispiele.
- Ich finde dies sehr nützlich, wenn ich am Start python von einem anderen Prozess oder den batch, und ich will monitor die Ausgabe fortlaufend statt große Brocken. Siehe stackoverflow.com/questions/107705/python-output-buffering
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vom
python --help
:In der manpage Staaten:
Python öffnet die stdin, -aus-und -Fehler-Ströme in Gepufferter Modus; es wird zu Lesen oder zu schreiben, in größeren Brocken, halten der Daten im Arbeitsspeicher, bis ein Schwellenwert erreicht ist.
-u
deaktiviert diesen Puffer.Auch, python interpretieren kann Zeilenumbrüche enthalten, die auf Dateien öffnen und übersetzen Sie Sie von und zu der nativen Plattform Zeilenumbrüche (text-Modus). Die
-u
option deaktiviert diese übersetzung, mit dem Sie die binären Daten ohne sich sorgen zu machen über das, was passieren könnte\r\n
Kombinationen. Es entspricht der Verwendungrb
oderwb
Modi beim öffnen von Dateien mit deropen()
Funktion.python3.4 --help
)--help
info (von Python 2.7, würde ich sagen) nicht erwähnt, stdin entweder. Das ist, weil stdin ist die Pufferung außerhalb der Python-Steuerung.stdin
als gut. Siehe deaktivieren Sie die Pufferung in der pipe Wege, zu machen, Ungepuffert von stdin.Python ist optimiert für das Lesen und ausdrucken von Unmengen von Daten. Eine dieser Optimierung ist, dass die Standardeingabe und-Ausgabe der Python-interpreter sind gepuffert. Das bedeutet, dass, wenn ein Programm versucht, mithilfe einer jener Ströme, die interpretiert wird blockiert, bis die Nutzung in große Stücke und lege dann die Stücke alle in einem Rutsch. Dies ist schneller als das senden jeder einzelne lese - /Schreibzugriff durch die getrennt, aber hat natürlich den Nachteil, dass die Daten erhalten kann "gestoppt" in der Mitte.
Die -u Option schaltet dieses Verhalten aus.