Jaki jest pożytek z funkcji seek () w Pythonie?


Najlepsza odpowiedź

Składnia:

fileObject.seek(offset[, whence])

  • offset – to jest pozycja wskaźnika odczytu / zapisu w pliku.
  • skąd – Jest to opcjonalne i domyślnie 0, co oznacza bezwzględne pozycjonowanie pliku, inne wartości to 1, co oznacza szukanie względem bieżącej pozycji, a 2 oznacza szukanie względem końca pliku.

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 w Pythonie:

# 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()

Wynik:

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

Mam nadzieję, że to Ci pomoże…

Dziękuję 🙂

Odpowiedź

załóżmy, że otworzyłeś plik do odczytu (lub zapisu, koncepcja pozostaje taka sama).

fh = open („foo.txt”, „r”)

i użyłeś f.readline () do odczytania pliku. Pomyśl o kursorze, który znajduje się w określonej pozycji w pliku. na przykład, gdy właśnie otworzyłeś plik do czytania, pozycja kursora wynosi 0. Kiedy wykonujemy readline (), pozycja się zmienia.

Spróbuj tego:

>>> fh=open(“foo.txt”, “r”)

>>> fh.read()

>>> fh.read()

‘’

Po uruchomieniu line4 nic jest wyświetlany. Dzieje się tak, ponieważ po uruchomieniu linii 2 kursor przeszedł już na koniec pliku. nie ma nic więcej do wyświetlenia.

Można zmienić pozycję kursora za pomocą metody seek (). W najprostszych zastosowaniach seek () użyj

>>> fh.seek(0)

>>> fh.read()

Zawartość pliku zostanie wyświetlona ponownie. To co się tutaj stało to to, że kursor został przeniesiony na początek pliku.

seek () przyjmuje 2 parametry.

  1. resetuje pozycję do podanego bajtu offsetu
  2. skąd- podaje pozycję przesunięcia względem 0-początku, 1-bieżącej pozycji lub 2-końca.

Domyślna wartość drugiego parametru to 0. Wartość offsetu jest obowiązkowa podczas wywoływania tej funkcji.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *