Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich die Standardausgabe von Python in einen String-Puffer umleiten?
Bei der Entwicklung eines Python-FTP-Clients mit dem ftplib-Paket kann es vorkommen, dass bestimmte Funktionen innerhalb des Pakets keine String-Ausgabe haben sondern stattdessen auf der Standardausgabe (stdout) drucken. Um dieser Herausforderung zu begegnen, ist die Umleitung von stdout auf ein Objekt erforderlich, das bequem gelesen werden kann.
Während die dateibasierte Umleitung über open() eine Option ist, wäre eine alternative Methode, die das lokale Laufwerk nicht nutzt, eine Option effizienter. Javas BufferedReader bietet ein wertvolles Beispiel für das Einschließen eines Puffers in einen Stream.
Um eine ähnliche Funktionalität in Python zu erreichen, verwenden Sie den folgenden Ansatz:
from cStringIO import StringIO # Python3 use: from io import StringIO import sys old_stdout = sys.stdout sys.stdout = mystdout = StringIO() # Execute code that would normally print to stdout ... sys.stdout = old_stdout # Obtain the captured output as a string from mystdout.getvalue()
Durch die Umleitung von stdout an eine StringIO-Instanz können Sie kann die Ausgabe bei Bedarf als Zeichenfolge erfassen und abrufen. Diese Technik ermöglicht eine größere Flexibilität und macht die Einbeziehung externer Dateien überflüssig.
Das obige ist der detaillierte Inhalt vonWie kann ich die Standardausgabe von Python in einen String-Puffer umleiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!