misalkan ada skrip yang melakukan hal seperti ini:
# module writer.py
import sys
def write():
sys.stdout.write("foobar")
Sekarang misalkan saya ingin menangkap output dari write
fungsi dan menyimpannya dalam variabel untuk diproses lebih lanjut. Solusi naifnya adalah:
# module mymodule.py
from writer import write
out = write()
print out.upper()
Tapi ini tidak berhasil. Saya datang dengan solusi lain dan berhasil, tapi tolong, beri tahu saya jika ada cara yang lebih baik untuk menyelesaikan masalah. Terima kasih
import sys
from cStringIO import StringIO
# setup the environment
backup = sys.stdout
# ####
sys.stdout = StringIO() # capture output
write()
out = sys.stdout.getvalue() # release output
# ####
sys.stdout.close() # close the stream
sys.stdout = backup # restore original stdout
print out.upper() # post processing