Django Girls and Boys 備忘録

Python、Selenium、Django、java、iPhoneアプリ、Excelマクロなどで気付いたこと、覚えておきたいことなどを載せていきます。

【Python】キー入力によるプログラム終了処理、ループを抜けて次の処理へ移行する処理

 

Pythonにてプログラム作成中に、何かのキーが押されたら処理を終了したいとか、ループを抜けたいという場面はいろいろと出てくると思います。

 

今回は、あるキー入力でプログラム終了または処理を抜ける場合のコードを例を挙げて説明します。

 

自分自身が最近行っていた作業の中でも、プログラム実行中にユーザーが途中で作業をやめたい、画面を閉じて終了したいという場面がありました。

 

そのような時に、どのようにしたらいいかを考えて実施した結果が以下のようなものでした。

 

#   Escapeキーを2秒以上押し続けたらプログラム終了
    while  True:
        if keyboard.is_pressed('escape'):
            messagebox.showinfo('メッセージ','処理を終了しました。')
            sys.exit()
        time.sleep(2)

 

このコードをプログラムの終了処理のあたりに追加しておくことで、

while文でループを回しておいて、「Escape」キーを2秒以上押し続けたら終了

のような処理とすることができました。

 

ちなみに、

「Enter」キーを押したら次の処理へ移行

のような処理としたい場合には例えば以下のようになります。

 

#   Enterキーを推したらループを抜けて次の処理へ
while  True:
    if keyboard.is_pressed("enter"):
        print('メッセージ','処理を抜けました。')
        break

 

また、seleniumでの処理になりますが、以下のようにしておくことで、実行すると、

Google検索画面を表示したまま待機状態となり、「Escape」キーを2秒以上押し続けると処理終了

となります。

(以下はEdge用の処理コードです)

 

from selenium import webdriver
import os
import time
import sys
from selenium.webdriver.chrome import service as fs
from tkinter import messagebox
import keyboard


######################################################################
path_driver = os.getcwd()+'\msedgedriver.exe'
# ドライバー指定でEdgeブラウザを開く
edge_service = fs.Service(executable_path=path_driver)

driver = webdriver.Edge(service=edge_service)
######################################################################

driver.get('https://www.google.com/')


#   Escapeキーを2秒以上押し続けたらプログラム終了
while  True:
    if keyboard.is_pressed('escape'):
        messagebox.showinfo('メッセージ','処理を終了しました。')
        sys.exit()
    time.sleep(2)

 

以上が、キー入力によるプログラムの終了処理、ループを抜けて次の処理へ移行の場合のコードの例となります。

 

 

 

 

関連記事:

【Python】キーボード、キー入力判定方法 - Django Girls and Boys 備忘録

 

【Python】keyboardライブラリでのキー入力検出に使用可能なキーの種類 - Django Girls and Boys 備忘録

 

【PythonからWeb操作】seleniumのインストール手順 - Django Girls and Boys 備忘録

 

【PythonによるExcelファイルの読み書き】PythonのダウンロードからExcelファイルの読み書きまでの一通りすべての方法 - Django Girls and Boys 備忘録

 

【PythonでのExcelファイル読み書き方法】ファイルオープンしているファイル(アクティブファイル)への書込方法 - Django Girls and Boys 備忘録

 

【Python Selenium】Webサイトのスクレイピングなどで必要なフレーム間移動方法 - Django Girls and Boys 備忘録

 

【Python Selenium】ブラウザ用ドライバーのダウンロードとインストール - Django Girls and Boys 備忘録

 

【PythonからWeb操作】selenium、各ブラウザ用ドライバーの最新バージョン確認、ダウンロード場所 - Django Girls and Boys 備忘録

 

【Python Selenium】新規ウインドウ追加時のウインドウ切替方法 - Django Girls and Boys 備忘録

 

【Python Selenium】ウインドウ表示時などでのWaitの方法、待機方法 - Django Girls and Boys 備忘録

 

【Python Selenium】新規ウインドウ(新規タブ)追加時のウインドウ切替方法(追加ハンドルをハンドル差異比較にて取得) - Django Girls and Boys 備忘録

 

【python】実行時に表示されるコンソールウインドウを非表示にする方法 - Django Girls and Boys 備忘録

 

【Python Selenium】Webサイトのソースコードをファイル保存する方法 - Django Girls and Boys 備忘録

 

【Python】キー入力によるプログラム終了処理、ループを抜けて次の処理へ移行する処理 - Django Girls and Boys 備忘録

 

【Python Selenium】EdgeのI.E.モード操作の事前準備での設定 - Django Girls and Boys 備忘録

 

【Python Selenium】EdgeのI.E.モードでブラウザ操作する場合のドライバー設定方法と簡単な起動例 - Django Girls and Boys 備忘録

 

【Python】キー入力によるプログラム終了処理、ループを抜けて次の処理へ移行する処理 - Django Girls and Boys 備忘録

 

【Python Excel】ExcelからのPython実行ファイル(アプリケーションファイル)起動方法 - Django Girls and Boys 備忘録

 

【Python Seleuium】ブラウザの拡大率の設定変更 - Django Girls and Boys 備忘録