web-dev-qa-db-ja.com

通訳コンソールをクリアするには?

ほとんどのPython開発者のように、私は通常、コマンド、dir()もの、help() stuffなどをテストするために実行しているPythonインタプリタでコンソールウィンドウを開いたままにします。

他のコンソールと同じように、しばらくすると過去のコマンドや出力の目に見えるバックログが乱雑になり、同じコマンドを何度か再実行すると混乱することがあります。 Pythonインタプリタコンソールをクリアするのかどうか、どうやって解決するのかと思います。

システムコールを実行し、Windowsではclsを、Linuxではclearを呼び出すことについて聞いたことがありますが、インタプリタ自体に指示することができるものがあることを望んでいました。

注:私はWindows上で実行しているので、Ctrl+Lは機能しません。

277
Soviut

あなたが言ったように、あなたはシステムコールを行うことができます:

Windowsの場合

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

Linuxの場合、λは次のようになります。

>>> clear = lambda: os.system('clear')
372
Ryan Duffield

もう少しクロスプラットフォームなので便利なものがあります

import os

def cls():
    os.system('cls' if os.name=='nt' else 'clear')

# now, to clear the screen
cls()
172
popcnt

さて、ここで簡単なハックです:

>>> 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
80
Triptych

これはもっと古い質問ですが、私は他の答えの中で一番良いと思うことを要約した何かに貢献し、あなたがこれらのコマンドをファイルに入れてあなたの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
27
martineau

あなたはWindows上でそれを行う方法がいくつかあります:

1.キーボードショートカットを使う:

Press CTRL + L

2.システム呼び出し方法を使用します。

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

3.改行を100回使用します。

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

間違いなく最も早く簡単な方法は Ctrl+L

これは端末のOS Xでも同じです。

20
Alex K

これを行う私の方法は、次のように関数を書くことです。

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で動作します。

14
MartinUbuntu

ワイパーはかっこいい、良いところは、周りに '()'を入力する必要がないことです。ここにそれへのわずかな変化があります

# wiper.py
import os
class Cls(object):
    def __repr__(self):
        os.system('cls')
        return ''

使い方はとても簡単です。

>>> cls = Cls()
>>> cls # this will clear console.
8
Amol

これがクロスプラットフォーム(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()
8
Pitto

これが 他のすべての答えをマージする決定的な解決策 です。特徴:

  1. あなたのシェルやスクリプトにcopy-pasteコードを書くことができます。
  2. を好きなように使うことができます:

    >>> clear()
    >>> -clear
    >>> clear  # <- but this will only work on a Shell
    
  3. モジュールとしてimportit:

    >>> from clear import clear
    >>> -clear
    
  4. スクリプトとしてcallとすることができます。

    $ python clear.py
    
  5. 本当にマルチプラットフォームです;システムを認識できない場合
    centdos、または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()
5
Alba Mendez

私は iTerm とMac OS用のネイティブ端末アプリを使います。

⌘+ kを押すだけです

5

アイドル状態にします。それは多くの便利な機能を持っています。 Ctrl+F6たとえば、コンソールをリセットします。コンソールを閉じて開くことはそれをクリアするのに良い方法です。

4
S.Lott

pythonコンソールタイプ内のmacユーザーの場合

import os
os.system('clear')

窓用

os.system('cls')
4
yubaraj poudel

これが最も簡単な方法で、追加のライブラリは必要ありません。画面をクリアして>>>を左上隅に戻します。

print("\033[H\033[J")
3
Denis Rasulev

Windowsの "Shell"がこれをサポートしているかどうかはわかりませんが、Linux上では。

print "\033[2J"

https://en.wikipedia.org/wiki/ANSI_escape_code#CSI_codes

私の意見では、clsosと一緒に呼び出すことは一般的に悪い考えです。システム上でclsコマンドまたはclearコマンドを変更して、スクリプトをadminまたはrootとして実行したとします。

3

私は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
2
AAAfarmclub

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
larsr

これを行うには、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()
2
userend

私はその部分に遅れるかもしれませんが、ここにそれをするための非常に簡単な方法があります

タイプ:

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

画面をクリアしたいのは、コードを入力するだけです。

cls()

最善の方法(クレジット: https://www.youtube.com/watch?annotation_id=annotation_3770292585&feature=iv&src_vid=bguKhMnvmb8&v=LtGEp9c6Z-U

1
stallion093

これは明らかにどうですか?

- os.system('cls')

それはできるだけ短くすることです!

1
Dennis Kean

私はSpyder(Python 2.7)を使用しています、そして私はどちらかを使用するインタプリタコンソールをきれいにするために

%クリア

これはコマンドラインをトップに移動させるので、以前の古いコマンドは表示されません。

またはコンソール環境で[オプション]をクリックして[カーネルの再起動]を選択するとすべてが削除されます。

1
Youness

最も簡単な方法は、ウィンドウを閉じてモジュール/スクリプトを実行してシェルを再度開くことです。

1
Seymour

これを使ってください。

print '\n'*1000

1
user1474157

私はpythonに慣れていません(本当に本当に新しいです)そして私が読んでいる本の1冊で、目に見えるバックログと過去のコマンドとプリントのコンソールをクリアするためのこの小さな関数の作り方を彼らが教える言語について知ります。

以下のように、シェルを開きます/新しい文書を作成します/関数を作成します。

def clear():
    print('\n' * 50)

あなたのpythonディレクトリのlibフォルダの中にそれを保存してください(私のものはC:\ Python33\Libです)。

clear()

それでおしまい。シモンズ:あなたはとにかくあなたが望む機能に名前を付けることができます。私は人々が「ワイパー」「ワイプ」とそのバリエーションを使っているのを見ました。

1
Adriana

コードを使用して実行する必要がない場合は、CTRL + Lを押してください

1

もしそれがMac上にあれば、単純なcmd + kがうまくいくはずです。

1
CoderChai

マジックストリングは上で言及されています - 私はそれらが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

0
tput-guest

最も簡単な方法 `>>> import os

clear = lambda:os.system( 'clear')clear() `

0
Bhaskar Mishra

これはクロスプラットフォームであるべきです、そして 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
0
Acorn

編集:私はちょうど "窓"を読んだ、これは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()と入力してください。

0
Andrea Ambu

ただ入る

import os
os.system('cls') # Windows
os.system('clear') # Linux, Unix, Mac OS X
0
Anonymous
>>> ' '*80*25

UPDATE:80x25がコンソールウィンドウのサイズになることはほとんどないため、実際のコンソールサイズを取得するには、 pagerの関数を使用します モジュール。 Pythonはコアディストリビューションと似たものは何も提供していません。

>>> from pager import getheight
>>> '\n' * getheight()
0

OK、それでこれはそれほど技術的な答えではありませんが、私はメモ帳++用のPythonプラグインを使用しています。これが誰かに役立つことを願っています!

0
guest12345