Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで画面(コンソール)をクリアする方法|os・subprocessモジュールを使った実装例

Pythonの対話型シェルやターミナルで作業していると、出力が次々と表示されて画面がごちゃごちゃになり、結果が読みにくくなることがよくあります。そんなとき、多くの人は Ctrl + L を使って画面をクリアしているでしょう。

しかし、Pythonスクリプトの実行中に画面をクリアしたい場合は少し工夫が必要です。Pythonには画面をクリアするための組み込みキーワードや関数・メソッドが用意されていないため、自分でコードを書く必要があります。

画面クリアを実装する手順

スクリプト内で画面をクリアするには、以下の手順に従います。

  • ステップ1: まず from os import system を記述して、必要なモジュールをインポートします。
  • ステップ2: 次に、画面クリア用の関数を定義します。
  • ステップ3: 関数内でシステムコールを実行します。Linuxでは 'clear'、Windowsでは 'cls' を引数として渡します。
  • ステップ4: 戻り値をアンダースコア(_)などの変数に格納します。アンダースコアを使うのは、Pythonシェルが直前の出力を常に _ に保存する慣習があるためです。
  • ステップ5: 最後に、定義した関数を呼び出します。

サンプルコード:osモジュールを使う方法

from os import system, name
from time import sleep

# 画面クリア用の関数を定義
def screen_clear():
   if name == 'nt':
      _ = system('cls')   # Windowsの場合
   # MacおよびLinuxの場合(os.name は 'posix')
   else:
      _ = system('clear')

# テキストを出力
print('Hi !! I am Python\n'*10)
sleep(2)

# 上で定義した関数を呼び出し
screen_clear()

os.name の値によってOSを判別しているのがポイントです。Windowsでは 'nt'、MacやLinuxでは 'posix' が返されるため、これを条件分岐に使うことでクロスプラットフォーム対応になります。

実行結果

Hi !! I am Python
Hi !! I am Python
Hi !! I am Python
Hi !! I am Python
Hi !! I am Python
Hi !! I am Python
Hi !! I am Python
Hi !! I am Python
Hi !! I am Python
Hi !! I am Python

テキストが出力された2秒後に関数が呼ばれ、画面がきれいにクリアされます。

subprocessモジュールを使う方法

もうひとつの方法として、標準ライブラリの subprocess モジュールを使うこともできます。

サンプルコード

import os
from subprocess import call
from time import sleep

def screen_clear():
   _ = call('clear' if os.name =='posix' else 'cls')

print('Hi !! I am Python\n'*10)
# 出力後に2秒間待機
sleep(2)
# 定義した関数を呼び出し
screen_clear()

実行結果

Hi !! I am Python
Hi !! I am Python
Hi !! I am Python
Hi !! I am Python
Hi !! I am Python
Hi !! I am Python
Hi !! I am Python
Hi !! I am Python
Hi !! I am Python
Hi !! I am Python

まとめ

Pythonには画面クリア専用の組み込み関数がないため、os.system() または subprocess.call() を使ってOSのコマンド(Windowsなら cls、Mac/Linuxなら clear)を呼び出すのが一般的な手法です。os.name によるOS判定を組み合わせれば、どの環境でも動作する汎用的な関数を作成できます。

  1. PythonでMySQLのテーブルを丸ごとコピーする方法をわかりやすく解説

    Pythonを使えば、MySQLに存在する既存テーブルのコピーを簡単に作成できます。コピーには、カラム(列)やその定義、テーブル内のすべての行データが含まれます。基本構文CREATE TABLE table_name SELECT * FROM existing_tabletable_name:新しく作成するテーブルの名前existing_table:コピー元となる既存テーブルの名前PythonでMySQLのテーブルをコピーする手順MySQLコネクタ(mysql.connector)をインポートするconnect() メソッドでデータベースへの接続を確立するcursor() メソッドでカーソル

  2. Tkinterで簡単な画面(ウィンドウ)を作成する方法【初心者向け】

    Pythonの標準GUIライブラリ「Tkinter」を使えば、わずか数行のコードで簡単な画面(ウィンドウ)を作成できます。追加のインストールは不要で、Pythonさえあればすぐに試せるのが魅力です。この記事では、Tkinterによる基本的なウィンドウの作り方を手順付きで解説します。 作成手順(アルゴリズム) シンプルな画面を作る流れは、以下の3ステップです。 ステップ1:tkinterモジュールをインポートする ステップ2:Tkクラスのオブジェクト(ウィンドウ)を作成する ステップ3:イベントループを開始して画面を表示する サンプルコード import tkinter as tk # ウィン