• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Pomoc z errorem

Object Storage Arubacloud
+1 głos
93 wizyt
pytanie zadane 7 lutego 2021 w Python przez Que Początkujący (260 p.)

Część, zna ktoś powód pojawiania się następującego erroru?

IndexError: Cannot choose from an empty sequence

Program po każdym kliknięciu F2 powinien wylosować jeden element z pliku txt. Niestety losuje tlyko jeden raz, następnie wywala powyższy error.

import secrets
from pynput import keyboard
from pynput.keyboard import Key
from keyboard import write, press
from time import sleep

facts = open(r"C:\Users\quecomp\PycharmProjects\pythonProject1\venv\facts.txt", "r")

def spam():

    print(secrets.choice(facts.readlines()))

def on_press(key):
    pass

def on_release(key):
    if (key == keyboard.Key.f2):
        spam()

with keyboard.Listener(on_press=on_press, on_release=on_release) as listener:
    listener.join()

 

1 odpowiedź

0 głosów
odpowiedź 8 lutego 2021 przez overcq Pasjonat (21,690 p.)

Domyślam się, że brakuje

facts.seek( 0, SEEK_SET )

po każdym wczytaniu wszystkich linii.

komentarz 8 lutego 2021 przez VBService Ekspert (253,280 p.)
edycja 8 lutego 2021 przez VBService

Wystarczy tak, drugi parametr jest opcjonalny (domyślnie - 0 - SEEK_SET)  wink

def on_release(key):
    if (key == keyboard.Key.f2):
        spam()
        facts.seek(0)

czy

def spam(): 
    print(secrets.choice(facts.readlines()))
    facts.seek(0)

fileseek(offset[, whence])
 

offset
Required
. The offset from the beginning of the file.
 

whence
Optional. The whence argument is optional and defaults to os.SEEK_SET or 0 (absolute file positioning); other values are os.SEEK_CUR or 1 (seek relative to the current position) and os.SEEK_END or 2 (seek relative to the file’s end). There is no return value.

Podobne pytania

+1 głos
2 odpowiedzi 287 wizyt
pytanie zadane 3 marca 2022 w Python przez Qsar Nowicjusz (130 p.)
0 głosów
1 odpowiedź 881 wizyt
pytanie zadane 21 października 2020 w Python przez Szymi12 Użytkownik (630 p.)
+1 głos
1 odpowiedź 181 wizyt
pytanie zadane 9 października 2022 w Python przez Ziom Początkujący (430 p.)

92,567 zapytań

141,420 odpowiedzi

319,615 komentarzy

61,952 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...