در برنامهنویسی پایتون همیشه با کنسول سر و کار داریم و اطلاعاتی در آن نمایش میدهیم. در این آموزش ساده یاد میگیریم عملیات پاک کردن صفحه کنسول در پایتون را در هر سیستم عاملی انجام دهیم. برای این کار از تابع system در کتابخانه os استفاده میکنیم.
همانطور که میدانید در سیستم عامل لینوکس محیطی به نام ترمینال وجود دارد که از طریق آن به سیستم عامل صحبت میکنیم و دستورات مختلفی در آن اجرا میکنیم. در ویندوز هم از محیط cmd و یا power shell برای چنین اهدافی استفاده میشود.
برای پاک کردن محتویات محیط شل (shell) یا ترمینال دستور cls
در ویندوز و دستور clear
در لینوکس و مک استفاده میشود.
پاک کردن کنسول پایتون
برای اینکه دستورهای فوق را در کنسول و هنگام اجرای کد پایتون فراخوانی کنیم، باید از کتابخانه os
استفاده کنیم. این کتابخانه به صورت پیشفرض وجود دارد و نیازی به نصب آن نداریم.
در این کتابخانه تابعی به نام system()
در اختیار داریم که یک ورودی به صورت رشته (string) میگیرد. سپس این رشته متنی را به صورت دستور shell در کنسول فعلی اجرا میکند.
import os
os.system( CMD )
کافی است برای پاک کردن صفحه کنسول برنامه پایتون دستور cls
یا clear
را به این تابع بدهیم تا کنسول را به طور کامل پاک کند. در نتیجه برای ویندوز کد زیر را داریم:
import os
os.system( 'cls' )
معادل همین کد برای پاک کردن کنسول پایتون در لینوکس یا مک چیزی شبیه کد زیر است:
import os
os.system( 'clear' )
تبریک! به همین سادگی توانستید تمام اطلاعات چاپ شده در کنسول را پاک کنید. در ادامه آموزش ترفندهای تکمیلیتر این روش را بررسی میکنیم.
اگر از کتابخانه os فقط به همین تابع نیاز داشتید، میتوانید مشابه قطعه کد زیر، فقط همین تابع را از کتابخانه فراخوانی کنید. در این صورت دیگر نیازی به نوشتن os.
در ابتدای دستور نیست.
from os import system
system( 'cls' )
تعریف تابع کد پاکسازی صفحه در پایتون
اگر قرار است عملیات پاک کردن خروجی کنسول را بارها و بارها در برنامه خود استفاده کنید، بهتر است آن را به صورت یک تابع تعریف کرده و هر کجا لازم داشتید، آن را اجرا کنید.
from os import system
def clear_console():
system('cls') # for windows
میتوان این تابع را به شکل ساده شده در قطعه کد زیر نوشت:
from os import system
clear_console = lambda: system('cls')
از این پس هر وقت نیاز به پاک کردن صفحه بود، فقط کافی است تابع clear_console()
را صدا بزنیم. 🙂
اگر مایلید در مورد تعریف توابع و نحوه کار با آنها بیشتر بدانید، پیشنهاد میکنم آموزش زیر را ببینید:
یادآوری میکنم که از دستور cls در پایتون برای پاک کردن صفحه کنسول در ویندوز و از دستور clear در پایتون در لینوکس و مک استفاده میکنیم.
مقداری حرفهایتر!
اگر لازم است کد شما روی سیستم عاملهای مختلفی اجرا شود، شاید بهتر باشد به کمک یک شرط ساده، نوع سیستم را تشخیص داده و دستور (command) متناسب با ویندوز یا لینوکس را اجرا کنیم.
برای این کار از ویژگی name که در کتابخانه os وجود دارد استفاده میکنیم.
from os import system, name
def clear_console():
if name == 'nt':
system('cls')
else:
system('clear')
صرفاً برای یادگیری بیشتر، مقدار os.name
در ویندوز nt
و در لینوکس و مک posix
است.
حالا فرقی ندارد در چه سیستم عاملی هستید، با صدا زدن تابع clear_console()
در برنامه، صفحه پاک خواهد شد.
امیدوارم از این آموزش کوتاه اما کاربردی لذت برده باشید. اگر ترفند دیگری برای پاک کردن صفحه کنسول پایتون میشناسید، از بخش دیدگاهها با دوستانتان به اشتراک بگذارید.
این آموزش برای همیشه رایگانه! میتونید با اشتراکگذاری لینک این صفحه از ما حمایت کنید یا با خرید یه فنجون نوشیدنی بهمون انرژی بدید!
میخوام یه نوشیدنی مهمونتون کنم
سلام. توی قسمت ران یک لینک بود که وقتی اونو میزدی وارد یه صفحه میشدی انگار مربوط به حافظه کتابخانه تیکنتر بود …من تمام اون کد هارو پاک کردم متاسفانه…الان که ران میکنم اصلا تیکنتر رو نمیشناسه و ارور میده .فک کنم حافظه شو پاک کردم …چه راهی داره که کد ها برگردن؟؟
سلام
اگر ماژول tkinter مشکل خورده باشه میتونید حذف و مجدد نصبش کنید. دستورهای زیر رو در محیط command بزنید:
سلام.میخواستم بدونم آیا دستوری هست که فقط چند خط مشخص رو پاک بکنه؟ممنون
سلام
چند خط رو نمیدونم و فکر نکنم یه دستور خاص داشته باشه. مگه کاراکترهای ascii خاصی پیدا کنید یا دنبال راهحل باشید واسش! اما اگه میخواید فقط روی خط آخر موجود در کنسول بنویسه (اصطلاحاً خط آخر رو overwrite کنه) میتونید وقتی یه چیزی پرینت میکنید که قراره بازنویسی بشه (آپدیت بشه با یه چیز دیگه) آرگومان end رو
\r
تعیین کنید؛ مثل:سلام خسته نباشید
بابت آموزش هایی ک میزارید واقعا سپاس گذارم.بسیار کاربردی هستند.
یک سوال داشتم،این دستور و من تو IDLE shell وارد میکنم،متاسفانه پاک نمیکنه،ممکنه بیشتر راهنماییم بفرمایید؟
پیشاپیش از شما سپاسگذارم
سلام
خوشحالیم که آموزشها براتون مفیده.
این روش برای پاک کردن صفحه console هست که به روی سیستم عامل اجرا میشه. تا جایی که میدونیم محیط IDLE shell رو نمیشه پاک کرد و باید ببندید و دوباره بازش کنید.
پیشنهاد میکنیم که برای کدنویسی طولانی (غیر از موارد کوتاه یا تست برای یادگیری) به سراغ ویرایشگرهای کد (IDEها) برید و کدها رو از طریق اونها بنویسید. برای اجراش هم میتونید از همون محیط یا اجرا با کنسول اقدام کنید.
خیلی مچکرم از راهنماییتون،موفق و پیروز باشین.🙏🏼🌷
در کتابخانه tkinter باید از چه کدی استفاده کرد؟؟
میخواید canvas رو کامل تمیز کنید؟ اگه آره از متد delete مثل
canvas.delete('all')
کمک بگیرید.ممنون خیلی مطلبتون مفید بود کلی دنبالش بودم دستتون درد نکنه
خوشحالیم که برات کاربردی بوده آرتین عزیز. مرسی واسه انرژی خوبی که بهمون دادی
ممنون چند روز دنبالش میگشتم
درود
خوشحالیم که براتون کاربردی بوده پرنیای عزیز 🙂
سلام
من از آناکوندا استفاده میکنم و این دستور اجرا می کنم کنسولم پاک نمیشه
سلام
تجربه جدید در کار با محیط آناکوندا نداریم. داخل محیط کنسولش میزنید؟ چون کنسولش دقیقاً همون محیط کامندی هست که توسط سیستم عاملتون ارائه میشه تا جایی که میدونم.
مستقیماً دستور clear یا cls (بسته به سیستمتون) بزنید خطا میده؟
👍🏻👍🏻👍🏻👌👌👌
سلام وقت بخیر من با کامپایلر آنلاین gdb کار میکنم به طور موقت و قطعه کد ساده من موقع اجرا وقتی به اجرای
os.system('cls')
میرسه با ارور مقابل رو به رو میشم : sh: 1: CLS: not found ، اگر ممکنه راه حلش رو بهم بگید ممنون میشم.قطعه کد رو توی یه پیام می نویسم
سلام
ممکنه مفسر آنلاینی که دارید استفاده میکنید از این دستور پشتیبانی نکنه. cls برای شل ویندوزیه و clear برای لینوکسی. دومی رو تست کنید چون احتمال زیاد کدها رو روی سرور لینوکسی اجرا میشه. ولی ممکنه اجازه استفاده ازش رو نداشته باشید و خطای مشابهی بگیرید؛ که پیشنهاد میکنیم روی سیستمتون هم بررسی کنید.
سلام ببخشید من قطعه کد زیر رو نوشتم اما صفحه رو پاک نمیکنه کامپایلرم هم آناکوندا 2018 است
سلام
دقت کنید که با این روش خروجی کنسول (در خط فرمان یا محیطهای مشابه) میتونید خروجی رو پاک کنید.
اگه محیط اجراکنندهتون متفاوت باشه باید دستور یا کد مخصوص همون رو استفاده کنید. برای اجرا از jupyter استفاده میکنید یا چیز دیگهای؟
عالی
سلامت باشی. خوشحالیم که همراهان خوبی مثل شما داریم احد عزیز.
عالی
خوشحالیم که این آموزش براتون مفید بوده. ممنون برای انرژی خوبتون 🙂
سلام ممنون از توضیحاتتون من دستور را برای ویندوز اجرا میکنم. داخل شل idle ولی اجرا نمیشه وخطای multiple statements found while compiling a single statement میاد.
سلام
در idle اجرا میکنید؟ این دستورها یک کامند رو در محیط command line اجرا میکنند که محتوای قبلی پاک بشه. idle یک برنامه جداگانه هست و این کامند نتیجه خاصی نباید داشته باشه!