ধরুন এখানে কোনও স্ক্রিপ্ট এরকম কিছু করছে:
# module writer.py
import sys
def write():
sys.stdout.write("foobar")
এখন ধরুন আমি write
ফাংশনটির আউটপুট ক্যাপচার করতে এবং এটি আরও প্রক্রিয়াকরণের জন্য একটি ভেরিয়েবলে সঞ্চয় করতে চাই। নিষ্পাপ সমাধানটি ছিল:
# module mymodule.py
from writer import write
out = write()
print out.upper()
তবে এটি কাজ করে না। আমি অন্য একটি সমাধান নিয়ে এসেছি এবং এটি কাজ করে, তবে দয়া করে সমস্যাটি সমাধানের আরও ভাল উপায় আছে কিনা তা আমাকে জানান। ধন্যবাদ
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