Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich die Standardausgabe von Python in einen String-Puffer umleiten?

Wie kann ich die Standardausgabe von Python in einen String-Puffer umleiten?

Barbara Streisand
Barbara StreisandOriginal
2024-11-24 07:18:13612Durchsuche

How Can I Redirect Python's Standard Output to a String Buffer?

Standardausgabe in einen String-Puffer in Python 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn