Python readline() Metode med eksempler

โšก Smart opsummering

Python readline-metoden lรฆser en enkelt linje fra en fil ad gangen. Lessons cover syntaks, valgfrit stรธrrelsesargument, looping gennem linjer, ydeevne og sammenligning med lรฆselinjer og iteration.

  • ๐Ÿ“„ Lรฆs รฉn linje: file.readline() returnerer den nรฆste linje inklusive linjeskifttegnet til sidst.
  • ๐Ÿ“ Stรธrrelsesargument: Giv en bytegrรฆnse til readline for at begrรฆnse, hvor meget af linjen der returneres.
  • ๐Ÿ” Loop-filer: Kombiner readline med while-lรธkker, eller iterer filobjektet for hukommelsesvenlige lรฆsninger.
  • ๐Ÿ“š lรฆselinje vs. lรฆselinjer: readline lรฆser รฉn linje; readlines indlรฆser hver linje i en liste pรฅ รฉn gang.
  • โšก Hukommelsestip: For store filer, iterer linje for linje i stedet for at indlรฆse hele filen i hukommelsen.
  • ๐Ÿค– AI-hjรฆlpere: AI-assistenter genererer lรฆselinjemรธnstre, foreslรฅr kontekstadministratorer og refaktorerer I/O-kode hurtigt.

Python readline-metoden

Hvad er Python lรฆselinje?

Python readline() er en filmetode, der hjรฆlper med at lรฆse en hel linje fra den givne fil. Den har en efterfรธlgende nylinje ("\n") i slutningen af โ€‹โ€‹den returnerede streng.

Du kan ogsรฅ gรธre brug af stรธrrelsesparameteren til at fรฅ en bestemt lรฆngde af linjen. Stรธrrelsesparameteren er valgfri, og som standard vil hele linjen blive returneret.

Flow af readline() er godt forstรฅet i skรฆrmbilledet vist nedenfor:

Du har en fil demo.txt, og nรฅr readline() bruges, returnerer den den allerfรธrste linje fra demo.txt.


Python readline
Sรฅdan fungerer readline

Karakteristisk for Python readline()

Her er vigtige kendetegn ved Python lรฆs linje:

  • Python readline()-metoden lรฆser kun รฉn hel linje fra den angivne fil.
  • Den tilfรธjer en ny linje ("\n") i slutningen af โ€‹โ€‹linjen.
  • Hvis du รฅbner filen i normal lรฆsetilstand, vil readline() returnere strengen til dig.
  • Hvis du รฅbner filen i binรฆr tilstand, vil readline() returnere dit binรฆre objekt.
  • Du kan give stรธrrelse som et argument til readline(), og det vil give dig linjen i henhold til den angivne stรธrrelse inklusive den nye linje. Som standard er stรธrrelsen 0, og det returnerer hele linjen.

Syntaks

file.readline(size)

Driftsparametre

stรธrrelse: (valgfrit) Her kan du angive tallet, en heltalsvรฆrdi til readline(). Den fรฅr strengen i den stรธrrelse. Som standard er vรฆrdien af โ€‹โ€‹stรธrrelse -1, og derfor returneres hele strengen.

Returvรฆrdi

Readline()-metoden returnerer linjen fra den angivne fil.

Eksempel: For at lรฆse den fรธrste linje ved hjรฆlp af readline()

Her vil du forstรฅ, hvordan man lรฆser linjen fra filen givet ved hjรฆlp af readline() metoden. Vi kommer til at gรธre brug af demo.txt-filen her for at lรฆse indholdet.

Filindholdet i demo.txt er som fรธlger:

demo.txt

Testing - FirstLine
Testing - SecondLine
Testing - Third Line
Testing - Fourth Line
Testing - Fifth Line

Fรธlgende er trinene til at lรฆse en linje fra filen demo.txt.

Trin 1) ร…bn fรธrst filen ved at bruge file open() metoden, som vist nedenfor:

myfile = open("demo.txt", "r")

Open()-metoden tager den fรธrste parameter som navnet pรฅ filen, og den anden parameter er tilstanden, mens du vil รฅbne. Lige nu har vi brugt "r", hvilket betyder, at filen รฅbnes i lรฆsetilstand.

Trin 2) Brug readline() metoden til at lรฆse linjen fra filen demo.txt som vist nedenfor:

myline = myfile.readline()

Trin 3) Den lรฆste linje gemmes inde i myline. Lad os nu printe linjen for at se detaljerne:

print(myline)

Trin 4) Nรฅr lรฆsningen er fรฆrdig, skal du lukke filen ved hjรฆlp af close() metoden som vist nedenfor:

myfile.close()

Hele koden er som fรธlger:

myfile = open("demo.txt", "r")
myline = myfile.readline()
print(myline)
myfile.close()

Output:

Testing - FirstLine

Eksempel: Brug af stรธrrelsesargument i readline()

Vi har set, hvordan man lรฆser hele linjen fra den angivne fil. Du kan ogsรฅ bruge stรธrrelsesparameteren til kun at fรฅ den nรธdvendige lรฆngde af linjen.

Det givne eksempel har stรธrrelsesparameteren angivet som 10. Den fรธrste linje hentes, og den returnerer linjen med tegn fra 0 til 10.

Vi kommer til at gรธre brug af demo.txt fil, der blev brugt tidligere. Gem filen demo.txt og brug placeringen af โ€‹โ€‹demo.txt inde i open()-funktionen.

myfile = open("demo.txt", "r")
myline = myfile.readline(10)
print(myline)
myfile.close()

Output:

Testing -

Grundlรฆggende fil IO ind Python

Den grundlรฆggende fil IO in Python at รฅbne en fil til lรฆsning eller skrivning er den indbyggede open() funktion. De to vigtige argumenter, der gรฅr i funktionen open() er filstien, som er en streng, og den tilstand, der angiver, om filen er beregnet til lรฆsning eller skrivning. Modusargumentet er en streng.

Syntaks:

open("file path", "mode")

Fรธlgende er de tilgรฆngelige tilstande, der kan bruges med open() metoden:

tilstand Beskrivelse
R Dette vil รฅbne() filen i lรฆsetilstand.
W Ved hjรฆlp af w kan du skrive til filen.
a Brug af en med open() vil รฅbne filen i skrivetilstand, og indholdet vil blive tilfรธjet til sidst.
rb rb-tilstanden รฅbner filen til binรฆr datalรฆsning.
wb Wb-tilstanden รฅbner filen til skrivning af binรฆre data.

Da vi har brug for filen til lรฆsning, vil vi gรธre brug af lรฆsetilstand, dvs. (r).

Lรฆs en fil linje for linje ind Python

Readline()-metoden hjรฆlper med at lรฆse kun รฉn linje ad gangen, og den returnerer den fรธrste linje fra den angivne fil.

Her vil vi gรธre brug af readline() til at lรฆse alle linjerne fra den angivne fil. Filen, der vil lรฆse, er demo.txt. Indholdet af filen er:

Gem filen demo.txt og brug placeringen af โ€‹โ€‹demo.txt inde i open()-funktionen.

Testing - FirstLine
Testing - SecondLine
Testing - Third Line
Testing - Fourth Line
Testing - Fifth Line

Brug af readline() inde i while-loop vil sรธrge for at lรฆse alle linjerne i filen demo.txt.

myfile = open("demo.txt", "r")
myline = myfile.readline()
while myline:
    print(myline)
    myline = myfile.readline()
myfile.close()   

Output:

Testing - FirstLine
Testing - SecondLine
Testing - Third Line
Testing - Fourth Line
Testing - Fifth Line

Hvordan lรฆser man alle linjer i en fil pรฅ รฉn gang?

For at lรฆse alle linjerne fra en given fil, kan du gรธre brug af Python readlines() funktion. Specialiteten af Python readlines() funktion er at lรฆse alt indholdet fra den givne fil og gemme outputtet pรฅ en liste.

Readlines()-funktionen lรฆser indtil slutningen af โ€‹โ€‹filen, gรธr brug af readline()-funktionen internt og returnerer en liste med alle linjerne lรฆst fra filen.

Her er et fungerende eksempel til at lรฆse alle linjerne fra filen ved hjรฆlp af readlines().

Filen, som vi skal bruge til at lรฆse, er test.txt. Indholdet af filen test.txt er som fรธlger:

test.txt: Gem filen test.txt og brug placeringen af โ€‹โ€‹test.txt inde i open()-funktionen.

Line No 1
Line No 2
Line No 3
Line No 4
Line No 5
myfile = open("test.txt", "r")
mylist = myfile.readlines()
print(mylist)
myfile.close()

Output:

['Line No 1\n', 'Line No 2\n', 'Line No 3\n', 'Line No 4\n', 'Line No 5']

Hvordan lรฆser man en fil linje for linje ved hjรฆlp af for loop?

Fรธlgende er trinene til at lรฆse en linje for linje fra en given fil ved hjรฆlp af for-loop:

Trin 1) ร…bn fรธrst filen vha Python open() funktion i lรฆsetilstand.

Trin 2) Open()-funktionen returnerer en filbehandler. Brug filhรฅndteringen inde i din for-loop og lรฆs alle linjerne fra den givne fil linje for linje.

Trin 3) Nรฅr du er fรฆrdig, skal du lukke filbehandleren ved hjรฆlp af close()-funktionen.

Her er et fungerende eksempel pรฅ brug af for-loop til at lรฆse linje for linje fra en given fil. Filen, som vi skal bruge her, er test.txt.

Indholdet af test.txt er som vist nedenfor. Gem filen test.txt og brug placeringen af โ€‹โ€‹test.txt i en open() funktion.

Line No 1
Line No 2
Line No 3
Line No 4
Line No 5
myfile = open("test.txt", "r")
for line in myfile:
    print(line)
myfile.close()   

Output:

Line No 1
Line No 2
Line No 3
Line No 4
Line No 5

Hvordan lรฆser man en fil linje for linje ved hjรฆlp af en while-lรธkke?

Du kan gรธre brug af en while-lรธkke og lรฆse indholdet fra den givne fil linje for linje. For at gรธre det skal du fรธrst รฅbne filen i lรฆsetilstand ved hjรฆlp af funktionen open(). Filbehandleren vendte tilbage fra open(), brug den inde mens โ€“loop at lรฆse linjerne.

Python readline()-funktionen bruges inde i while-loop til at lรฆse linjerne. I tilfรฆlde af for-loop afsluttes lรธkken, nรฅr slutningen af โ€‹โ€‹filen stรธdes pรฅ. Men det samme er ikke tilfรฆldet med en while-loop, og du skal holde et tjek for at se, om filen er fรฆrdiglรฆst. Sรฅ nรฅr readline()-funktionen returnerer en tom streng, kan du bruge break-sรฆtningen til at afslutte fra while โ€“loop.

Her er et fungerende eksempel pรฅ at lรฆse en fil linje for linje ved hjรฆlp af en while-loop.

Filen, som vi skal bruge, er test.txt. Gem filen test.txt og brug placeringen af โ€‹โ€‹test.txt i open()-funktionen.

Line No 1
Line No 2
Line No 3
Line No 4
Line No 5
myfile = open("test.txt", "r")
while myfile:
    line  = myfile.readline()
    print(line)
    if line == "":
        break
myfile.close() 

Output:

Line No 1
Line No 2
Line No 3
Line No 4
Line No 5

Ofte Stillede Spรธrgsmรฅl

Den returnerer en tom streng.ping med while line := f.readline() stopper den rene funktion, nรฅr read returnerer den tomme streng, hvilket signalerer slutningen af โ€‹โ€‹filen.

Ja. AI-assistenter som Copilot foreslรฅr med statements, bytter lรฆselinjer for iteration og registrerer ikke-lukkede filer. De forklarer kodningsproblemer og foreslรฅr asynkron I/O til store filer.

AI-vรฆrktรธjer fortolker FileNotFoundError, PermissionError og UnicodeDecodeError og foreslรฅr derefter rettelser sรฅsom eksplicitte kodninger, absolutte stier eller kontekstadministratorer.

readline lรฆser รฉn linje ad gangen og returnerer en streng. readlines lรฆser hver linje pรฅ รฉn gang og returnerer en liste over strenge, hvilket bruger mere hukommelse pรฅ store filer.

Det begrรฆnser antallet af bytes, der lรฆses fra linjen. Funktionen stopper stadig ved en ny linje, hvis en findes, fรธr bytegrรฆnsen er nรฅet.

Bruges til linje i fil: i stedet for readlines. Python streamer filen dovent, keeping lavt hukommelsesforbrug, selv for logfiler pรฅ flere gigabyte.

Ja. with-sรฆtningen garanterer, at filen lukkes, selvom der opstรฅr en undtagelse, hvilket forhindrer ressourcelรฆkager og beskadigelse af skriveoperationer.

Send kodningsargumentet: open('file.txt', encoding='utf-8โ€ฒ). Uden det, Python bruger platformens standardvรฆrdi, hvilket forรฅrsager UnicodeDecodeError pรฅ ikke-ASCII-indhold.

Opsummer dette indlรฆg med: