اذهب إلى المحتوى

السؤال

نشر

في كثير من الأحيان أستخدم مفسر بايثون Python interpreter لوقت طويل وبعد قليل من الوقت أجد أنه قد امتلأ بكثير من البيانات، وتسألت هل توجد طريقة لعمل clear لمفسر بايثون؟ مثل أمر cls في powershell أو clear في سطر أوامر لينكس.

حاولت أن أبحث عن دالة مثل clear أو cls باستخدام كل من help() و dir() لكن لم أجد أي شيء، كما حاولت أن أستخدم الأمر Ctrl + L ولكن يبدو انه لا يعمل في ويندوز.

هل توجد طرق أخرى للقيام بهذا الأمر؟

Recommended Posts

  • 0
نشر

يمكنك فعل ذلك في ووندوز باستخدام التابع system الموجود في المكتبة os , يجب استدعاء المكتبة اولا ثم يمكنك عمل دالة بحيث عند استدعائها يتم عمل clear للمفسر, لاحظ كيف يتم الأمر

import os
def clear(): os.system('cls')

الآن اذا اردت استخدام الدالة يمكنك استدعاءها في المكان الذي تريد كالتالي

clear()

يمكنك كتابة الدالة بطريقة Lambda كالتالي

import os
clear = lambda: os.system('cls')

 

  • 1
نشر

كما وضح محمد في التعليق السابق فإنه يمكنك تنفيذ ذلك من خلال os.system('cls') ولكن ذلك يعمل في windows فقط ولجعلها تعمل على العديد من المنصات قم بتنفيذ الدالة التالية حيث نضيف لها "clear" مع cls 

import os

def cls():
    os.system('cls' if os.name=='nt' else 'clear')

#الأن سيعمل الكود على العديد من المنصات
cls()
  • 0
نشر

يمكنك إستخدام الدالة clear مع subprocess والتي يمكن تنفيذها في ويندوز، لينيكس، و ماك:

import subprocess   
clear = lambda: subprocess.call('cls||clear', shell=True)
clear()

أو يمكنك إستخدام الدالة cls المعرفة كالتالي:

cls = lambda: print("\033c\033[3J", end='')
cls()

العبارة \033[H\033[J تقوم بحذف المحتوى من على الشاشة و إرجاع المؤشر إلى أعلى يسار الشاشة.

طباعة سطر جديد لمئة مرة متتالية تفهم المفسر أن المبرمج يريد مسح الذاكرة:

clear = "\n" * 100
print(clear)

في أي وقت تريد تنفيذ عملية المسح يمكن إستدعاء clear، و يمكنك أيضاً كتابة العبارة بطريقة أخرى:

cls = lambda: print('\n'*100)
cls()

 

  • 0
نشر

يمكنك ببساطة إستخدام هذا الكود البسيط للقيام بالمطلوب لأنظمة وندوز ولينوكس وماك

import os
os.system('cls||clear')

أو استخدام الآتي

import subprocess, platform

if platform.system()=="Windows":
    subprocess.Popen("cls", shell=True).communicate() # لوندوز
else: # لليونكس وماك
    print("\033c", end="")

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...