Seite 1 von 1

while-Loop mit Zwischenablage vergleichen und beenden

Verfasst: Sonntag 9. Januar 2022, 04:28
von calezius
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!")

Re: while-Loop mit Zwischenablage vergleichen und beenden

Verfasst: Sonntag 9. Januar 2022, 10:17
von sparrow
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.

Re: while-Loop mit Zwischenablage vergleichen und beenden

Verfasst: Sonntag 9. Januar 2022, 17:10
von Sirius3
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.

Re: while-Loop mit Zwischenablage vergleichen und beenden

Verfasst: Sonntag 9. Januar 2022, 17:42
von calezius
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