Python’da tuş vuruşlarını algılamak, etkileşimli uygulamalar, oyunlar ve otomasyon betikleri oluşturmak için temel bir beceridir. Python bunu başarmak için her birinin kendi güçlü ve zayıf yönleri olan çeşitli kütüphaneler sunar. Bu makale, özelliklerini karşılaştıran ve pratik örnekler sağlayan üç popüler seçeneği inceliyor: keyboard
, pynput
ve readchar
modülleri.
İçindekiler Tablosu
keyboard
Modülünün Kullanımıpynput
Modülünün Kullanımıreadchar
Modülünün Kullanımı- Modüllerin Karşılaştırılması
- Sonuç
keyboard
Modülünün Kullanımı
keyboard
modülü, klavye olaylarını işlemede kullanıcı dostu bir arayüz sağlar. Kullanımı nispeten basittir ve iyi bir çapraz platform uyumluluğu sunar. Ancak, bazı sistemlerde yönetici ayrıcalıkları gerektirebilir.
Kurulum: pip install keyboard
import keyboard
def on_press(event):
print(f'Basılan tuş: {event.name}')
keyboard.on_press(on_press)
keyboard.wait() # Ctrl+C basılana kadar bloke eder
pynput
Modülünün Kullanımı
pynput
, hem klavye hem de fare girişini kontrol eden daha kapsamlı bir kütüphanedir. Sağlamlığı ve tuş bırakma olayları da dahil olmak üzere ayrıntılı olay bilgileriyle bilinir.
Kurulum: pip install pynput
from pynput import keyboard
def on_press(key):
try:
print(f'Basılan tuş: {key.char}')
except AttributeError:
print(f'Özel tuş basıldı: {key}')
def on_release(key):
if key == keyboard.Key.esc:
return False # Dinleyiciyi durdurur
with keyboard.Listener(on_press=on_press, on_release=on_release) as listener:
listener.join()
readchar
Modülünün Kullanımı
readchar
, klavye girişine düşük seviyeli, karakter karakter yaklaşım sunar. Önceki seçeneklerden daha basittir ancak daha az özelliklidir ve tüm uygulamalar için uygun olmayabilir. Tek karakterli giriş üzerinde çok hassas kontrole ihtiyaç duyduğunuzda özellikle kullanışlıdır.
Kurulum: pip install readchar
import readchar
while True:
key = readchar.readchar()
print(f"Basılan tuş: {key}")
if key == 'x1b': # Escape tuşu
break
Modüllerin Karşılaştırılması
İşte üç modülü karşılaştıran özet bir tablo:
Modül | Özellikler | Karmaşıklık | Çapraz Platform Uyumluluğu |
---|---|---|---|
keyboard |
Basit, kullanımı kolay, iyi çapraz platform desteği | Düşük | İyi |
pynput |
Kapsamlı, ayrıntılı olaylar, sağlam | Orta | İyi |
readchar |
Düşük seviyeli, karakter karakter giriş | Düşük | İyi |
Sonuç
Python’da tuş basmalarını algılamak için en iyi modül, belirli ihtiyaçlarınıza bağlıdır. keyboard
basit uygulamalar için idealdir; pynput
, ayrıntılı olay bilgisi gerektiren daha karmaşık senaryolar için uygundur; ve readchar
belirli kullanım durumları için temel, düşük seviyeli bir çözüm sağlar. Seçiminizi yaparken karmaşıklık, çapraz platform uyumluluğu ve gerekli işlevsellik gibi faktörleri göz önünde bulundurun.