Ich versuche, eine kleine Zwischenablage Logger (für Linux), die auf ein Ereignis (die Änderung der Zwischenablage Inhalt) hört und schreibt den Inhalt der Zwischenablage in eine Datei (On-Change).Verwenden Sie die while-Schleife, um auf ein Ereignis zu hören?
Was ich mit kommen haben, ist eine einfache while-Schleife mit der Zwischenablage Modul pyperclip:
import pyperclip
recent_value = ""
while True:
tmp_value = pyperclip.paste()
if tmp_value != recent_value:
recent_value = tmp_value
with open(".clipboard_history.txt", "a") as f:
f.write(recent_value + "\n")
Also meine erste Frage ist, kann ich eigentlich eine while True Schleife zu ‚hören‘ laufen oder wird diese verbrauchen zu viel Speicher oder in der Regel ineffizient oder schlechte Praxis?
Und die zweite Frage ist, wie kann ich das im Hintergrund wie eine Shell-Job-Kontrolle (Et-Zeichen) ausführen?
Sollte ich für einen Daemon wie vorgeschlagen here oder eine Art Event-Schleife oder Threading-Magie gehen?
Ich möchte im Grunde etwas, das im Hintergrund sitzt und auf ein Ereignis hört (Inhalt der Zwischenablage ändert), reagiert darauf (schreibt in eine Datei) und wartet erneut.
============================
edit: Danke für den Input! + neue Frage: Benötige ich noch die Schlafmethode, wenn ich Threading verwende?
Threading wäre für diesen Code verschwendet, weil dieser Code dies und nur dies tut. Wenn Ihr Programm jedoch etwas anderes machen möchte, während dieser Code läuft, dann und nur dann würden Sie Threading verwenden wollen. Eine weitere Ausnahme wäre, wenn Sie eine GUI (würde gehen unter Programm tun etwas anderes tho) – 3rdaccountQQ