Redirection de la sortie standard vers un tampon de chaîne
Lorsque vous travaillez avec des bibliothèques comme le client FTP de Python, vous pouvez rencontrer des situations dans lesquelles certaines fonctions fournissent une sortie vers la sortie standard au lieu de renvoyer des valeurs de chaîne. Pour capturer cette sortie, il est nécessaire de rediriger la sortie standard vers un objet approprié pouvant contenir les données.
Contrairement à BufferedReader de Java, Python propose une approche différente. Le module cStringIO (remplacé par io dans Python 3) fournit une classe StringIO qui sert de tampon en mémoire. Ce tampon peut être efficacement enroulé autour d'un flux comme stdout pour intercepter la sortie.
Pour implémenter cette redirection, suivez ces étapes :
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()
Avec cette approche, la sortie générée par les fonctions sera capturé dans l'objet StringIO (mystdout), accessible ultérieurement en lisant sa valeur à l'aide de mystdout.getvalue().
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!