ほとんどのPython開発者のように、私は通常、コマンド、dir()
もの、help() stuff
などをテストするために実行しているPythonインタプリタでコンソールウィンドウを開いたままにします。
他のコンソールと同じように、しばらくすると過去のコマンドや出力の目に見えるバックログが乱雑になり、同じコマンドを何度か再実行すると混乱することがあります。 Pythonインタプリタコンソールをクリアするのかどうか、どうやって解決するのかと思います。
システムコールを実行し、Windowsではcls
を、Linuxではclear
を呼び出すことについて聞いたことがありますが、インタプリタ自体に指示することができるものがあることを望んでいました。
注:私はWindows上で実行しているので、Ctrl+L
は機能しません。
あなたが言ったように、あなたはシステムコールを行うことができます:
Windowsの場合
>>> import os
>>> clear = lambda: os.system('cls')
>>> clear()
Linuxの場合、λは次のようになります。
>>> clear = lambda: os.system('clear')
もう少しクロスプラットフォームなので便利なものがあります
import os
def cls():
os.system('cls' if os.name=='nt' else 'clear')
# now, to clear the screen
cls()
さて、ここで簡単なハックです:
>>> clear = "\n" * 100
>>> print clear
>>> ...do some other stuff...
>>> print clear
あるいは、入力を節約するには、このファイルをPythonの検索パスに入れます。
# wiper.py
class Wipe(object):
def __repr__(self):
return '\n'*1000
wipe = Wipe()
それからあなたはあなたが好きなすべてのインタプリタからこれをすることができます:)
>>> from wiper import wipe
>>> wipe
>>> wipe
>>> wipe
これはもっと古い質問ですが、私は他の答えの中で一番良いと思うことを要約した何かに貢献し、あなたがこれらのコマンドをファイルに入れてあなたのPYTHONSTARTUPを設定することを提案することによって私自身のしわを追加したいと思いましたそれを指す環境変数。現時点ではWindowsを使っているので、この方法では少し偏っていますが、他の方向に傾くこともあり得ます。
Windowsで環境変数を設定する方法を説明した、私が見つけたいくつかの記事があります。
sys.path.appendを使用する場合と%PYTHONPATH%を変更する場合は十分です
Windows XPで環境変数を管理する方法
システム環境変数とユーザー環境変数の設定
Windowsでグローバルシステム環境変数を使用する方法
ところで、スペースがあってもファイルへのパスを引用符で囲まないでください。
とにかく、ここに私はPythonの起動スクリプトを入れる(または既存のものに追加する)コードを取り上げます。
# ==== pythonstartup.py ====
# add something to clear the screen
class cls(object):
def __repr__(self):
import os
os.system('cls' if os.name == 'nt' else 'clear')
return ''
cls = cls()
# ==== end pythonstartup.py ====
ところで、@ Triptychの__repr__
トリックを使ってexit()
をexit
に変更することもできます(そしてその別名quit
も同じ)。
class exit(object):
exit = exit # original object
def __repr__(self):
self.exit() # call original
return ''
quit = exit = exit()
最後に、これはプライマリインタプリタPromptを>>>
からcwd+ >>>
に変更する何か他のものです:
class Prompt:
def __str__(self):
import os
return '%s >>> ' % os.getcwd()
import sys
sys.ps1 = Prompt()
del sys
del Prompt
あなたはWindows上でそれを行う方法がいくつかあります:
Press CTRL + L
import os
cls = lambda: os.system('cls')
cls()
cls = lambda: print('\n'*100)
cls()
間違いなく最も早く簡単な方法は Ctrl+L。
これは端末のOS Xでも同じです。
これを行う私の方法は、次のように関数を書くことです。
import os
import subprocess
def clear():
if os.name in ('nt','dos'):
subprocess.call("cls")
Elif os.name in ('linux','osx','posix'):
subprocess.call("clear")
else:
print("\n") * 120
その後、clear()
を呼び出して画面を消去します。これはwindows、osx、linux、bsd ...全てのOSで動作します。
ワイパーはかっこいい、良いところは、周りに '()'を入力する必要がないことです。ここにそれへのわずかな変化があります
# wiper.py
import os
class Cls(object):
def __repr__(self):
os.system('cls')
return ''
使い方はとても簡単です。
>>> cls = Cls()
>>> cls # this will clear console.
これがクロスプラットフォーム(Windows/Linux/Mac /おそらくifチェックで追加できるもの)バージョンのスニペットです。私はこの質問で見つけた情報を組み合わせました:
import os
clear = lambda: os.system('cls' if os.name=='nt' else 'clear')
clear()
同じ考えだがシンタックスシュガーのスプーンを使って:
import subprocess
clear = lambda: subprocess.call('cls||clear', Shell=True)
clear()
これが 他のすべての答えをマージする決定的な解決策 です。特徴:
を好きなように使うことができます:
>>> clear()
>>> -clear
>>> clear # <- but this will only work on a Shell
モジュールとしてimportit:
>>> from clear import clear
>>> -clear
スクリプトとしてcallとすることができます。
$ python clear.py
本当にマルチプラットフォームです;システムを認識できない場合
(ce
、nt
、dos
、またはposix
)は、空白行の印刷に戻ります。
ここで[full]ファイルをダウンロードできます。 https://Gist.github.com/3130325
または、あなただけのコードを探しているなら:
class clear:
def __call__(self):
import os
if os.name==('ce','nt','dos'): os.system('cls')
Elif os.name=='posix': os.system('clear')
else: print('\n'*120)
def __neg__(self): self()
def __repr__(self):
self();return ''
clear=clear()
私は iTerm とMac OS用のネイティブ端末アプリを使います。
⌘+ kを押すだけです
アイドル状態にします。それは多くの便利な機能を持っています。 Ctrl+F6たとえば、コンソールをリセットします。コンソールを閉じて開くことはそれをクリアするのに良い方法です。
pythonコンソールタイプ内のmacユーザーの場合
import os
os.system('clear')
窓用
os.system('cls')
これが最も簡単な方法で、追加のライブラリは必要ありません。画面をクリアして>>>
を左上隅に戻します。
print("\033[H\033[J")
Windowsの "Shell"がこれをサポートしているかどうかはわかりませんが、Linux上では。
print "\033[2J"
https://en.wikipedia.org/wiki/ANSI_escape_code#CSI_codes
私の意見では、cls
をos
と一緒に呼び出すことは一般的に悪い考えです。システム上でclsコマンドまたはclearコマンドを変更して、スクリプトをadminまたはrootとして実行したとします。
私はWindows XP、SP3でMINGW/BASHを使っています。
(これを.pythonstartupに貼り付けてください)
#私のctrl-lはすでにうまくいっていますが、これは他の人を助けるかもしれません
#ウィンドウの一番下にプロンプトを残します...
readlineのインポート
readline.parse_and_bind( '\ C-l:clear-screen')
私は.inputrcでも持っているので、これはBASHで動作しますが、いくつかの
#Pythonに行ったときにドロップされる理由
readline.parse_and_bind( '\ C-y:kill-whole-line')
私はもう 'exit()'と入力するのを我慢できず、martineauの/ Triptychのトリックに満足していました。
私はわずかにそれを博士しました(.pythonstartupでそれを立ち往生)
class exxxit():
"""Shortcut for exit() function, use 'x' now"""
quit_now = exit # original object
def __repr__(self):
self.quit_now() # call original
x = exxxit()
Py2.7.1>help(x)
Help on instance of exxxit in module __main__:
class exxxit
| Shortcut for exit() function, use 'x' now
|
| Methods defined here:
|
| __repr__(self)
|
| ----------------------------------------------------------------------
| Data and other attributes defined here:
|
| quit_now = Use exit() or Ctrl-Z plus Return to exit
LinuxのOSコマンドclear
およびWindowsのcls
は、印刷できる「魔法の文字列」を出力します。文字列を取得するには、popenを使用してコマンドを実行し、後で使用するためにそれを変数に保存します。
from os import popen
with popen('clear') as f:
clear = f.read()
print clear
私のマシンでは、文字列は'\x1b[H\x1b[2J'
です。
これを行うには、2つの良い方法があります。
1。
import os
# Clear Windows command Prompt.
if (os.name in ('ce', 'nt', 'dos')):
os.system('cls')
# Clear the Linux terminal.
Elif ('posix' in os.name):
os.system('clear')
2。
import os
def clear():
if os.name == 'posix':
os.system('clear')
Elif os.name in ('ce', 'nt', 'dos'):
os.system('cls')
clear()
私はその部分に遅れるかもしれませんが、ここにそれをするための非常に簡単な方法があります
タイプ:
def cls():
os.system("cls")
画面をクリアしたいのは、コードを入力するだけです。
cls()
最善の方法(クレジット: https://www.youtube.com/watch?annotation_id=annotation_3770292585&feature=iv&src_vid=bguKhMnvmb8&v=LtGEp9c6Z-U )
これは明らかにどうですか?
- os.system('cls')
それはできるだけ短くすることです!
私はSpyder(Python 2.7)を使用しています、そして私はどちらかを使用するインタプリタコンソールをきれいにするために
%クリア
これはコマンドラインをトップに移動させるので、以前の古いコマンドは表示されません。
またはコンソール環境で[オプション]をクリックして[カーネルの再起動]を選択するとすべてが削除されます。
最も簡単な方法は、ウィンドウを閉じてモジュール/スクリプトを実行してシェルを再度開くことです。
これを使ってください。
print '\n'*1000
私はpythonに慣れていません(本当に本当に新しいです)そして私が読んでいる本の1冊で、目に見えるバックログと過去のコマンドとプリントのコンソールをクリアするためのこの小さな関数の作り方を彼らが教える言語について知ります。
以下のように、シェルを開きます/新しい文書を作成します/関数を作成します。
def clear():
print('\n' * 50)
あなたのpythonディレクトリのlibフォルダの中にそれを保存してください(私のものはC:\ Python33\Libです)。
clear()
それでおしまい。シモンズ:あなたはとにかくあなたが望む機能に名前を付けることができます。私は人々が「ワイパー」「ワイプ」とそのバリエーションを使っているのを見ました。
コードを使用して実行する必要がない場合は、CTRL + Lを押してください
もしそれがMac上にあれば、単純なcmd + k
がうまくいくはずです。
マジックストリングは上で言及されています - 私はそれらがterminfoデータベースから来ると信じます:
http://www.google.com/?q=x#q=terminfo
http://www.google.com/?q=x#q=tput+command+in+unix
$ tput clear | od -t x1z 0000000 1b 5b 48 1b 5b 32 4a>。[H. [2J <0000007
最も簡単な方法 `>>> import os
clear = lambda:os.system( 'clear')clear() `
これはクロスプラットフォームであるべきです、そして subprocess.call
docs のようにos.system
の代わりに好ましいos.system
を使うべきです。 Python> = 2.4で動作するはずです。
import subprocess
import os
if os.name == 'nt':
def clearscreen():
subprocess.call("cls", Shell=True)
return
else:
def clearscreen():
subprocess.call("clear", Shell=True)
return
編集:私はちょうど "窓"を読んだ、これはLinuxユーザーのためのもので、すみません。
Bashで:
#!/bin/bash
while [ "0" == "0" ]; do
clear
$@
while [ "$input" == "" ]; do
read -p "Do you want to quit? (y/n): " -n 1 -e input
if [ "$input" == "y" ]; then
exit 1
Elif [ "$input" == "n" ]; then
echo "Ok, keep working ;)"
fi
done
input=""
done
それを "whatyouwant.sh"として保存し、chmod + xして実行します。
./whatyouwant.sh python
またはpython以外のもの(アイドル状態など)。これはあなたが実際に終了したいのかどうかを尋ねるでしょう、そうでなければpython(またはあなたがパラメータとして与えたコマンド)を再実行しないでください。
これですべて、画面、そしてすべての変数/オブジェクト/あなたがPythonで作成/インポートしたものがすべてクリアされます。
Pythonでは、終了したいときに単にexit()と入力してください。
ただ入る
import os
os.system('cls') # Windows
os.system('clear') # Linux, Unix, Mac OS X
>>> ' '*80*25
UPDATE:80x25がコンソールウィンドウのサイズになることはほとんどないため、実際のコンソールサイズを取得するには、 pagerの関数を使用します モジュール。 Pythonはコアディストリビューションと似たものは何も提供していません。
>>> from pager import getheight
>>> '\n' * getheight()
OK、それでこれはそれほど技術的な答えではありませんが、私はメモ帳++用のPythonプラグインを使用しています。これが誰かに役立つことを願っています!