Hi,

I was assuming that sys.stdout would be referencing the same physical stream as 
iostreams::cout running in the same process, but this doesn't seem to be the 
case.
The following code, which makes a call to a C++ function with a python wrapper 
called "write", that writes to cout:

from cStringIO import StringIO
import sys
orig_stdout = sys.stdout
sys.stdout = stringout = StringIO()
write("cout") # wrapped C++ function that writes to cout
print "-" * 40
print "stdout"
sys.stdout = orig_stdout
print stringout.getvalue()

immediately writes "cout" to the console, then the separator "---...", and 
finally, as the return value of stringout.getvalue(), the string "stdout".
My intention was to capture in stringout also the string written to cout from 
C++.
Does anyone know what is going on, and if so, how I can capture what is written 
to cout in a python string?

Thanks in advance.
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to