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.
- resetuje pozycję do podanego bajtu offsetu
- 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.