PythonのIDLEウィンドウをクリアする方法はありますか?


154

Pythonコンソールについても同様のトピックがあることは知っていますが、それらが同じかどうかはわかりません。私はsystem( "clear")を試してみましたが、ここでは機能しませんでした。

PythonのIDLEウィンドウをクリアするにはどうすればよいですか?


10
それは複製ではなく、OPはコンソールではなくIDLEシェルをクリアする方法について尋ねています
Moha全能のラクダ

1
これが機能しない理由は、Pythonが新しいシェルセッションを開始し、clearそこでコマンドを実行するためです。また、でcd機能しない理由についても説明しsystem.osます。
jkd 2015年

14
押しながらctrl + j最善の方法しばらくしてからEnterキーを押して入力し、それは次のようになります
ytpillai

1
@ytpillai、ああ、それは私に下部にプロンプ​​トを与えます。解決策は間違いありませんが、それでもある程度の利便性があります。
ジョンレッド

回答:


97

「cls」と「clear」は、ターミナル(つまり、DOSプロンプト、またはターミナルウィンドウ)をクリアするコマンドです。スクリーンショットから、IDLE内のシェルを使用していますが、シェルはそのようなものの影響を受けません。残念ながら、IDLEで画面をクリアする方法はないと思います。あなたができる最善のことは、画面をたくさんの行にスクロールすることです、例えば:

print "\n" * 100

これを関数に入れることもできますが:

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

そして、必要なときにそれを呼び出す cls()


13
これは、画面をクリアしていますが、まだ明確なスクリーンのために、まだ1 ...私はそのが少なく、より非効率的に推測ではなく上に最後の行、で「>>>」プロンプトを取得
インヴィクタス

10
Python 3.4.2-「\ n」と* 100を括弧でprint ("\n" * 100)
囲む必要が

4
これは画面をクリアしません、私はまだ上にスクロールできます!
esoterik 2015

2
ctrl + jも動作します。それを含めて役に立つかもしれません。stackoverflow.com/a/11993793/4871483
ytpillai

1
これはpythonタグであることに注意してください。バージョン固有ではありません。すべてのpython 3.xユーザーの場合print('\n'*100)
Luke

83

os.system('clear')Linux上で動作します。Windowsを実行している場合は、os.system('CLS')代わりに試してください。

最初に次のようにosをインポートする必要があります。

import os

13
os.system( 'CLS')はWindowsで動作します。(Python 2.6)。結果の画面がクリアされ、上部にCLSの戻り値であると想定される「0」のみが表示されます。次の行には>>>プロンプトがあります。
mjv 2009

35
これにより、外部コマンドプロンプトでclsへのos呼び出しが行われ、アイドルと対話しません
bunglestink

15
アイドルはコンソールウィンドウではありません。clearとclsはどちらもコンソール/ターミナルウィンドウで動作します。
ブライアンオークリー2013年

16
質問は、上記の方法は確かに私のコンピュータ上にない作業を行う「IDLEに明確な画面」です
エレクトラ

21
なぜこれが支持されているのですか?これにより、新しいコマンドプロンプトが開いてクリアされて閉じます
ytpillai

39

答えのほとんどは、ここでは問題ではないコマンドをクリアして、DOSプロンプト画面をクリアします。ここでの他の答えは、画面のクリア効果を示すために空白行を印刷することでした。

この質問の最も簡単な答えは

外部モジュールを統合しないと、Python IDLEシェルをクリアすることはできません。空の純粋で新鮮なシェルを本当に取得したい場合は、前のシェルを閉じてもう一度実行してください


3
これは、この質問に対する適切で直接的な実用的な答えです。アイドル状態を閉じ、ファイルを開いたままにし、ファイルを再度実行すると、アイドル状態に新しい画面が表示されます。
Mike_K

@Mike_K、それは役に立つかもしれませんが、決してではありません。現在、画面が分割されています(本<|>アイドル状態)。Idleを再実行すると、新しい画面がデフォルトの位置/寸法になります。だから、それは非常に退屈になります。
sdlins 2018年

38

ctrl+ LUbuntu Linuxの画面をクリアします。


Red Hat / Fedora / CentOSでも
DtechNet

1
Windowsでも、IDLExを使用する場合。乾杯!ようやく簡単な解決策が得られてとても嬉しいです!
ジョンレッド

Ubuntu 18.04では機能しません。それほど悪化し、ここで使用されるCTRL+ J複数回。
sdlins 2018年

Windows上でそれを完全に閉じ@slinstj
Mubarek

今日のハックに追加されました!MacOSの魅力のようにも動作します!
xtornasol512 2018

21

シェルをクリアするための拡張機能は、「機能リクエスト」としてIssue6143にあります。この拡張機能はIdleXに含まれています


1
これはPython Idleのすばらしい拡張です。どうもありがとうございます!
Indrajit 2016年

19
>>> import os

>>>def cls():
...    os.system("clear")
...
>>>cls()

それは完璧です。「0」も印刷されません。


ニース、シンプル、それが言うことを行います。または、頻繁に画面をクリアする必要がある場合は関数を使用すると便利ですが、import os単に入力しos.system("clear")た後。
Dave Everitt 2013年

1
os.system( "clear")が機能しました。これは私にとっては
うまくいき

これを試したところ、コマンドラインから<function cls at 0x024D25D0>が返され、コンソールがクリアされませんでした
ericgrosse

これまでのベストの答え
がhello123

@ericgrosse cls()ではなくcls()と入力する必要があります
Banoona


7

Python 2.4以降でコマンドを実行する方法は、サブプロセスモジュールを使用することです。使用方法と同じですos.system

import subprocess
subprocess.call("clear") # linux/mac
subprocess.call("cls", shell=True) # windows

これをpythonコンソールで実行している場合は、変数に割り当てるos.systemなど、戻り値(またはのいずれかsubprocess.call)を非表示にする必要があります。

cls = subprocess.call("cls", shell=True)

トレースバック(最後の最新の呼び出し):ファイル "<pyshell#1>"、1行目<モジュール> subprocess.call( "cls")ファイル "C:\ Python26 \ lib \ subprocess.py"、行444、 return Popen(* popenargs、** kwargs).wait()ファイル "C:\ Python26 \ lib \ subprocess.py"、行595、init errread、errwrite)ファイル "C:\ Python26 \ lib \ subprocess.py "、行804、_execute_child startupinfo内)WindowsError:[エラー2]システムは指定されたファイルを見つけることができません
devoured elysium

1
うーん..これは、Windowsを使用しないためにテストできないためです。subprocess.call( "cls"、shell = True)を試してください
Rudd Zwolinski


4

ファイル->新しいウィンドウ

新しいウィンドウで**

実行-> Pythonシェル

この方法の問題は、変数など、定義したすべてのものがクリアされることです。

または、コマンドプロンプトを使用する必要があります。

コマンドプロンプトを開く

「cd c:\ python27」と入力します

「python example.py」と入力すると、インタラクティブモードでない場合はIDLEを使用して編集する必要があります。Pythonシェルを使用している場合は、ファイル->新しいウィンドウ。

example.pyは、C:\ python27と同じディレクトリ、またはpythonがインストールされているディレクトリにある必要があることに注意してください。

次に、ここから、キーボードの上矢印キーを押すだけです。example.pyを編集し、CTRL + Sを使用して、コマンドプロンプトに戻り、上矢印キーを押してEnterキーを押します。

コマンドプロンプトが混雑しすぎた場合は、「clr」と入力します。

「clr」コマンドはコマンドプロンプトでのみ機能し、IDLEでは機能しません。


3
ただ言うだけですが、質問は「PYTHONスクリプトの内側からアイドル状態で画面をクリアするにはどうすればよいですか?」
エレクトラ、2014年

新しいファイルを開始し、その中でPythonシェルを実行することが、私が利用できる唯一のオプションであるように見えました。ありがとう!
Sergey Zakharov

4

IDLEコンソールをクリアする直接的な方法はないようです。

私が行う1つの方法は、Pythonスクリプト(.py)の最後のコマンドとしてexit()を使用することです。スクリプトを実行すると、常に新しいコンソールが開き、終了する前にプロンプ​​トが表示されます。

メリット:スクリプトが実行されるたびにコンソールが新しく起動されます。欠点:コンソールは、スクリプトが実行されるたびに新しく起動されます。


2

AutoHotKeyスクリプトを作成できます。

シェルをクリアするためにctrl-rをホットキーに設定するには:

^r::SendInput print '\n' * 50 {Enter}

AutoHotKeyをインストールし、上記をidle_clear.ahkという名前のファイルに入れて実行すると、ホットキーがアクティブになります。


2

これらのソリューションはどれも、Windows 7とIDLE内では機能しませんでした。PowerShellを使用して巻き上げ、その中でPythonを実行し、PowerShellで「cls」を呼び出してウィンドウをクリアします。

短所:PythonがすでにPATH変数にあると想定しています。また、これはPython変数をクリアします(ただし、シェルを再起動します)。

長所:行ったウィンドウのカスタマイズ(色、フォントサイズ)を保持します。


2

外部ライブラリなしでは実現できないようです。

Windowsを使用していて、シェルをクリアするたびにシェルを開いたり閉じたりしたくない場合の代替方法は、Windowsコマンドプロンプトを使用することです。

  • 入力pythonしてEnterキーを押し、WindowsコマンドプロンプトをPythonアイドル状態にします(Pythonがインストールされていることを確認してください)。

  • 入力quit()してEnterキーを押すと、Windowsコマンドプロンプトに戻ります。

  • 入力clsしてEnterキーを押し、コマンドプロンプト/ Windowsシェルをクリアします。


2

Python にはThonny IDEを使用することをお勧めします。そのシェルには「クリアシェル」オプションがあり、別のリストで作成された変数を追跡することもできます。最新のIDEと比較しても、デバッグは非常に優れています。同じ場所でシェルへのアクセスと共にpythonファイルにコードを書くこともできます。

そしてその軽量!


2

MAC OS Xの場合は「command + L」。

Ubuntuの場合は「control + L

インタラクティブセッションの最後の行をクリアします


この機能については知りませんでした。ありがとうございます。コマンドの内容を常に書いてください。
Priyank Pathak

1

mark.ribauが言ったように、アイドル状態のテキストウィジェットをクリアする方法はないようです。EditorWindow.pyモジュールを編集して、EditorWindowクラスに次のようなメソッドとメニュー項目を追加する必要があります。

self.text.tag_remove("sel", "1.0", "end")
self.text.delete("1.0", "end")

そして、おそらく私が知らないいくつかのタグ管理があります。


1

Windowsでそれを行う最良の方法は、コマンドプロンプト 'cmd'を使用してpythonディレクトリにアクセスすることです。コマンドプロンプトは、スタートメニュー> run> cmdにあります。

C:\>cd Python27
C:\Python27>python.exe
Python 2.7.3 (default, Apr 10 2012, 23:24:47) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>>import os
>>>os.system('cls')  #This will clear the screen and return the value 0

2
ただ言っているだけですが、質問は「IDLEで画面をクリアするにはどうすればよいですか?」(強調:IN IDLE
エレクトラ2014年

1

これを使って

for num in range(1,100):
    print("\n")

機能しますが、以前のものを表示したい場合は、スクロール距離が非常に長くなります。
エレクトラ、2014年

:(1,10)の範囲を減らすために試してみてください
Tauseef

@Xenonしかし、アイデアがウィンドウをクリアすることである場合、ユーザーは以前の何かを見ることができないはずです。
サム・

0

スクリーンショットは、IDLEを使用していることを示しています。cls/ clearうまくいきません。


5
それは良い答えではありません。OPは、「PythonのIDLEウィンドウをクリアするのに何が役に立たないのか」を尋ねませんでした。
DeFazer

-1
from subprocess import call as c

def cls():

    c("cls",shell=True)

print([x for x in range(10000)])

cls()

コンソール呼び出し関数clsをクリアしたい場合はいつでも、この関数はcmdプロンプトを使用してPythonスクリプトを実行している場合にのみWindowsで画面をクリアしますが、IDLEで実行している場合はバッファーをクリアしません。


2
ただ言うだけですが、質問は「PYTHONスクリプトの内側からアイドル状態で画面をクリアするにはどうすればよいですか?」
エレクトラ、2014年

-1

私はそれを手に入れました:

import console 
console.clear()

スクリプトで実行したい場合、またはコンソールを使用している場合は、clear()をタップしてEnterキーを押します。iPhoneのPytoで動作します。ただし、コンソールによって異なる場合があります。


consoleIDLEにはモジュールがありません。
AKX

コンソールモジュールはありません。
ムーサ

-2

これはWindowsでは私にとってはうまくいきます:

print chr(12)


IDR

ジョエル、ありがとう。私も働いた。

Windows、Spyder IDEでも私にとっては機能し、希望する結果を達成するための最も単純なコードのようです。{chr(12)はformfeed}
Ian

-4

ターミナルを使用している場合(私はubuntuを使用しています)、キーボードのCTRL+ の組み合わせを使用してl、Pythonスクリプトをクリアします。ターミナルスクリプトもクリアします...


1
ただ言っているだけですが、問題はPYTHON SCRIPTからアイドル状態で画面をクリアすることです。
エレクトラ、2014

OPはIDLEを指定しました。
wbadry 2018年

-5

これを行うために独自の関数を記述する必要はありません。Pythonには組み込みのclear関数があります。

コマンドプロンプトで次のように入力します。

shell.clear()

IPythonWindowsの場合は、

cls()

4
これを実行するには、インポートが機能しなかったため、何らかのインポートが必要ですか?インポートが含まれている場合は、それを応答に含める必要があります。また、質問はプロンプトIN IDLEをクリアすることです。
エレクトラ、2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.