সমাধান: একই জায়গায় কনসোল আউটপুট লিখুন

পাইথন অ্যাপ্লিকেশনগুলির সাথে কাজ করার সময় একই জায়গায় কনসোল আউটপুট লেখা ডেভেলপারদের জন্য একটি দরকারী কৌশল হতে পারে, বিশেষ করে যখন কমান্ড লাইনে ইউজার ইন্টারফেস তৈরি করা, অগ্রগতি সূচক তৈরি করা এবং রিয়েল-টাইমে কনসোল ডেটা আপডেট করা। এই নিবন্ধটি কনসোল আউটপুট ওভাররাইট করার জন্য একটি সমাধান নিয়ে আলোচনা করবে, ধাপে ধাপে কোড ব্যাখ্যা করবে এবং নির্দিষ্ট লাইব্রেরি এবং বিল্ট-ইন পাইথন ফাংশনগুলিতে ডুব দেবে যা এই কাজটিকে সম্ভব করে।

এটি অর্জনের জন্য, আমরা বিখ্যাত পাইথন লাইব্রেরি "অভিশাপ" ব্যবহার করতে পারি যা বিশেষভাবে টার্মিনাল-ভিত্তিক অ্যাপ্লিকেশন তৈরি করার জন্য ডিজাইন করা হয়েছে যা পাঠ্য-ভিত্তিক ব্যবহারকারী ইন্টারফেসের ব্যবহারের উপর নির্ভর করে। যাইহোক, সরলতা এবং বোঝার সুবিধার জন্য, আমরা পাইথনের অন্তর্নির্মিত "sys" এবং "সময়" মডিউলগুলি কনসোল আউটপুটগুলিকে ওভাররাইট করতে ব্যবহার করব।

পাইথনে কনসোল আউটপুট ওভাররাইট করা হচ্ছে

প্রধান ধারণা ব্যবহার করা হয় sys.stdout.write() ফাংশন, যা আমাদের একসাথে একই লাইনে মুদ্রণ করতে দেয় গাড়ি ফেরত অক্ষর (“r”) লাইনের শুরুতে ফিরে যেতে, কার্যকরভাবে আমাদের আউটপুট ওভাররাইট করার অনুমতি দেয়।

পাইথন ব্যবহার করে কনসোল আউটপুট ওভাররাইট করার একটি উদাহরণ এখানে:

import time
import sys

for i in range(10):
    sys.stdout.write("rStep: %d" % i)
    sys.stdout.flush()
    time.sleep(1)

কোডের ধাপে ধাপে ব্যাখ্যা

1. প্রথমে, প্রয়োজনীয় মডিউল আমদানি করুন:

   import time
   import sys
   

সার্জারির সময় মডিউল পুনরাবৃত্তির মধ্যে বিলম্ব যোগ করতে ব্যবহার করা হবে, এবং sys কনসোলে আউটপুট লিখতে মডিউল ব্যবহার করা হবে।

2. এর পরে, একটি অগ্রগতি কাউন্টার অনুকরণ করে, সংখ্যার একটি সীমার উপর পুনরাবৃত্তি করার জন্য একটি লুপ তৈরি করুন:

   for i in range(10):
   

এই লুপটি 0 থেকে 9 পর্যন্ত পুনরাবৃত্তি করে, কার্যকরভাবে দশবার চলছে।

3. লুপের ভিতরে, ব্যবহার করুন sys.stdout.write() একটি লেবেল সহ বর্তমান পুনরাবৃত্তি নম্বর মুদ্রণ করার জন্য ফাংশন:

   sys.stdout.write("rStep: %d" % i)
   

"r" অক্ষর হল ক্যারেজ রিটার্ন যা লাইনের শুরুতে রিসেট হিসাবে কাজ করে, পরবর্তী আউটপুটটিকে বর্তমানটিকে ওভাররাইট করার অনুমতি দেয়।

4. ব্যবহার নিশ্চিত করুন sys.stdout.flush() কনসোলে লেখার পরে:

   sys.stdout.flush()
   

flush() ফাংশন অভ্যন্তরীণ বাফার পরিষ্কার করে এবং নিশ্চিত করে যে আউটপুট অবিলম্বে প্রদর্শিত হবে।

5. অবশেষে, ব্যবহার করে একটি বিলম্ব যোগ করুন time.sleep() ফাংশন:

   time.sleep(1)
   

এই বিরতিটি এক সেকেন্ডের জন্য স্থায়ী হবে, আউটপুটটি ওভাররাইট করা পর্যবেক্ষণ করা সহজ করে তোলে।

এখন আপনি দেখতে পাচ্ছেন কিভাবে কনসোল আউটপুট প্রতিটি পুনরাবৃত্তিতে ওভাররাইট করা হচ্ছে।

"sys" লাইব্রেরির ওভারভিউ

সার্জারির sys লাইব্রেরি হল একটি শক্তিশালী বিল্ট-ইন পাইথন মডিউল যা দোভাষীর অভ্যন্তরীণ এবং বিভিন্ন সিস্টেম-নির্দিষ্ট পরামিতিগুলিতে অ্যাক্সেস প্রদান করে। এই নিবন্ধে, আমরা ব্যবহার করার উপর দৃষ্টি নিবদ্ধ করেছি sys.stdout.write() এবং sys.stdout.flush() কনসোল আউটপুট ওভাররাইট করার ফাংশন। যাইহোক, "sys" লাইব্রেরি অনেক অন্যান্য কার্যকারিতা অফার করে, যেমন কমান্ড লাইন আর্গুমেন্ট, বাইটঅর্ডার, ব্যতিক্রম এবং পূর্ব-নির্ধারিত পথ।

"সময়" লাইব্রেরির ওভারভিউ

সার্জারির সময় লাইব্রেরি হল আরেকটি বিল্ট-ইন পাইথন মডিউল যা সময় ম্যানিপুলেশন এবং প্রসেসিং সম্পর্কিত বিভিন্ন ধরনের ফাংশন অফার করে। আমাদের উদাহরণে, আমরা ব্যবহার করেছি time.sleep() পুনরাবৃত্তির মধ্যে একটি বিলম্ব তৈরি করতে ফাংশন। "সময়" লাইব্রেরিটি কার্যকর করার সময় পরিমাপ করার জন্য, সময়ের বিন্যাসের মধ্যে রূপান্তর করতে এবং বর্তমান সময় পাওয়ার জন্য অন্যান্য সরঞ্জাম সরবরাহ করে। এই মডিউলটি ডেভেলপারদের জন্য প্রয়োজনীয় যা সময়-সম্পর্কিত ফাংশনগুলির সাথে কাজ করে বা পাইথন অ্যাপ্লিকেশনগুলিতে কাজগুলি নির্ধারণ করে৷

সম্পর্কিত পোস্ট:

মতামত দিন