Jeżeli chodzi o seek()
nie ma tam zbyt wiele się martwić.
Przede wszystkim przydaje się przy operowaniu na otwartym pliku.
Należy zauważyć, że jego składnia jest następująca:
fp.seek(offset, from_what)
gdzie fp
jest wskaźnik pliku, z którym pracujesz; offset
oznacza, o ile pozycji się przesuniesz; from_what
określa Twój punkt odniesienia:
- 0 : oznacza, że punktem odniesienia jest początek pliku
- 1 : oznacza, że punktem odniesienia jest bieżąca pozycja pliku
- 2 : oznacza, że punktem odniesienia jest koniec pliku
jeśli pominięte, from_what
domyślnie 0.
Nigdy nie zapominaj, że podczas zarządzania plikami zawsze będzie miejsce w tym pliku, nad którym aktualnie pracujesz. Po otwarciu ta pozycja jest początkiem pliku, ale podczas pracy z nim możesz przejść do przodu.
seek
przyda ci się, gdy będziesz musiał przejść przez walk
ten otwarty plik, tak jak ścieżka, do której podróżujesz.
os.SEEK_SET
,os.SEEK_CUR
ios.SEEK_END
zamiast magii liczb0
,1
i2
, odpowiednio.Po otwarciu pliku system wskazuje początek pliku. Każde przeczytanie lub napisanie nastąpi od samego początku. A
seek()
porusza operacja że wskaźnik do innej części pliku, dzięki czemu można czytać i pisać w tym miejscu.Tak więc, jeśli chcesz przeczytać cały plik, ale pominąć pierwsze 20 bajtów, otwórz plik,
seek(20)
aby przejść do miejsca, w którym chcesz rozpocząć czytanie, a następnie kontynuuj czytanie pliku.Lub powiedz, że chcesz czytać co 10 bajt, możesz napisać pętlę, która
seek(9, 1)
(przesuwa o 9 bajtów do przodu w stosunku do bieżących pozycji),read(1)
(czyta jeden bajt), powtórzy.źródło
seek
Funkcja spodziewać się dodatkowych przesunięcie w bajtach.Przykład pliku Ascii:
Więc jeśli masz plik tekstowy z następującą zawartością:
simple.txt
Możesz przeskoczyć o 1 bajt, aby pominąć pierwszy znak w następujący sposób:
Przykład zbierania szerokości pliku binarnego:
źródło
W przypadku łańcuchów zapomnij o używaniu WHENCE: użyj f.seek (0), aby ustawić na początku pliku i f.seek (len (f) +1), aby ustawić go na końcu pliku. Użyj open (plik, "r +"), aby czytać / pisać w dowolnym miejscu pliku. Jeśli użyjesz „a +”, będziesz mógł pisać (dodawać) tylko na końcu pliku, niezależnie od tego, gdzie ustawisz kursor.
źródło