2024-04-12

Pythonでキーボードのキーを押したとき、離したときに処理を割り当てるよ

Pythonでキーボードのキーを押したとき、離したときに処理を割り当てるよ

キーボードのキーを押したとき、離したときに処理を割り当てるよ

# キーボード操作するためのモジュールだよ ($ pip install keyboardで別途インストールしてね)
import keyboard
# 特定のキーを定義するよ
keyValue = 'ctrl'
# 特定のキーが押されたときに呼び出すよ
def on_ctrl_press(event):
    if event.name == keyValue:
        print(f'{keyValue}キーが押している')
# 特定のキーが離されたときに呼び出すよ
def on_ctrl_release(event):
    if event.name == keyValue:
        print(f'{keyValue}キーが離された')

# ガイドメッセージを表示するよ
print(keyValue + "を押してね。終了するには ESC を押してね。")
# 特定のキーが押されたときと離したときのイベントを割り当てるよ
keyboard.on_press_key(keyValue, on_ctrl_press)
keyboard.on_release_key(keyValue, on_ctrl_release)
# プログラムが終了するまで待機しESCで終了するよ
keyboard.wait('esc')
# 登録したすべてのイベントリスナーを削除するよ
keyboard.unhook_all()

実行結果(ctrlを少し長押し、ctrlの順に押した場合)

ctrlを押してね。終了するには ESC を押してね。
ctrlキーが押している
ctrlキーが押している
ctrlキーが押している
ctrlキーが離された
ctrlキーが押している
ctrlキーが離された

2024-04-11

Pythonでキーボードの特定のキーを入力したとき別の文字を追加で入力するよ

Pythonでキーボードの特定のキーを入力したとき別の文字を追加で入力するよ

キーボードの特定のキーを入力したとき別の文字を追加で入力するよ

# キーボード操作するためのモジュールだよ ($ pip install keyboardで別途インストールしてね)
import keyboard
# 特定のキーが押されたときにメッセージを入力するよ
def onKeyEvent(event):
    if event.event_type == keyboard.KEY_DOWN:
        if event.name in ('a','b'):
            keyboard.write("キーを押すとこの文字が入力されるよ")

# キーボードが押されたときの処理を割り当てるよ
keyboard.on_press(onKeyEvent)
# ガイドメッセージを表示するよ
print("aかbを押してね。終了するには ESC を押してね。")
# プログラムが終了するまで待機しESCで終了するよ
keyboard.wait('esc')
# 登録したすべてのイベントリスナーを削除するよ
keyboard.unhook_all()

実行結果(a、b、c、dの順に押した場合)

aかbを押してね。終了するには ESC を押してね。
aキーを押すとこの文字が入力されるよ
bキーを押すとこの文字が入力されるよ
c
d

2024-04-10

Pythonでキーボードの特定のキーの入力を無効にするよ

Pythonでキーボードの特定のキーの入力を無効にするよ

キーボードの特定のキーの入力を無効にするよ

# キーボード操作するためのモジュールだよ ($ pip install keyboardで別途インストールしてね)
import keyboard
# 割り当てるキーを定義するよ
keyValue = 's'
# 特定のキーの入力を無効にするよ
keyboard.block_key(keyValue)
# ガイドメッセージを表示するよ
print("何かキーを押してね。sは押せないよ。終了するには ESC を押してね。")
# ESCキーが押されたら処理を終了するよ
while True:
    # 入力されたキーを取得するよ
    inputValue = keyboard.read_key()
    # ESCキーが押されたら処理終了
    if inputValue == 'esc':
        break
    # 入力されたキーを表示するよ
    print(inputValue + "キーが押されたよ")
# 登録したすべてのイベントリスナーを削除するよ
keyboard.unhook_all()

実行結果(a、s、dの順に押した場合)

何かキーを押してね。sは押せないよ。終了するには ESC を押してね。
aキーが押されたよ
aキーが押されたよ
dキーが押されたよ
dキーが押されたよ

2024-04-09

Pythonでキーボードのキーが押されるまで待機するよ

Pythonでキーボードのキーが押されるまで待機するよ

キーボードのキーが押されるまで待機するよ

# キーボード操作するためのモジュールだよ ($ pip install keyboardで別途インストールしてね)
import keyboard
# 割り当てるキーを定義するよ
keyValue = 'shift'
# ガイドメッセージを表示するよ
print(keyValue + "キーを押すと終了するよ。")
# 特定のキーが押されるまで待機するよ
keyboard.wait(keyValue)
# 結果のメッセージを表示するよ
print('シフトキーが押されたよ。')

実行結果(shiftキーを押した場合)

shiftキーを押すと終了するよ。
シフトキーが押されたよ。

2024-04-08

Pythonでキーボードのキーを押して離したときに処理をするよ

Pythonでキーボードのキーを押して離したときに処理をするよ

キーボードのキーを押して離したときに処理をするよ

# キーボード操作するためのモジュールだよ ($ pip install keyboardで別途インストールしてね)
import keyboard
# 割り当てるキーを定義するよ
keyValue = 'ctrl'
# 特定のキーを押してから離したときにメッセージを表示するよ
keyboard.on_release_key(keyValue, lambda event: print("キーが離されました"))
# ガイドメッセージを表示するよ
print(keyValue + "キーを押して離すとメッセージを表示するよ。")
# プログラムが終了するまで待機しESCで終了するよ
keyboard.wait('esc')
# 割り当てしたキーを削除するよ
keyboard.unhook_all()

実行結果(ctrlキーを押して離してを2回行った場合)

ctrlキーを押して離すとメッセージを表示するよ。
キーが離されました
キーが離されました

2024-04-07

Pythonでキーボードから入力した内容をリストに格納して表示するよ

Pythonでキーボードから入力した内容をリストに格納して表示するよ

キーボードから入力した内容をリストに格納して表示するよ

# キーボード操作するためのモジュールだよ ($ pip install keyboardで別途インストールしてね)
import keyboard
# ガイドメッセージを表示するよ
print("何かキーを押してね。終了するには ESC を押してね。")
# 入力されたキーボードの値をリストに格納するよ
# 終了するときはESCを押してね
recChars = keyboard.record(until='esc')
# 格納した内容をすべて表示するよ
for recChar in recChars:
    print(recChar)
# 登録したすべてのイベントリスナーを削除するよ
keyboard.unhook_all_hotkeys()

実行結果(a、b、c、Escキーを押した場合)

何かキーを押してね。終了するには ESC を押してね。
KeyboardEvent(a down)
KeyboardEvent(a up)
KeyboardEvent(b down)
KeyboardEvent(b up)
KeyboardEvent(c down)
KeyboardEvent(c up)
KeyboardEvent(esc down)

キーボードから入力したキーの名前をリストに格納して表示するよ

# キーボード操作するためのモジュールだよ ($ pip install keyboardで別途インストールしてね)
import keyboard
# ガイドメッセージを表示するよ
print("何かキーを押してね。終了するには ESC を押してね。")
# 入力されたキーボードの値をリストに格納するよ
# 終了するときはESCを押してね
recChars = keyboard.record(until='esc')
# キーの名称だけ表示するよ
for recChar in recChars:
    # キー入力には1回でDownとUpがあるから2つ表示されるよ
    print(recChar.name)
# 登録したすべてのイベントリスナーを削除するよ
keyboard.unhook_all_hotkeys()

実行結果(a、b、c、Escキーを押した場合)

何かキーを押してね。終了するには ESC を押してね。
a
a
b
b
c
c
esc

Pythonでキーボードの入力をしたときに何か処理をするよ

Pythonでキーボードの入力をしたときに何か処理をするよ

キーボードの入力をしたときに何か処理をするよ(関数バージョン)

# キーボード操作するためのモジュールだよ ($ pip install keyboardで別途インストールしてね)
import keyboard
# 割り当てるキーを定義するよ
keyValue = 'ctrl'
# 割り当てたキーが押されたときの処理だよ
def onKeyEvent():
    print(keyValue + "キーが押されたよ")

# キーに処理を割り当てるよ(関数バージョン)
keyboard.add_hotkey(keyValue, onKeyEvent)
# ガイドメッセージを表示するよ
print(keyValue + "キーを押してね。終了するには ESC を押してね。")
# プログラムが終了するまで待機しESCで終了するよ
keyboard.wait('esc')
# 割り当てしたキーを削除するよ
keyboard.remove_hotkey(keyValue)

実行結果(Ctrlキーを3回押してEscキーを押した場合)

ctrlキーを押してね。終了するには ESC を押してね。
ctrlキーが押されたよ
ctrlキーが押されたよ
ctrlキーが押されたよ

キーボードの入力をしたときに何か処理をするよ(無名関数バージョン)

# キーボード操作するためのモジュールだよ ($ pip install keyboardで別途インストールしてね)
import keyboard
# 割り当てるキーを定義するよ
keyValue = 'ctrl'
# キーに処理を割り当てるよ(無名関数バージョン)
keyboard.add_hotkey(keyValue, lambda: print(keyValue + "キーが押されたよ"))
# ガイドメッセージを表示するよ
print(keyValue + "キーを押してね。終了するには ESC を押してね。")
# プログラムが終了するまで待機しESCで終了するよ
keyboard.wait('esc')
# 割り当てしたキーを削除するよ
keyboard.remove_hotkey(keyValue)

実行結果(Ctrlキーを4回押してEscキーを押した場合)

ctrlキーを押してね。終了するには ESC を押してね。
ctrlキーが押されたよ
ctrlキーが押されたよ
ctrlキーが押されたよ
ctrlキーが押されたよ

複数のキーの組み合わせでキーボードの入力をしたときに何か処理をするよ

# キーボード操作するためのモジュールだよ ($ pip install keyboardで別途インストールしてね)
import keyboard
# 割り当てるキーを定義するよ
keyValue = 'ctrl+shift+l'
# 割り当てたキーが押されたときの処理だよ
def onKeyEvent():
    print(keyValue + "キーが押されました")

# キーに処理を割り当てるよ
keyboard.add_hotkey(keyValue, onKeyEvent)
# ガイドメッセージを表示するよ
print(keyValue + "キーを押してね。終了するには ESC を押してね。")
# プログラムが終了するまで待機しESCで終了するよ
keyboard.wait('esc')
# 割り当てしたキーを削除するよ
keyboard.remove_hotkey(keyValue)

実行結果(CtrlとShiftとLキーを2回押してEscキーを押した場合)

ctrl+shift+lキーを押してね。終了するには ESC を押してね。
ctrl+shift+lキーが押されたよ
ctrl+shift+lキーが押されたよ

割り当てしたキーをすべて削除するよ

# キーボード操作するためのモジュールだよ ($ pip install keyboardで別途インストールしてね)
import keyboard
# キーに処理を割り当てるよ
keyboard.add_hotkey('ctrl', lambda: print("ctrlキーが押されたよ"))
keyboard.add_hotkey('shift', lambda: print("shiftキーが押されたよ"))
keyboard.add_hotkey('alt', lambda: print("altキーが押されたよ"))
# ガイドメッセージを表示するよ
print("ctrlかshiftかaltキーを押してね。終了するには ESC を押してね。")
# プログラムが終了するまで待機しESCで終了するよ
keyboard.wait('esc')
# 割り当てしたキーをすべて削除するよ
keyboard.unhook_all()

実行結果(Ctrlキー2回、Shiftキー1回、Altキー3回押してEscキーを押した場合)

ctrlかshiftかaltキーを押してね。終了するには ESC を押してね。
ctrlキーが押されたよ
ctrlキーが押されたよ
shiftキーが押されたよ
altキーが押されたよ
altキーが押されたよ
altキーが押されたよ

2024-04-06

Pythonでキーボードの入力を待って入力されたら何か処理をするよ

Pythonでキーボードの入力を待って入力されたら何か処理をするよ

キーボードの入力を待って入力されたら何か処理をするよ

# キーボード操作するためのモジュールだよ ($ pip install keyboardで別途インストールしてね)
import keyboard
# ガイドメッセージを表示するよ
print("何かキーを押してね。")
# 入力されたキーを取得するよ
keyValue = keyboard.read_key()
# 入力されたキーを表示するよ
print(keyValue + "キーが押されたよ")

実行結果(Ctrlキーを押してEscキーが押された場合)

何かキーを押してね。
Ctrlキーが押されたよ

実行結果(Shiftキーを押してEscキーが押された場合)

何かキーを押してね。
Shiftキーが押されたよ

2024-04-05

Pythonでキーボードの入力値を判定するよ

Pythonでキーボードの入力値を判定するよ

キーボードの入力値を判定するよ

# キーボード操作するためのモジュールだよ ($ pip install keyboardで別途インストールしてね)
import keyboard
# 特定のキーが押されたときにメッセージを表示するよ
def onKeyEvent(event):
    if keyboard.is_pressed("ctrl"):
        print("Ctrlキーが押されたよ")
    elif keyboard.is_pressed("shift"):
        print("Shiftキーが押されたよ")

# キーボードからの入力によってメッセージを返すよ
keyboard.on_press(onKeyEvent)
# ガイドメッセージを表示するよ
print("CtrlかShiftキーを押してね。終了するには ESC を押してね。")
# プログラムが終了するまで待機しESCで終了するよ
keyboard.wait('esc')
# 登録したすべてのイベントリスナーを削除するよ
keyboard.unhook_all()

実行結果(Ctrlキーを押してEscキーが押された場合)

CtrlかShiftキーを押してね。終了するには ESC を押してね。
Ctrlキーが押されたよ

実行結果(Shiftキーを押してEscキーが押された場合)

CtrlかShiftキーを押してね。終了するには ESC を押してね。
Shiftキーが押されたよ

2024-04-04

Pythonでクリップボードを操作するよ

Pythonでクリップボードを操作するよ

クリップボードにテキストをコピーするよ

実行前 (クリップボード)

データなし
# クリップボードを操作するモジュールだよ($ pip install pyperclipで別途インストールしてね)
import pyperclip
# クリップボードにテキストをコピーするよ
pyperclip.copy("Pythonでこの文字をクリップボードにコピーするよ")

実行結果 (クリップボード)

Pythonでこの文字をクリップボードにコピーするよ

クリップボードからテキストを取得するよ

実行前 (クリップボード)

Pythonでこの文字をクリップボードから取り出すよ
# クリップボードを操作するモジュールだよ($ pip install pyperclipで別途インストールしてね)
import pyperclip
# クリップボードからテキストを取得するよ
text = pyperclip.paste()
print("クリップボードの内容:", text)

実行結果

Pythonでこの文字をクリップボードから取り出すよ

2024-04-03

Pythonでビープ音を鳴らすよ

Pythonでビープ音を鳴らすよ

ビープ音を鳴らすよ

# Windows用のモジュールだよ
import winsound
# 1000 Hz
frequency = 1000
# ミリ秒を指定するよ
duration = 500
# 1000 Hzのビープ音を0.5秒再生する
winsound.Beep(frequency, duration)

実行結果

ピッと音が鳴るよ

2024-04-02

Pythonでzip形式のファイルを解凍するよ

Pythonでzip形式のファイルを解凍するよ

zip形式のファイルを解凍するよ

実行前

D:\
└─Pythonで作成したフォルダ\
   ├─Temp\
   ├─あああ.txt
   ├─いいい.csv
   ├─ううう.txt
   ├─たたた.jpg
   └─圧縮.zip
     ├─あああ.txt
     └─いいい.csv
# zipファイルの圧縮と解凍を行うモジュールを読み込むよ
import zipfile
# 
# zip形式のファイルを解凍するよ
# 
def unzip_file(zipFilename, extract_folder):
    # zipファイルを読み込みモードで開くよ
    with zipfile.ZipFile(zipFilename, 'r') as zip:
        # zip形式のファイルを解凍するよ
        zip.extractall(extract_folder)
    return

# 解凍するZIPファイル名と解凍先のフォルダを指定
zipFilename = r"D:\Pythonで作成したフォルダ\圧縮.zip"
unzipFolder = r"D:\Pythonで作成したフォルダ\Temp"
# zip形式のファイルを解凍するよ
unzip_file(zipFilename, unzipFolder)

実行結果

D:\
└─Pythonで作成したフォルダ\
   ├─Temp\
   │ ├─あああ.txt
   │ └─いいい.csv
   ├─あああ.txt
   ├─いいい.csv
   ├─ううう.txt
   ├─たたた.jpg
   └─圧縮.zip
     ├─あああ.txt
     └─いいい.csv

Pythonでファイルをzip形式で圧縮するよ

Pythonでファイルをzip形式で圧縮するよ

ファイルをzip形式で圧縮するよ

実行前

D:\
└─Pythonで作成したフォルダ\
   ├─Temp\
   ├─あああ.txt
   ├─いいい.csv
   ├─ううう.txt
   └─たたた.jpg
# zipファイルの圧縮と解凍を行うモジュールを読み込むよ
import zipfile
# OS関連の機能のモジュールを読み込むよ
import os
# 
# ファイルをzip形式で圧縮するよ
# 
def zip_file(filenames, zipFilename):
    # zipファイルを作成して書き込みモードで開くよ
    with zipfile.ZipFile(zipFilename, 'w') as zip:
        # 圧縮するファイルを追加するよ
        for filename in filenames:
            zip.write(filename, arcname=os.path.basename(filename))
    return

# 圧縮するファイルだよ
filenames = [r"D:\Pythonで作成したフォルダ\あああ.txt", \
             r"D:\Pythonで作成したフォルダ\いいい.csv"]
# 圧縮後のファイル名だよ
zipFilename = r"D:\Pythonで作成したフォルダ\圧縮.zip"
# ファイルをzip形式で圧縮するよ
zip_file(filenames, zipFilename)

実行結果

D:\
└─Pythonで作成したフォルダ\
   ├─Temp\
   ├─あああ.txt
   ├─いいい.csv
   ├─ううう.txt
   ├─たたた.jpg
   └─圧縮.zip
     ├─あああ.txt
     └─いいい.csv

2024-04-01

Pythonでレジストリから値を読むよ

Pythonでレジストリから値を読むよ

レジストリから値を読むよ

実行前

# レジストリを操作するモジュールを読み込むよ
import winreg
# 読み込むパスだよ
targetPath = r"SOFTWARE\PythonTest"
# 読み込む値の情報だよ
valueName = "SettingName"
# レジストリから値を読み込むよ
try:
    # レジストリキーを開くよ
    key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, targetPath, 0, winreg.KEY_READ)
    # 値を読み込むよ
    value, _ = winreg.QueryValueEx(key, valueName)
    print(value)
finally:
    # レジストリキーを閉じるよ
    winreg.CloseKey(key)

実行結果

TestValue

Pythonでレジストリに値を書くよ

Pythonでレジストリに値を書くよ

レジストリに値を書くよ

実行前

# レジストリを操作するモジュールを読み込むよ
import winreg
# 書き込むパスだよ
targetPath = r"SOFTWARE\PythonTest"
# 書き込む値の情報だよ
valueName = "SettingName"
ValueData = "TestValue"
# レジストリに値を書き込むよ
try:
    # レジストリキーを開くよ(存在しないときは作成されるよ)
    key = winreg.CreateKey(winreg.HKEY_CURRENT_USER, targetPath)
    # レジストリに値を書き込むよ
    winreg.SetValueEx(key, valueName, 0, winreg.REG_SZ, ValueData)
finally:
    # レジストリキーを閉じるよ
    winreg.CloseKey(key)

実行結果