Stdout in einen String-Puffer umleiten
Beim Arbeiten mit Bibliotheken wie dem FTP-Client von Python kann es vorkommen, dass bestimmte Funktionen Ausgaben an stdout liefern anstatt String-Werte zurückzugeben. Um diese Ausgabe zu erfassen, ist es notwendig, stdout auf ein geeignetes Objekt umzuleiten, das die Daten speichern kann.
Im Gegensatz zu Javas BufferedReader bietet Python einen anderen Ansatz. Das cStringIO-Modul (in Python 3 durch io ersetzt) stellt eine StringIO-Klasse bereit, die als In-Memory-Puffer dient. Dieser Puffer kann effizient um einen Stream wie stdout gewickelt werden, um die Ausgabe abzufangen.
Um diese Umleitung zu implementieren, befolgen Sie diese Schritte:
import sys from cStringIO import StringIO # Store the original stdout stream old_stdout = sys.stdout # Create the in-memory buffer sys.stdout = mystdout = StringIO() # Execute code that generates output normally directed to stdout # Restore the original stdout stream sys.stdout = old_stdout # Access the output via mystdout.getvalue()
Bei diesem Ansatz wird die Ausgabe von den Funktionen generiert wird im StringIO-Objekt (mystdout) erfasst, auf das später durch Lesen seines Werts mit mystdout.getvalue() zugegriffen werden kann.
Das obige ist der detaillierte Inhalt vonWie kann ich stdout in Python auf einen String-Puffer umleiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!