Problemy z programem, który kopiuje linki ze schowka

0

Witam, mam taki problem. Chciałem przećwiczyć sobie działanie na schowkach, z tego powodu użyłem modułu pyperclip.
Cel programu:
Skanuje schowek, kiedy coś się pojawi, sprawdza, czy dany string istnieje już w liście, jeżeli nie to go dodaje, a następnie schowek "zeruj", jeżeli nie istnieje.

Próbowałem zrobić coś takiego, jednak pojawiły się problemy, po pierwsze z płynnością tego programu(tzn. czasami trzeba kilka razy trzeba wykonać sekwencję kopiowania, zanim go doda), oraz z tym jak z tego programu wyjść. Jako iż, chciałbym, aby nie było z góry narzucone ile razy można dodać jakiś element, nie mogłem użyć pętli for, a jako, żeby automatycznie się dodawało bez mojej ingerencji (tylko kopiowanie) nie mogę nigdzie wpisać np. słowa "Stop"(mogę je jedynie skopiować).

Jeżeli ktoś by mi pomógł byłbym wdzięczny.
Niżej moje próby zrobienia tego programu

import pyperclip
pyperclip.copy('')

listOfLinks = []

i = 1

while True:

    x = pyperclip.paste()

    if((len(x) != 0) and x.capitalize() != 'Stop'):
        if(x not in listOfLinks):# and (x != '')):
            listOfLinks.append(x)
            print("dodano", i, "link")
            pyperclip.copy('')
            i += 1
        else:
            pyperclip.copy('')
            print("Ten element już istnieje")
            continue
    elif(x.capitalize() == 'Stop'):
        break
    
    else:
        continue
0

Standardowe pytania, co mówią debugger, i wujek?
Mi to działa w miarę płynnie, btw. Może dodaj czytanie inputu od usera, podaje, quit, czy, exit i program kończy działanie.

0

Osobny wątek który czyta console, po wpisaniu np. stop ustawia jakąś zmienną, zaś tu w tej pętli sprawdzasz wartość tej zmiennej.

0

O! Wątkami jedziemy:) Ale rzeczywiście, to eleganckie rozwiązanie; problem jakie mam z tym, to, że mi to wygląda na xy dla sztuki.

0
lion137 napisał(a):

mi to wygląda na xy

To nie jest xy, OP wyraźnie napisał że chce zatrzymać nieskończoną pętle.
Ale skoro nadal chcę (nie wiadomo czy chce więc może tu się kryje xy) konsole zamiast windowsowego okienka to napisałem jak zrobić to w konsoli.

1 użytkowników online, w tym zalogowanych: 0, gości: 1