Mengenai seek()
tidak terlalu banyak yang perlu dikhawatirkan.
Pertama-tama, ini berguna saat mengoperasikan file yang terbuka.
Penting untuk diperhatikan bahwa sintaksnya adalah sebagai berikut:
fp.seek(offset, from_what)
di mana fp
penunjuk file yang Anda gunakan; offset
berarti berapa banyak posisi yang akan Anda pindahkan; from_what
tentukan titik acuan Anda:
- 0 : berarti titik referensi Anda adalah awal file
- 1 : Berarti titik referensi Anda adalah posisi file saat ini
- 2 : artinya titik referensi Anda adalah akhir file
jika dihilangkan, from_what
defaultnya adalah 0.
Jangan pernah lupa bahwa saat mengelola file, akan selalu ada posisi di dalam file yang sedang Anda kerjakan. Saat baru dibuka, posisi itu adalah awal file, tetapi saat Anda mengerjakannya, Anda dapat maju.
seek
akan berguna bagi Anda saat Anda perlu menggunakan walk
file yang terbuka itu, seperti jalur yang Anda tuju.
os.SEEK_SET
,os.SEEK_CUR
danos.SEEK_END
bukan nomor ajaib0
,1
dan2
, masing-masing.Saat Anda membuka file, sistem akan menunjuk ke awal file. Setiap membaca atau menulis yang Anda lakukan akan terjadi sejak awal. Sebuah
seek()
operasi memindahkan penunjuk tersebut ke bagian lain dari file sehingga Anda bisa membaca atau menulis di tempat itu.Jadi, jika Anda ingin membaca seluruh file tetapi melewati 20 byte pertama, buka file tersebut,
seek(20)
untuk pindah ke tempat Anda ingin mulai membaca, lalu lanjutkan dengan membaca file.Atau katakanlah Anda ingin membaca setiap 10 byte, Anda dapat menulis loop yang melakukannya
seek(9, 1)
(bergerak 9 byte ke depan relatif ke posisi saat ini),read(1)
(membaca satu byte), ulangi.sumber
The
seek
Fungsi berharap menjadi mengimbangi dalam bytes.Contoh File Ascii:
Jadi jika Anda memiliki file teks dengan konten berikut:
simple.txt
Anda dapat melompat 1 byte untuk melewati karakter pertama sebagai berikut:
Contoh file biner lebar pengumpulan:
sumber
Untuk string, lupakan tentang menggunakan WHENCE: gunakan f.seek (0) ke posisi di awal file dan f.seek (len (f) +1) ke posisi di akhir file. Gunakan open (file, "r +") untuk membaca / menulis di mana saja dalam file. Jika Anda menggunakan "a +", Anda hanya dapat menulis (menambahkan) di akhir file di mana pun Anda meletakkan kursor.
sumber