2017-09-02 4 views
1

長時間のlurker、初めての質問者。Python 3でプラットフォーム間でターミナルをプログラムでクリアする方法はありますか?

アプリケーションがどのプラットフォームで使用されているかにかかわらず、Python 3で端末を自動的に消去する方法はありますか?

私はANSIエスケープコードを利用する(this answerから)以下に遭遇しました:

import sys 
sys.stderr.write("\x1b[2J\x1b[H") 

しかし、それはクロスプラットフォームを動作させるために、それが唯一のpython 2.7上で動作するように見えるコロラマモジュールが必要です。

私は戦艦のゲームを構築することでPythonを学んでいますが、それぞれの推測の後、私は画面をクリアしてボードを再印刷したいと考えています。

ご協力いただきましてありがとうございます。私はこの方法を知っている

乾杯

+0

この場合、100行もの改行を出力することができ、より簡単で100%クロスプラットフォームになります。 –

+0

そうですね、このアプローチも見てきました。端末の上端でカーソルが置き換えられないと、ちょっと整頓されていないようです。私はそれがトレードオフになるだろうと思う。 –

答えて

0

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

私はそれが他のプラットフォームで動作するかどうかわからないんだけど、それがWindowsのPython 3.xの中で働いている

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

ことLinuxやOS Xでも動作するかもしれませんが、テストすることはできません。

+0

私はこれが既にここで扱っていると思います:https://stackoverflow.com/questions/2084508/clear-terminal-in-python簡単な答えは、出力以外にこれを行うための完全なクロスプラットフォームの方法がないということです改行文字のヒープ。しかし、最も一般的なプラットフォームで動作する手法があります。 –

+0

それは私の元のポストでリンクされた答えです。答えは、colamaモジュール(ANSIエスケープをウィンドウ用に変換したもの)を使用してクロスプラットフォームにすることができますが、Python 2.7でのみ動作します。これはおそらく今のところ最良の選択肢です。 –

+0

OS Xでこれを試してみると、 'TERM環境変数が設定されていません'というエラーが表示されます。アイデア? –

関連する問題