web-dev-qa-db-ja.com

シェルの画面をクリア

簡単な質問:
シェルで画面をどのようにクリアしますか?私は次のような方法を見てきました:

import os
os.system('cls')

これはwindows cmdを開き、画面をクリアして閉じますが、シェルウィンドウをクリアしたいです
(追記:これが役立つかわかりませんが、Pythonのバージョン3.3.2を使用しています)
ありがとうございました :)

62
josh

OS Xの場合、サブプロセスモジュールを使用して、シェルから「cls」を呼び出すことができます。

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

ウィンドウの上部に「0」が表示されないようにするには、2行目を次の行に置き換えます。

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

Linuxの場合、clsコマンドをclearに置き換える必要があります

tmp = sp.call('clear',Shell=True)
40
GalHai

ショートカットはどうですか CTRL+L

すべてのシェルで機能します。 Python、Bash、MySQL、MATLABなど.

64
Shafiq
import os

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

探しているのはcursesモジュールにあります。

つまり.

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

重要な注意点

覚えておくべき重要なことは、終了する前に、ターミナルを通常モードにリセットする必要があることです。これは次の行で実行できます。

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

そうしないと、あらゆる種類の奇妙な動作が発生します。これが常に行われるようにするために、atexitモジュールの使用をお勧めします。

import atexit

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

おそらくうまくいくでしょう。

11
Steve Barnes

包括的なCLIライブラリであることに加えて、clickはプラットフォームに依存しない clear() 関数も提供します。

import click
click.clear()
7
Martin Valgur

windows 1およびpyhton3.5を使用して、私は多くのコードをテストしましたが、これ以上の助けにはなりませんでした:

最初に単純な関数を定義すると、この関数は50個の改行を出力します(50という数字は、画面に表示できる行数に依存するため、この数を変更できます)

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

必要に応じて何度でも呼び出します

cls()
4
sami.almasagedi

Windowsで使用できるオプションをいくつか紹介します

最初のオプション:

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

>>> cls()

2番目のオプション:

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

>>> cls()

Python REPLウィンドウにいる場合の3番目のオプション:

Ctrl+L
4
Vlad Bezden

この関数はどのOS(Unix、Linux、macOS、およびWindows)でも動作します
Python 2およびPython

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

Windowsでは、コマンドはclsです。unixライクなシステムでは、コマンドはclearです。
platform.system()はプラットフォーム名を返します。例macOSの場合は'Darwin'
subprocess.call()はシステムコールを実行します。例subprocess.call(['ls','-l'])

4
ePi272314

Linux端末を使用してPythonにアクセスしている場合、cntrl + lが画面をクリアする最適なソリューションです。

3
HMS

pythonにいる間に画面をクリアする簡単な方法は、 Ctrl + L ただし、シェルだけでなく他のプログラムでも機能します。

3
BioinfoNerd

Command+KはOSXで正常に機能して画面をクリアします。

Shift+Command+Kは、スクロールバックバッファーのみをクリアします。

2
Ayer

os.system('cls')は、開いたときに正常に機能します。 cmdスタイルで開きます。

1
Phich

サブプロセスでは、シェルの「cls」を呼び出すことができます。

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

それは私ができる限り簡単です。それがあなたのために働くことを願っています!

1
Seth Connell
import curses
stdscr = curses.initscr()
stdscr.clear()
1
sl1ng5h0t
  1. ウィンドウまたはLinux OSを使用できます

    import os
    os.system('cls')
    os.system('clear')
    
  2. サブプロセスモジュールを使用できます

    import subprocess as sp
    x=sp.call('cls',Shell=True)
    
1
Rohit Parghi

私は上記のメソッドのいずれかを舞台裏で使用するクラスを使用しています... WindowsおよびLinuxで動作することに気付きました... system( 'clear'の代わりにclear() )またはos.system( 'clear')

pip3 install clear-screen

from clear_screen import clear

そして、シェルをクリアしたい場合:

clear()
0
user10364045