簡単な質問:
シェルで画面をどのようにクリアしますか?私は次のような方法を見てきました:
import os
os.system('cls')
これはwindows cmdを開き、画面をクリアして閉じますが、シェルウィンドウをクリアしたいです
(追記:これが役立つかわかりませんが、Pythonのバージョン3.3.2を使用しています)
ありがとうございました :)
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)
ショートカットはどうですか CTRL+L?
すべてのシェルで機能します。 Python、Bash、MySQL、MATLABなど.
import os
os.system('cls') # For Windows
os.system('clear') # For Linux/OS X
探しているのは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()
おそらくうまくいくでしょう。
包括的なCLIライブラリであることに加えて、click
はプラットフォームに依存しない clear()
関数も提供します。
import click
click.clear()
windows 1およびpyhton3.5を使用して、私は多くのコードをテストしましたが、これ以上の助けにはなりませんでした:
最初に単純な関数を定義すると、この関数は50個の改行を出力します(50という数字は、画面に表示できる行数に依存するため、この数を変更できます)
def cls(): print ("\n" * 50)
必要に応じて何度でも呼び出します
cls()
Windowsで使用できるオプションをいくつか紹介します
最初のオプション:
import os
cls = lambda: os.system('cls')
>>> cls()
2番目のオプション:
cls = lambda: print('\n' * 100)
>>> cls()
Python REPLウィンドウにいる場合の3番目のオプション:
Ctrl+L
この関数はどの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'])
Linux端末を使用してPythonにアクセスしている場合、cntrl + lが画面をクリアする最適なソリューションです。
pythonにいる間に画面をクリアする簡単な方法は、 Ctrl + L ただし、シェルだけでなく他のプログラムでも機能します。
Command+K
はOSXで正常に機能して画面をクリアします。
Shift+Command+K
は、スクロールバックバッファーのみをクリアします。
os.system('cls')
は、開いたときに正常に機能します。 cmdスタイルで開きます。
サブプロセスでは、シェルの「cls」を呼び出すことができます。
import subprocess
cls = subprocess.call('cls',Shell=True)
それは私ができる限り簡単です。それがあなたのために働くことを願っています!
import curses
stdscr = curses.initscr()
stdscr.clear()
ウィンドウまたはLinux OSを使用できます
import os
os.system('cls')
os.system('clear')
サブプロセスモジュールを使用できます
import subprocess as sp
x=sp.call('cls',Shell=True)
私は上記のメソッドのいずれかを舞台裏で使用するクラスを使用しています... WindowsおよびLinuxで動作することに気付きました... system( 'clear'の代わりにclear() )またはos.system( 'clear')
pip3 install clear-screen
from clear_screen import clear
そして、シェルをクリアしたい場合:
clear()