Cel mai bun răspuns
Sintaxă:
fileObject.seek(offset[, whence])
- offset – Aceasta este poziția indicatorului de citire / scriere din fișier.
- de unde – Acesta este opțional și implicit la 0, ceea ce înseamnă poziționarea absolută a fișierului, alte valori sunt 1, ceea ce înseamnă căutare în raport cu poziția curentă și 2 înseamnă căutare în raport cu sfârșitul fișierului.
Ex –
Sample.txt:
Assuming that "Sample.txt" file contains following text:
This is 1st line
This is 2nd line
This is 3rd line
This is 4th line
This is 5th line
Program Python:
# Open a file
fo = open("Sample.txt", "r+")
print ("Name of the file: ", Sample.name)
line = fo.readlines()
print ("Read Line: \%s" \% (line))
# Again set the pointer to the beginning
fo.seek(0, 0)
line = fo.readline()
print ("Read Line: \%s" \% (line))
# Close opened file
fo.close()
Ieșire:
Name of the file: Sample.txt
Read Line: ["This is 1st line\n", "This is 2nd line\n", "This is 3rd line\n", "This is 4th line\n", "This is 5th line"]
Read Line: This is 1st line
Sper că acest lucru vă ajută …
Vă mulțumesc 🙂
Răspundeți
să presupunem că ați deschis un fișier pentru a citi (sau a scrie, conceptul rămâne același).
fh = open („foo.txt”, „r”)
și ați folosit f.readline () pentru a citi fișierul. Gândiți-vă la un cursor care se află într-o anumită poziție în fișier. de exemplu, când tocmai ați deschis un fișier de citit, poziția cursorului este 0. Când facem o readline (), poziția se schimbă.
Încercați acest lucru:
>>> fh=open(“foo.txt”, “r”)
>>> fh.read()
>>> fh.read()
‘’
Când rulați linia4, nimic este afisat. Acest lucru se datorează faptului că după rularea liniei 2, cursorul a trecut deja până la sfârșitul fișierului. nu mai este nimic de afișat.
Este posibil să schimbați poziția cursorului utilizând metoda seek (). În cea mai simplă întrebuințare a căutării (), utilizați
>>> fh.seek(0)
>>> fh.read()
Conținutul fișierului va fi afișat din nou. Ceea ce s-a întâmplat aici este că cursorul a fost mutat la începutul fișierului.
seek () ia 2 parametri.
- resetați poziția la offsetul de octeți dat
- de unde- oferă poziția de decalare în raport cu 0-start, 1-current position sau 2 – end.
valoarea implicită a celui de-al doilea parametru este 0. Valoarea offset este obligatorie în timp ce apelați această funcție.