V0lc4n0
V0lc4n0
#programowanie #programista15k #python

Jak zaprogramować w Pythonie cofanie się w liniach pliku po znalezieniu słowa. Przykładowy plik:
Line 1: Kamil
Line 2: Magda
Line 3: Jerzy
Line 4: Edek
Line 5: Alek
Line 6: Łukasz

Jeżeli znajdzie napis Alek to niech wróci do lini 2 i szuka słowa Edek.
Da radę cos takiego zrobić?
  • Najlepsze
  • Wszystkie komentarze
saviola7
saviola7
@V0lc4n0: Dobre rozpisanie problemu i zadanie odpowiedniego pytania to też część pracy programisty. ( ͡° ͜ʖ ͡°)
Da radę. (zapewne na kilka sposobów w różnych językach programowania, a jeszcze pewniejsze jest to, że nie napisałeś nam wszystkiego i da się to jeszcze inaczej zrobić).
Elkoss
@V0lc4n0: No da rade, ale po co? Wydaje mi sie ze szukasz nie tam gdzie trzeba.
bruuh
bruuh
0
@V0lc4n0: mając otwarty plik możesz wrócić do początku używając file.seek(0, 0), jak chcesz skoczyć do konkretnej linii to już musisz jakoś sobie cachować długość linii wczytując plik, jeśli masz mały plik to nic nie stoi na przeszkodzie żeby przez cały przelecieć zanim zaczniesz coś z nim robić, tu masz kilka przykładów jak to można ogarnąć https://stackoverflow.com/questions/620367/how-to-jump-to-a-particular-line-in-a-huge-text-file
lionbest
@V0lc4n0: Da radę wszystko tylko pytanie jak bardzo skomplikowanie i wydajnie to musisz zrobić.
Najprościej to wczytać cały plik jako linijki do listy przy użyciu .readlines() i chodzić po liście przy użyciu indexu.
vogello
vogello
@V0lc4n0: a jaka stoi za tym logika ze po znalezieniu slowa Alek (bo zakladam ze jego szukamy) w linii 5 mam wrocic wlasnie do linii 2 (a nie np. 3 albo 1) i szukac slowa Edek (a nie np. Lukasz)
V0lc4n0
V0lc4n0
V0lc4n0 Autor
0
@Elkoss
@bruuh
@lionbest
@saviola7
@vogello

Plik jest duży i jeden z wielu, więc nie chcę by od nowa był iterowany. Chodzi mi chyba bardziej o coafnie pętli (jest coś takiego)?
lionbest
@V0lc4n0: Ale jest tak duży, że nie jesteś w stanie wczytać do pamięci całego (Tak przynajmniej 1 GB)?
vogello
vogello
@V0lc4n0: tak jak pisal @lionbest: pytanie jak duzy jest plik,jaka stoi logika za "cofaniem sie", do czego to ma sluzyc, jak czesto ma byc to uruchamiane - inaczej trzeba podejsc do problemu jak jest to np. okresowy import przez admina a inaczej jak masz rownolegle odpalanie tego przez tysiace userow ;) bo moze sie okazac ze skanowanie od poczatku bedzie wystarczajacym pomyslem, a moze parsowanie pliku i wrzucenie
bruuh
bruuh
0
@V0lc4n0: no to podałem ci link do stackoverflow gdzie ktoś zadał identyczne pytanie i uzyskał 5+ odpowiedzi z gotowym kodem po prostu wybierz któreś i zaimplementuj u siebie