bunun gibi bir şey yapan bir komut dosyası olduğunu varsayalım:
# module writer.py
import sys
def write():
sys.stdout.write("foobar")
Şimdi, write
fonksiyonun çıktısını yakalamak ve daha sonraki işlemler için bir değişkende saklamak istediğimi varsayalım . Saf çözüm şuydu:
# module mymodule.py
from writer import write
out = write()
print out.upper()
Ama bu işe yaramıyor. Başka bir çözüm buldum ve işe yarıyor, ancak sorunu çözmenin daha iyi bir yolu olup olmadığını lütfen bana bildirin. Teşekkürler
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