Jaké je použití funkce seek () v Pythonu?


Nejlepší odpověď

Syntaxe:

fileObject.seek(offset[, whence])

  • offset – toto je pozice ukazatele čtení / zápisu v souboru.
  • odkud – Toto je volitelné a výchozí hodnota je 0, což znamená absolutní umístění souboru, další hodnoty jsou 1, což znamená hledat relativně k aktuální pozici a 2 znamená hledat relativně ke konci souboru.

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

Výstup:

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

Doufám, že vám to pomůže …

Děkuji 🙂

Odpověď

Předpokládejme, že jste otevřeli soubor ke čtení (nebo zápisu, koncept zůstává stejný).

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

a ke čtení souboru jste použili f.readline (). Představte si kurzor, který je v souboru na určité pozici. například když jste právě otevřeli soubor ke čtení, pozice kurzoru je 0. Když uděláme readline (), pozice se změní.

Zkuste toto:

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

>>> fh.read()

>>> fh.read()

‘’

Když spustíte řádek4, nic je zobrazen. Je to proto, že po spuštění řádku 2 již kurzor prošel na konec souboru. není už nic k zobrazení.

Pozici kurzoru je možné změnit pomocí metody seek (). V nejjednodušším použití use () použijte

>>> fh.seek(0)

>>> fh.read()

Obsah souboru se znovu zobrazí. To, co se zde stalo, je přesunutí kurzoru na začátek souboru.

seek () má 2 parametry.

  1. resetuje pozici na daný byte offset
  2. odkud – udává pozici odsazení vzhledem k 0-počáteční, 1-aktuální pozici nebo 2-koncové.

výchozí hodnota druhého parametru je 0. Offsetová hodnota je povinná při volání této funkce.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *