while-Loop mit Zwischenablage vergleichen und beenden

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
calezius
User
Beiträge: 2
Registriert: Sonntag 9. Januar 2022, 03:16

Hallo, ich kopiere mit 'nem kleinen Script Wörter aus der DUDEN-Bibliothek in eine Tabelle, was auch soweit funktioniert.
Aber ich bekomme meinen Loop bis jetzt nur mit einem Counter beendet. Da man aber leider nicht rausfinden kann, wie viele Wörter da drin sind, könnt ich das letzte Wort solange kopieren lassen, bis der Counter voll ist.
Ich kann ein String mit der Zwischenablage vergleichen und wahr oder falsch mit print ausgeben:

Code: Alles auswählen

# true false test

import pyperclip, re, pyautogui, sys, time
from autogui import *

str1 = "zzgl. = zuzüglich."
str2 = str(pyperclip.paste())

print(str1==str2)
print(str1!=str2)
print(str1>=str2)
print(str1<=str2)
print(str1 in str2)
print("The end")
Die Ausgabe davon ist :
False
True
True
False
True
The end

Der Vergleich funktioniert also:
Hab ich die While Schleife nicht richtig verstanden? Die läuft nähmlich munter weiter, wenn ich zum testen 5 Wörter vor "zzgl. = zuzüglich." starte.

Code: Alles auswählen

import pyperclip, re, pyautogui, sys, time
from autogui import *

wörter_gesamt = 0
letztes_wort = "zzgl. = zuzüglich."
clipboard = str(pyperclip.paste())

while letztes_wort != clipboard:
        wörterGesamt += 1
        spalten_im_ods += 1
        setWindow("Duden-Bibliothek")
        pyautogui.moveTo(144, 762) 
        pyautogui.click()
       .
       .
       .

print ("Es wurden" + wörterGesamt + "Wörter kopiert!")
Benutzeravatar
sparrow
User
Beiträge: 4540
Registriert: Freitag 17. April 2009, 10:28

Ich sehe da eher Probleme bei deinem Vergleich.
Dein erster Test prüft ja das Wort und den Inhalt der Zwischenablage und gibt False aus. Ich sehe nicht, dass der funktioniert.
Sirius3
User
Beiträge: 18279
Registriert: Sonntag 21. Oktober 2012, 17:20

Wo wird denn innerhalb der while-Schleife letztes_wort oder clipboard verändert? Wenn die beiden Variablen gleich bleiben, läuft natürlich auch die Schleife für immer.
calezius
User
Beiträge: 2
Registriert: Sonntag 9. Januar 2022, 03:16

Guten Morgen, erstmal vielen Dank für Eure rasche Hilfe.

@Sirius3: Jupp, nach vielem, vielem ausprobieren ist der Groschen dann in der Früh bei mir auch gefallen. Ich hab irgendwann in jedem Durchlauf mal die Variable "clipboard" ausgeben, und die war dann immer gleich.
Hätte ja gedacht die ändert sich sowieso, weil die Zwischenablage abgefragt wird. So ist das also mit den Variablen.
Nach nem kurzen erfolgreichen Test lief das dann und meine Schleife "wach_sein" wurde auch prompt beendet :)

Liebe Grüße
Antworten