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.
- resetuje pozici na daný byte offset
- 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.