14 Stimmen

Erzwingen, dass die Standardausgabe eines anderen Programms mit Python ungepuffert wird

Ein Python-Skript steuert eine externe Anwendung unter Linux, übergibt Eingaben über eine Pipe an die stdin der externen Anwendung und liest Ausgaben über eine Pipe von der stdout der externen Anwendung.

Das Problem besteht darin, dass Schreibvorgänge in Pipes blockweise und nicht zeilenweise gepuffert werden, so dass es zu Verzögerungen kommt, bevor das steuernde Skript Daten erhält, die z. B. von printf in der externen Anwendung ausgegeben werden.

Die externe Anwendung kann nicht geändert werden, um explizite fflush(0)-Aufrufe hinzuzufügen.

Wie kann die pty Modul der Python-Standardbibliothek mit dem Unterprozess Modul, um dies zu erreichen?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X