プログラムを一時停止するにはPAUSEキーを押す【Python】

実行中のプログラムを『任意のタイミング』で一時停止して再開する方法です。

プログラムに特別な仕掛けは必要ありません。

キーボードの『Pauseキー(ポーズキー)』を押すだけです。

キーボードの右上のほうにある『Pause/Break』キーのことです。

実行中のPythonを一時停止するには、ウィンドウをアクティブにしてから、キーボードのPauseキーを押します。

とくに表示は出ませんが、タスクマネージャーなどでCPUの使用率などを見ると、止まっていることがわかります。

一時停止したPythonを再開するには、何かキーを押します(矢印キーなど)。

プログラムの一時停止は、『cmd.exeのコマンドプロンプトウィンドウ』と『py.exeのウィンドウ』のどちらでも可能でした。

一時停止するときは、ウィンドウをクリックするなどして、アクティブにしてからポーズキーを押します

これで、プログラムが止まります。

再開するときは、ウィンドウをクリックするなどして、アクティブにしてから何かキーを押します

これで、プログラムが再開します。

一時停止は、シングルプロセス処理でも可能ですし、マルチプロセス処理でも一時停止が可能でした。

マルチプロセス処理でポーズキーを押すと、子プロセスがすべて一時停止します。

何かキーを押すと、子プロセスが一斉に再開します。

Python以外でも、コマンドラインで動いてるようなプログラムであれば、たいていポーズキーで一時停止と再開が可能です。

スポンサーリンク

Pythonプログラムを一時停止するコード例

プログラムの一時停止を実験するためのPythonスクリプトです。

特別な仕掛けはありません。

スリープでゆっくり動く関数を作って、それをシングルプロセス処理で動かしてから、マルチプロセス処理で動かしています。

実行中にウィンドウをアクティブにしてからPauseキーを押すと、スクリプトの実行が止まります。

何かキーを押すと、スクリプトが再開します。

コード

以下のスクリプトを実行すると、0.5秒ごとにプロセスIDを表示します。

実行時間は、約10秒です(シングル5秒、マルチ5秒)。

シングルプロセス処理中にPauseキーを押すと、処理が止まります。

マルチプロセス処理中にPauseキーを押しても、処理が止まります。

"""Pauseキーで一時停止する実験プログラム"""
from multiprocessing import Process
import os
import time


def main():
    """メイン関数"""
    print('シングルプロセス処理')
    mp_proc(0)

    print('マルチプロセス処理')
    ps = []
    for a in (1, 2, 3):
        ps.append(Process(target=mp_proc, args=(a, )))
    
    for p in ps:
        p.start()

    for p in ps:
        p.join()

    #『続行するには何かキーを押してください . . .』と表示させる
    os.system('PAUSE')
    return


def mp_proc(a):
    """sleepでゆっくり実行する関数"""

    # 実行中にキーボードの『Pauseキー(ポーズキー)』を押すと、
    # プログラムの実行が一時停止します。

    # シングルプロセス処理中に『Pauseキー』を押すと、
    # プロセスが一時停止しました。

    # マルチプロセス処理中に『Pauseキー』を押すと、
    # すべての子プロセスが一時停止しました。

    # 一時停止したプログラムを再開するには、
    # 何かキーを押します。たとえば、矢印キーなど。

    # 一時停止と再開のキー入力は、
    # 事前にウィンドウをクリックして、
    # ウィンドウをアクティブにしてから行います。

    # parent process id (親プロセスID)
    ppid = os.getppid()

    # process id (子プロセスID)
    pid = os.getpid()

    for n in range(0, 10):
        # 進捗表示
        print('a: %d n: %d ppid: %d pid: %d' % (a, n, ppid, pid))

        # スリープ 0.5秒
        time.sleep(0.5)
    else:
        print('a: %d END ppid: %d pid: %d' % (a, ppid, pid))
    return


if __name__ == '__main__':
    main()
スポンサーリンク

実行結果

Pythonスクリプトの実行結果です。

途中、キーボードのPauseキーを押して、一時停止と再開を繰り返しました。

一時停止と再開を繰り返しても、特に何か表示されることはありませんでした。

※ プロセスID(ppid, pid)は、実行するたびに変わります。

シングルプロセス処理
a: 0 n: 0 ppid: 7016 pid: 5760
a: 0 n: 1 ppid: 7016 pid: 5760
a: 0 n: 2 ppid: 7016 pid: 5760
a: 0 n: 3 ppid: 7016 pid: 5760
a: 0 n: 4 ppid: 7016 pid: 5760
a: 0 n: 5 ppid: 7016 pid: 5760
a: 0 n: 6 ppid: 7016 pid: 5760
a: 0 n: 7 ppid: 7016 pid: 5760
a: 0 n: 8 ppid: 7016 pid: 5760
a: 0 n: 9 ppid: 7016 pid: 5760
a: 0 END ppid: 7016 pid: 5760
マルチプロセス処理
a: 1 n: 0 ppid: 5760 pid: 8936
a: 2 n: 0 ppid: 5760 pid: 2992
a: 3 n: 0 ppid: 5760 pid: 8084
a: 1 n: 1 ppid: 5760 pid: 8936
a: 2 n: 1 ppid: 5760 pid: 2992
a: 3 n: 1 ppid: 5760 pid: 8084
a: 1 n: 2 ppid: 5760 pid: 8936
a: 2 n: 2 ppid: 5760 pid: 2992
a: 3 n: 2 ppid: 5760 pid: 8084
a: 3 n: 3 ppid: 5760 pid: 8084
a: 2 n: 3 ppid: 5760 pid: 2992
a: 1 n: 3 ppid: 5760 pid: 8936
a: 1 n: 4 ppid: 5760 pid: 8936
a: 3 n: 4 ppid: 5760 pid: 8084
a: 2 n: 4 ppid: 5760 pid: 2992
a: 1 n: 5 ppid: 5760 pid: 8936
a: 2 n: 5 ppid: 5760 pid: 2992
a: 3 n: 5 ppid: 5760 pid: 8084
a: 2 n: 6 ppid: 5760 pid: 2992
a: 1 n: 6 ppid: 5760 pid: 8936
a: 3 n: 6 ppid: 5760 pid: 8084
a: 2 n: 7 ppid: 5760 pid: 2992
a: 1 n: 7 ppid: 5760 pid: 8936
a: 3 n: 7 ppid: 5760 pid: 8084
a: 2 n: 8 ppid: 5760 pid: 2992
a: 3 n: 8 ppid: 5760 pid: 8084
a: 1 n: 8 ppid: 5760 pid: 8936
a: 2 n: 9 ppid: 5760 pid: 2992
a: 1 n: 9 ppid: 5760 pid: 8936
a: 3 n: 9 ppid: 5760 pid: 8084
a: 2 END ppid: 5760 pid: 2992
a: 1 END ppid: 5760 pid: 8936
a: 3 END ppid: 5760 pid: 8084
続行するには何かキーを押してください . . .

Pauseキーで処理を一時停止するメリット

任意のタイミングでプログラムの一時停止と再開ができるのがメリットです。

プログラムに特別な仕掛けは不要なのもメリットです。

現状のプログラムのままで、すぐに一時停止と再開ができます。

Pythonの処理を一時停止(中断)したいときは、Pauseキーを押す。
処理を再開するときは、何かキーを押す。

おすすめの知識です。

Pythonプログラムに限らず、コマンドラインで動いているプログラムなら、たいていPauseキーで一時停止できると思います。

Pauseキーで一時停止『できるもの』と『できないもの』

Pauseキーで一時停止と再開ができるのは、cmd.exeやpy.exeといった、コマンドラインウィンドウだけのようです。

GUI(ジーユーアイ、グラフィカルユーザーインターフェース)のウィンドウしかないプログラムでは、Pauseキーが効かず、一時停止できませんでした。

GUIプログラムでも、Pauseキーを押したときに一時停止するような実装があれば、機能する場合があります。

プログラムの一時停止を使う場面

一時的にディスクアクセスを止めたいときに使うと便利です。

あと、何かエラーが大量に表示されてしまったときに、Pauseキーを押すと一時停止できて便利でした。

それからルーターの再起動をしたいときに、プログラムを一時停止しておくと、エラーページの取得を防ぐことができました。

Pauseキーによる一時停止と再開はおすすめ

キーボードのポーズキーは、すぐに使えるのでおすすめです。

Pauseキーを押せば、好きなタイミングでプログラムを一時停止できます

ちょっとプログラムを止めたいときに、Pauseキーはいつでも使えます。

実行中のプログラムを一時停止したいときは、『Pauseキー(ポーズキー)』です。

再開するときは、矢印キーなどを押して再開します。

タイトルとURLをコピーしました