প্রায়শই আমাকে হয় ফাইল করতে ডেটা আউটপুট করতে হয়, অথবা যদি ফাইল নির্দিষ্ট না করা হয়, স্টডআউট করার জন্য। আমি নিম্নলিখিত স্নিপেট ব্যবহার:
if target:
with open(target, 'w') as h:
h.write(content)
else:
sys.stdout.write(content)
আমি এটিকে আবার লিখতে এবং উভয় লক্ষ্যকে অভিন্নভাবে পরিচালনা করতে চাই।
আদর্শ ক্ষেত্রে এটি হবে:
with open(target, 'w') as h:
h.write(content)
তবে এটি ভালভাবে কাজ করবে না কারণ withব্লক ছাড়ার সময় sys.stdout বন্ধ হয়ে যায় এবং আমি এটি চাই না। আমিও চাই না
stdout = open(target, 'w')
...
কারণ মূল স্টডআউটটি পুনরুদ্ধার করতে আমার মনে রাখা দরকার।
সম্পর্কিত:
- পাইথনের কোনও ফাইলে স্টাডাউট পুনর্নির্দেশ করবেন?
- ব্যতিক্রমগুলি হ্যান্ডলিং - সি ++ এর তুলনায় পাইথনে ব্যতিক্রমগুলি পরিচালনা করার বিষয়ে আকর্ষণীয় নিবন্ধ
সম্পাদনা করুন
আমি জানি যে আমি মোড়তে targetপারি, পৃথক ফাংশন সংজ্ঞায়িত করতে পারি বা প্রসঙ্গ পরিচালককে ব্যবহার করতে পারি । আমি একটি সরল, মার্জিত, আইডোম্যাটিক সলিউশন ফিটিংয়ের সন্ধান করছি যার জন্য 5 টির বেশি লাইনের প্রয়োজন হবে না