সমস্যা
পাইথন স্ক্রিপ্ট চালানোর সময় টার্মিনাল/কনসোল জমা আউটপুট থেকে গোলমাল হয়ে যায়। ইন্টারেক্টিভ শেলে Ctrl+L দিয়ে ক্লিয়ার করা যায়, কিন্তু স্ক্রিপটের ভেতর থেকে প্রোগ্রাম্যাটিক্যালি স্ক্রিন ক্লিয়ার করার কোনো বিল্ট-ইন ফাংশন নেই।
সমাধান: os.system ব্যবহার
অপারেটিং সিস্টেম অনুযায়ী কমান্ড চালিয়ে স্ক্রিন ক্লিয়ার করা যায়:
- Windows:
cls - Linux/macOS:
clear
উদাহরণ কোড
from os import system, name
from time import sleep
def screen_clear():
# Windows-এ 'nt', Unix-এ 'posix'
if name == 'nt':
_ = system('cls')
else:
_ = system('clear')
# টেস্ট
print('Hi !! I am Python\n' * 10)
sleep(2) # ২ সেকেন্ড অপেক্ষা
screen_clear() # স্ক্রিন ক্লিয়ার
বিকল্প: subprocess মডিউল ব্যবহার
subprocess.call() দিয়েও একই কাজ করা যায়, যা কিছুটা আধুনিক পদ্ধতি।
import os
from subprocess import call
from time import sleep
def screen_clear():
_ = call('clear' if os.name == 'posix' else 'cls')
print('Hi !! I am Python\n' * 10)
sleep(2)
screen_clear()
নোট
- রিটার্ন ভ্যালু অন্ডারস্কোর (
_) তে স্টোর করা হয়েছে, কারণ পাইথন শেলে শেষ এক্সপ্রেশনের ভ্যালু অন্ডারস্কোরে থাকে। - IDE-তে (যেমন PyCharm, VS Code টার্মিনাল) এগুলো কাজ নাও করতে পারে। সেক্ষেত্রে ANSI এস্কейপ কোড ব্যবহার করুন:
print('\033[H\033[J')(Unix) বাprint('\033c')।