खोल में साफ स्क्रीन


90

बस एक त्वरित सवाल:
आप स्क्रीन को शेल में कैसे साफ़ करते हैं? मैंने ऐसे तरीके देखे हैं:

import os
os.system('cls')

यह सिर्फ विंडो cmd को खोलता है, स्क्रीन को साफ करता है और बंद कर देता है लेकिन मैं चाहता हूं कि शेल विंडो क्लियर हो जाए
(PS: मुझे नहीं पता यह मदद करता है, लेकिन मैं Python के 3.3.2 वर्जन का उपयोग कर रहा हूं)
धन्यवाद :)


जवाबों:


57

MacOS / OS X के लिए, आप उपप्रोसेस मॉड्यूल का उपयोग कर सकते हैं और शेल से 'cls' कॉल कर सकते हैं:

import subprocess as sp
sp.call('cls', shell=True)

विंडो के शीर्ष पर '0' को दिखाने से रोकने के लिए, दूसरी पंक्ति को इसके साथ बदलें:

tmp = sp.call('cls', shell=True)

लिनक्स के लिए, आपको clsकमांड को बदलना होगाclear

tmp = sp.call('clear', shell=True)

3
मैं मैक ओएस एक्स का उपयोग कर रहा हूं, और मैंने यह कोशिश की import subprocess as sp sp.call('clear',shell=True), जो काम करता है, सिवाय 0टर्मिनल विंडो के शीर्ष पर।
डेनियल ड्रॉपिक

0 शेल से 'cls' कमांड कॉल का रिटर्न वैल्यू है। मैंने उस मूल्य से छुटकारा पाने के लिए उत्तर को संपादित किया, बस उस मूल्य को एक चर में संग्रहीत करके।
गलहाई

9
यह प्रयास करेंctrl+L
साईं राम

जो कमांड लाइन पर काम करता है। प्रश्न यह था कि इसे पायथन में कैसे किया जाए।
एडवर्ड फॉक

समाधान के लिए धन्यवाद, मुझे शेल = ट्रू याद आ रहा था। 0 को दिखाने से रोकने के लिए आप स्टेटमेंट के अंत में एक अर्धविराम भी जोड़ सकते हैं। sp.call('cls', shell=True);
वायलन वाकर

85

शॉर्टकट के बारे में क्या CTRL+L क्या?

यह सभी गोले जैसे कि पायथन, बैश, MySQL, MATLAB, आदि के लिए काम करता है।


5
दुर्भाग्य से विंडोज पर विंडोज 10 में नए cmd सहित काम नहीं करता है
9a3eedi

64
import os

os.system('cls')  # For Windows
os.system('clear')  # For Linux/OS X

इसके अलावा, os.system('clear')मैक ओएस एक्स टर्मिनलों के लिए (डिफ़ॉल्ट शेल के साथ काम करने की पुष्टि की गई bash, और इसके लिए भी csh)।
jvriesem

आप इसे चलाने के लिए एक फ़ंक्शन को भी परिभाषित कर सकते हैं, जैसे: def cls (): os.system ('cls') (दो बार हिट)। फिर आप स्क्रीन क्लियर करने के लिए सिर्फ cls () टाइप कर सकते हैं।

सवाल यह था कि शेल में यह कैसे किया जाए।
काइल डेलानी

1
@KyleDelaney अक्षम होने पर, यह शेल में काम करता है। साथ ही कई लोगों ने इसे उपयोगी पाया क्योंकि यही वे खोज रहे थे।
गस्पा 79

12

आप जिस चीज की तलाश कर रहे हैं वह शाप मॉड्यूल में पाया जाना है।

अर्थात

import curses  # Get the module
stdscr = curses.initscr()  # initialise it
stdscr.clear()  # Clear the screen

महत्वपूर्ण लेख

याद रखने वाली महत्वपूर्ण बात किसी भी निकास से पहले है, आपको टर्मिनल को सामान्य मोड में रीसेट करने की आवश्यकता है, यह निम्नलिखित पंक्तियों के साथ किया जा सकता है:

curses.nocbreak()
stdscr.keypad(0)
curses.echo()
curses.endwin()

यदि आप नहीं करते हैं तो आपको हर तरह का अजीब व्यवहार मिलेगा। यह सुनिश्चित करने के लिए कि यह हमेशा किया जाता है मैं एटिक्सिट मॉड्यूल का उपयोग करने का सुझाव दूंगा, कुछ इस प्रकार है:

import atexit

@atexit.register
def goodbye():
    """ Reset terminal from curses mode on exit """
    curses.nocbreak()
    if stdscr:
        stdscr.keypad(0)
    curses.echo()
    curses.endwin()

शायद अच्छा करेंगे।


क्या आप अधिक विशिष्ट हो सकते हैं?
२०:३३

1
मैं अपने टर्मिनल के लिए Mac OS X 10.7.5 और iTerm 2 चला रहा हूं। Python2.7 का उपयोग, stdscr = curses.initscr()स्क्रीन को साफ करने के लिए काम करता है, और stdscr.clear()कुछ भी नहीं करता है। Python3.4 का उपयोग करते हुए, stdscr = curses.initscr()स्क्रीन को साफ करता है, लेकिन नए सिरे से संसाधित करने के लिए टर्मिनल की क्षमता को दूर ले जाता है। जब मैं बार-बार प्रेस करता हूं, तो यह निम्नलिखित देता है: >>> >>> >>> >>> और इसी तरह। मैं अभी भी कमांड टाइप कर सकता हूं, लेकिन वे दिखाई नहीं देते हैं। इसके अलावा, यह व्यवहार तब भी बना रहता है जब मैं exit()पायथन करता हूं । AVOID का उपयोग करें!
jvriesem

@jvriesem शाप मॉड्यूल लंबे समय से उपयोग में रहा है और बहुत से लोगों द्वारा इस्तेमाल किया गया है - मैं सुझाव दूंगा कि आप देखें कि क्या आप व्यवहार को थोड़े समय में दोहरा सकते हैं, (20 लाइनें या तो), उदाहरण और पोस्ट यह स्टैक ओवरफ्लो प्रश्न या डेवलपर मेलिंग सूची पर है।
स्टीव बार्न्स

अच्छा विचार - यह मेरी "AVOID USE!" से बेहतर प्रतिक्रिया है। बयान। इस उत्तर की पहली दो पंक्तियाँ दो पंक्तियाँ थीं जो मेरे लिए समस्या की प्रतिकृति हैं। क्या आपको पता है कि किसी भी कारण से cursesमॉड्यूल में संगतता समस्याएँ हो सकती हैं (विंडोज बनाम मैक बनाम लिनक्स)? मैं पुष्टि कर सकता हूं कि यह मुद्दा दो अलग-अलग मैक टर्मिनलों पर होता है, कम से कम। व्यवहार BASH में रहता है, लेकिन CSH में नहीं। हम्म .... क्या आपको लगता है कि मुझे शाप डेवलपर, शेल डेवलपर से संपर्क करना चाहिए या एसओ समुदाय से पूछना चाहिए? एक बार फिर धन्यवाद!
jvriesem

@jvriesem - मैंने अपना उत्तर अपडेट कर दिया है कि किसी भी निकास पर शामिल होने के बाद, अपने टर्मिनल को मानक मोड में रीसेट करने का तरीका शामिल करें।
स्टीव बार्न्स

12

यहां कुछ विकल्प दिए गए हैं, जिनका उपयोग आप विंडोज पर कर सकते हैं

पहला विकल्प:

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

>>> cls()

दूसरा विकल्प:

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

>>> cls()

तीसरा विकल्प यदि आप पायथन आरईपीएल विंडो में हैं:

Ctrl+L

9

ऑल-अराउंड ग्रेट सीएलआई लाइब्रेरी होने के अलावा, clickएक प्लेटफॉर्म-अज्ञेय clear()समारोह भी प्रदान करता है :

import click
click.clear()

7

यह फ़ंक्शन किसी भी ओएस (यूनिक्स, लिनक्स, मैकओएस, और विंडोज)
पायथन 2 और पायथन 3 में काम करता है

import platform    # For getting the operating system name
import subprocess  # For executing a shell command

def clear_screen():
    """
    Clears the terminal screen.
    """

    # Clear command as function of OS
    command = "cls" if platform.system().lower()=="windows" else "clear"

    # Action
    return subprocess.call(command) == 0

विंडोज़ में कमांड clsयूनिक्स की तरह सिस्टम है clear
platform.system()मंच का नाम देता है। पूर्व। 'Darwin'macOS के लिए।
subprocess.call()एक सिस्टम कॉल करता है। पूर्व।subprocess.call(['ls','-l'])


5

पाइथन में स्क्रीन को साफ़ करने का एक आसान तरीका Ctrl+ उपयोग करना है , Lहालांकि यह शेल के साथ-साथ अन्य कार्यक्रमों के लिए भी काम करता है।


4

यदि आप अजगर तक पहुंचने के लिए लिनक्स टर्मिनल का उपयोग कर रहे हैं, तो स्क्रीन को साफ करने के लिए cntrl + l सबसे अच्छा समाधान है


4

मैं एक ऐसे वर्ग का उपयोग कर रहा हूं, जो पर्दे के पीछे उपरोक्त तरीकों में से एक का उपयोग करता है ... मैंने देखा कि यह विंडोज और लिनक्स पर काम करता है ... मुझे इसका उपयोग करना पसंद है, क्योंकि यह सिस्टम के बजाय स्पष्ट () को टाइप करना आसान है ('स्पष्ट') ) या os.system ('स्पष्ट')

pip3 install clear-screen

from clear_screen import clear

और तब जब आप शेल को खाली करना चाहते हैं:

clear()

3

विंडोज़ 10 और pyhton3.5 का उपयोग करना मैंने कई कोड का परीक्षण किया है और इससे अधिक कुछ भी मेरी मदद नहीं करता है:

पहले एक साधारण फ़ंक्शन को परिभाषित करें, यह फ़ंक्‍शन 50 नईलाइनों को प्रिंट करेगा; (संख्या 50 इस बात पर निर्भर करेगी कि आप अपनी स्क्रीन पर कितनी लाइनें देख सकते हैं, इसलिए आप इस नंबर को बदल सकते हैं)

def cls(): print ("\n" * 50)

फिर इसे जितनी बार चाहें या जितनी बार चाहें कॉल करें

cls()

मेरे लिए तैयार किए गए कमांड विचारों में से किसी ने भी काम नहीं किया। इसे बनाते हुए, मेरे स्वयं के कार्य ने किया।
डैशिंगक्वार

2

Command+K स्क्रीन को साफ़ करने के लिए OSX में ठीक काम करता है।

Shift+Command+K केवल स्क्रॉलबैक बफ़र साफ़ करने के लिए।



1

Subprocess आपको Shell के लिए "cls" कॉल करने की अनुमति देता है।

import subprocess
cls = subprocess.call('cls',shell=True)

यह उतना ही सरल है जितना मैं इसे बना सकता हूं। आशा है कि यह आप के लिए काम करता है!


1
  1. आप विंडो या लिनक्स ओएस का उपयोग कर सकते हैं

    import os
    os.system('cls')
    os.system('clear')
    
  2. आप उपप्रोसेस मॉड्यूल का उपयोग कर सकते हैं

    import subprocess as sp
    x=sp.call('cls',shell=True)
    

1

os.system('cls')ठीक है जब मैं उन्हें खोलता हूं। यह cmd स्टाइल में खुलता है।



0

यहां बताया गया है कि कैसे अपना खुद का बनाएं clsयाclear कमांड बिना किसी फ़ंक्शन के स्पष्ट रूप से काम करेगा!

हम इस तथ्य का लाभ उठाएंगे कि अजगर कंसोल repr()स्क्रीन पर वस्तुओं को प्रदर्शित करने के लिए कहता है। यह विशेष रूप से उपयोगी है यदि आपके पास अपना स्वयं का अनुकूलित अजगर शेल ( -iउदाहरण के लिए विकल्प के साथ ) है और आपके पास इसके लिए पूर्व-लोडिंग स्क्रिप्ट है। यह वही चीज़ है जिसकी आपको आवश्यकता है:

import os
class ScreenCleaner:
    def __repr__(self):
        os.system('cls')  # This actually clears the screen
        return ''  # Because that's what repr() likes

cls = ScreenCleaner()

clearइसके बजाय का उपयोग करें clsयदि आप linux पर हैं ( osकमांड और वैरिएबल नाम दोनों में )!

अब अगर आप सिर्फ लिखते हैं clsया clearसांत्वना में - यह स्पष्ट कर देगा! नहीं भी cls()या clear()- बस कच्चा चर। ऐसा इसलिए है क्योंकि अजगर repr(cls)इसे प्रिंट करने के लिए कॉल करेगा , जो बदले में हमारे __repr__फ़ंक्शन को ट्रिगर करेगा ।

आइए इसका परीक्षण करें:

>>> df;sag
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'df' is not defined
>>> sglknas
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'sglknas' is not defined
>>> lksnldn
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'lksnldn' is not defined
>>> cls

और स्क्रीन स्पष्ट है!

स्पष्ट करने के लिए - ऊपर दिए गए कोड को या तो इस तरह से कंसोल में आयात किया जाना चाहिए

from somefile import cls

या कुछ के साथ सीधे पूर्व लोड:

python -i my_pre_loaded_classes.py

0

यह सबसे अच्छा तरीका है:

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

3
मैं वास्तव में नहीं देखता कि पिछले वर्षों में दिए गए किसी भी उत्तर पर आपका उत्तर कैसे सुधरा है।
डेविड बक

जिन्हें इसकी जरूरत है वे देखेंगे। मुझे सुधार भाई की कोई आवश्यकता नहीं है। धन्यवाद भाई।
फहीमबद_ १४

2
वह उत्तर को बेहतर बनाने के बारे में बात नहीं कर रहा था। उन्होंने कहा कि आपका जवाब उपयोगी नहीं है, क्योंकि किसी और ने पहले ही वही दिया है।
ओमीक्रॉनवेपन

0

पायथन आईडीएल 3.8.1 के लिए आप शेल को पुनः आरंभ कर सकते हैं

CTRL + F6

मेनू पर शेल मेनू पर क्लिक करें। इसके बाद रीस्टार्ट शैल विकल्प पर क्लिक करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.