শেলের মধ্যে পর্দা সাফ করুন


90

মাত্র একটি তাত্ক্ষণিক প্রশ্ন:
আপনি কীভাবে শেলের পর্দা সাফ করবেন? আমি এর মতো উপায় দেখেছি:

import os
os.system('cls')

এটি কেবল উইন্ডোজ সেন্টিমিডিটি খুলবে, স্ক্রিনটি সাফ করে এবং বন্ধ হয়ে যায় তবে আমি শেল উইন্ডোটি সাফ হওয়া চাই
(পিএস: আমি জানি না এটি সাহায্য করে তবে আমি পাইথনের ৩.৩.২ সংস্করণ ব্যবহার করছি)
আপনাকে ধন্যবাদ :)


উত্তর:


57

ম্যাকোস / ওএস এক্সের জন্য, আপনি সাবপ্রসেস মডিউলটি ব্যবহার করতে পারেন এবং শেল থেকে 'ক্লস' কল করতে পারেন:

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

উইন্ডোটির উপরে প্রদর্শিত হতে '0' রোধ করতে, দ্বিতীয় রেখাকে এর সাথে প্রতিস্থাপন করুন:

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

লিনাক্সের জন্য আপনাকে অবশ্যই clsকমান্ডটি প্রতিস্থাপন করতে হবেclear

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

4
আমি ম্যাক ওএস এক্স ব্যবহার করছি এবং টার্মিনাল উইন্ডোর উপরের অংশে import subprocess as sp sp.call('clear',shell=True)একটি বাদে আমি এটি ব্যবহার করে যা কাজ করে 0
ড্যানিয়েল দ্রপিক

শেল থেকে 'ক্লস' কমান্ড কলটির রিটার্ন মান 0 আমি উত্তরটি সম্পাদন করে এটিকে থেকে মুক্তি পেতে কেবল একটি ভেরিয়েবলের মধ্যে সেই মানটি সংরক্ষণ করে।
গালহাই

9
এটি ব্যবহার করে দেখুনctrl+L
সাঁই রাম

এটি কমান্ড লাইনে কাজ করে। পাইথনে এটি কীভাবে করা যায় তা প্রশ্ন ছিল।
এডওয়ার্ড ফালক

সমাধানের জন্য ধন্যবাদ, আমি শেল = সত্য অনুপস্থিত। 0 টি প্রদর্শিত না হওয়া থেকে রোধ করতে আপনি বিবৃতিটির শেষে একটি অর্ধিকোলন যুক্ত করতে পারেন। sp.call('cls', shell=True);
ওয়েলন ওয়াকার 14

84

কী শর্টকাট CTRL+ + L?

এটি সমস্ত শেলের জন্য যেমন পাইথন, ব্যাশ, মাইএসকিউএল, ম্যাটল্যাব ইত্যাদির জন্য কাজ করে


6
দুর্ভাগ্যক্রমে উইন্ডোজ 10
এআইডি

অটোমেশনের জন্য সাবপ্রসেস ব্যবহার করার সময় এই পদ্ধতির কাজ হয় না।
মাউন্টেন

64
import os

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

এছাড়াও, os.system('clear')ম্যাক ওএস এক্স টার্মিনালগুলির জন্য (ডিফল্ট শেল দিয়ে কাজ করার জন্য নিশ্চিত হয়েছে bash, এবং এর জন্যও csh)
jvriesem

এটি চালানোর জন্য আপনি কোনও ফাংশনও সংজ্ঞায়িত করতে পারেন, যেমন: ডিএফ ক্লস (): ওএস.সিস্টেম ('ক্লস') (দুবার এন্টার চাপুন)। তারপরে আপনি স্ক্রিনটি সাফ করতে কেবল ক্লাস () টাইপ করতে পারেন।

শেলটি কীভাবে এটি করা উচিত তা নিয়ে প্রশ্ন ছিল।
কাইল ডেলানিকে 20'16

4
@ কাইলডেলানিকে অকার্যকর অবস্থায় এটি শেলটিতে কাজ করে। এছাড়াও অনেক লোক এটি দরকারী খুঁজে পেয়েছিল কারণ এটিই তারা খুঁজছিলেন।
গ্যাসপা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()

সম্ভবত সুন্দরভাবে করবে।


আপনি আরো নির্দিষ্ট হতে পারে?
জোশ

4
আমি আমার টার্মিনালের জন্য ম্যাক ওএস এক্স 10.7.5 এবং আইটার্ম 2 চালাচ্ছি। পাইথন 2.7 ব্যবহার করে, স্ক্রিনটি stdscr = curses.initscr()সাফ করার কাজ করে এবং stdscr.clear()কিছুই করে না। পাইথন ৩.৪ ব্যবহার করে স্ক্রিনটি stdscr = curses.initscr()সাফ করে, তবে টার্মিনালের নিউলাইনগুলি প্রক্রিয়া করার ক্ষমতা কেড়ে নেয়। আমি বারবার এন্টার টিপলে, এটি নিম্নলিখিতটি দেয়: >>> >>> >>> >>> এবং আরও কিছু। আমি এখনও কমান্ড টাইপ করতে পারি, তবে সেগুলি প্রদর্শিত হয় না। এছাড়াও, আমি exit()পাইথন থাকাকালীনও এই আচরণটি বজায় থাকে । ব্যবহার এভয়েড!
jvriesem

@ jvriesem এই শাপগুলি মডিউলটি দীর্ঘকাল ধরে ব্যবহৃত হয়েছে এবং প্রচুর লোকেরা এটি ব্যবহার করেছেন - আমি আপনাকে পরামর্শ দিচ্ছি যে আপনি যদি দেখেন যে আপনি এই আচরণটি একটি সংক্ষিপ্ত, (২০ টি লাইন বা তাই) প্রতিলিপি করতে পারেন, উদাহরণস্বরূপ এবং উভয় পোস্টে এটি স্ট্যাক ওভারফ্লো প্রশ্ন হিসাবে বা বিকাশকারী মেলিং তালিকায়।
স্টিভ বার্নেস

ভাল ধারণা - এটি আমার "অ্যাভিড ব্যবহার!" এর চেয়ে ভাল প্রতিক্রিয়া! বিবৃতি। এই উত্তরের প্রথম দুটি লাইন দুটি লাইন ছিল যা আমার জন্য সমস্যার প্রতিস্থাপন করে। আপনি কি জানেন যে cursesমডিউলের সামঞ্জস্যতা সংক্রান্ত কোনও সমস্যা রয়েছে (উইন্ডোজ বনাম ম্যাক বনাম লিনাক্স)? আমি নিশ্চিত করতে পারি যে এই সমস্যাটি কমপক্ষে দুটি পৃথক ম্যাক টার্মিনালগুলিতে ঘটে। আচরণটি বেসে স্থির থাকে তবে সিএসএইচ নয়। হুম .... আপনার কি মনে হয় আমার শাপ বিকাশকারী, শেল বিকাশকারী, বা এসও সম্প্রদায়কে জিজ্ঞাসা করা উচিত? আবার ধন্যবাদ!
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'ম্যাকোসের জন্য
subprocess.call()একটি সিস্টেম কল সম্পাদন করে। প্রাক্তনsubprocess.call(['ls','-l'])


6

একটি সহজ উপায় একটি পর্দা পরিষ্কার করার সময় পাইথন ব্যবহার করার জন্য নয় Ctrl+ + Lযদিও এটা শেল সেইসাথে অন্যান্য প্রোগ্রামের জন্য কাজ করে।


4

যদি আপনি পাইথন অ্যাক্সেসের জন্য লিনাক্স টার্মিনাল ব্যবহার করছেন, তবে cntrl + l হল পর্দা সাফ করার সর্বোত্তম সমাধান


4

আমি এমন একটি ক্লাস ব্যবহার করছি যা কেবল পর্দার পিছনে উপরের একটি পদ্ধতি ব্যবহার করে ... আমি লক্ষ্য করেছি এটি উইন্ডোজ এবং লিনাক্সে কাজ করে ... আমি এটি ব্যবহার করতে পছন্দ করি কারণ সিস্টেমের পরিবর্তে ক্লিয়ার () পরিষ্কার করা সহজ because ) বা ওএস.সিস্টেম ('পরিষ্কার')

pip3 install clear-screen

from clear_screen import clear

এবং তারপরে আপনি যখন শেলটি সাফ করতে চান:

clear()

3

উইন্ডোজ 10 এবং পাইটন 3.5 ব্যবহার করে আমি অনেকগুলি কোড পরীক্ষা করেছি এবং এর চেয়ে বেশি কিছুই আমাকে সাহায্য করে নি:

প্রথমে একটি সাধারণ ফাংশন সংজ্ঞায়িত করুন, এই মজাদারটি 50 টি নতুন লাইনগুলি মুদ্রণ করবে; (50 নম্বরটি আপনি আপনার স্ক্রিনে কতগুলি লাইন দেখতে পারবেন তার উপর নির্ভর করবে, যাতে আপনি এই নম্বরটি পরিবর্তন করতে পারেন)

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

তারপরে আপনি এটি চান বা প্রয়োজন হিসাবে যতবার কল করুন

cls()

প্রস্তুত কমান্ড ধারণাগুলি কেউই আমার পক্ষে কাজ করে না। এটি তৈরি করে, আমার নিজের কাজটি অবশ্যই করেছে।
DashingQuark

2

Command+K স্ক্রিন সাফ করতে ওএসএক্সে সূক্ষ্মভাবে কাজ করে।

Shift+Command+K শুধুমাত্র স্ক্রোলব্যাক বাফার সাফ করতে।



1

সাবপ্রসেস আপনাকে শেলের জন্য "ক্লস" কল করতে দেয়।

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')আমি তাদের খুললে ঠিকঠাক কাজ করে। এটি সেন্টিমিডি স্টাইলে খোলে।



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করুন ( 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()

4
পূর্ববর্তী বছরগুলিতে ইতিমধ্যে প্রদত্ত যে কোনও উত্তরের উপর আপনার উত্তর কীভাবে উন্নত হয় তা আমি সত্যিই দেখছি না।
ডেভিড বাক

যাদের এটি দরকার তারা দেখবেন। আমার উন্নতির দরকার নেই ব্রো। ধন্যবাদ ভাই.
ফাহিমবিড_14

4
তিনি আপনার উত্তরটি উন্নত করার বিষয়ে কথা বলছিলেন না। তিনি বলেছিলেন যে আপনার উত্তরটি কার্যকর নয়, কারণ ইতিমধ্যে অন্য কেউ একই উত্তর দিয়েছে।
ওমিক্রনওয়েপন

0

পাইথন আইডিলি 3.8.1 এর জন্য আপনি শেলটি পুনরায় চালু করতে পারেন

সিটিআরএল + এফ 6

মেনুতে শেল মেনুতে ক্লিক করুন। তারপরে পুনঃসূচনা শেল অপশনে ক্লিক করুন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.