Python readline() metoda s primjerima

⚡ Pametni sažetak

Python Metoda readline čita jedan redak iz datoteke odjednom. Lesssintaksa pokrivanja, opcionalni argument veličine, looping kroz linije, performanse i usporedbu s readlinesima i iteracijom.

  • 📄 Pročitajte jednu rečenicu: file.readline() vraća sljedeći redak uključujući znak za novi redak na kraju.
  • 📏 Argument veličine: Proslijedite ograničenje bajtova funkciji readline kako biste ograničili koliko se retka vraća.
  • 🔁 Datoteke petlje: Kombinirajte readline s while petljama ili iterirajte objekt datoteke za čitanja prilagođena memoriji.
  • 📚 readline vs readlines: readline čita jedan redak; readlines učitava svaki redak u listu odjednom.
  • Savjet za pamćenje: Za velike datoteke, ponavljajte redak po redak umjesto da učitavate cijelu datoteku u memoriju.
  • 🤖 AI pomagači: AI asistenti generiraju obrasce za čitanje, predlažu upravitelje konteksta i brzo refaktoriraju I/O kod.

Python Metoda čitanja linije

Što je Python readline?

Python red za čitanje () je metoda datoteke koja pomaže u čitanju jednog cijelog retka iz date datoteke. Ima novi redak na kraju ("\n") na kraju vraćenog niza.

Također možete koristiti parametar veličine da biste dobili određenu duljinu linije. Parametar veličine nije obavezan i prema zadanim postavkama vraća se cijeli redak.

Tijek readline() dobro je razumljiv na snimci zaslona prikazanoj u nastavku:

Imate datoteku demo.txt, a kada se koristi readline(), ona vraća prvi redak iz demo.txt.


Python readline
Kako radi readline

Karakteristično za Python red za čitanje ()

Ovdje su važne karakteristike Python pročitaj redak:

  • Python readline() metoda čita samo jedan cijeli redak iz date datoteke.
  • Dodaje novi redak ("\n") na kraj retka.
  • Ako otvorite datoteku u normalnom načinu čitanja, readline() će vam vratiti niz.
  • Ako datoteku otvorite u binarnom načinu, readline() će vam vratiti binarni objekt.
  • Možete dati veličinu kao argument za readline(), i on će vam dati redak prema danoj veličini uključujući novi red. Prema zadanim postavkama, veličina je 0 i vraća cijeli redak.

Sintaksa

file.readline(size)

Parametri

Veličina: (neobavezno) Ovdje možete navesti broj, cjelobrojnu vrijednost za readline(). Dobit će niz te veličine. Prema zadanim postavkama, vrijednost veličine je -1, pa se stoga vraća cijeli niz.

Povratna vrijednost

Metoda readline() vraća redak iz zadane datoteke.

Primjer: Za čitanje prvog reda pomoću readline()

Ovdje ćemo razumjeti kako pročitati redak iz datoteke dane metodom readline(). Ovdje ćemo koristiti datoteku demo.txt za čitanje sadržaja.

Sadržaj datoteke demo.txt je sljedeći:

demo.txt

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

Slijede koraci za čitanje retka iz datoteke demo.txt.

Korak 1) Prvo otvorite datoteku pomoću metode file open(), kao što je prikazano u nastavku:

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

Metoda open() uzima prvi parametar kao naziv datoteke, a drugi parametar je način dok želite otvoriti. Upravo sada koristimo "r", što znači da će se datoteka otvoriti u načinu čitanja.

Korak 2) Koristite metodu readline() za čitanje retka iz datoteke demo.txt kao što je prikazano u nastavku:

myline = myfile.readline()

Korak 3) Pročitana linija pohranjuje se unutar moje linije. Ispišimo sada redak da vidimo detalje:

print(myline)

Korak 4) Nakon što je čitanje gotovo, zatvorite datoteku koristeći close() metodu kao što je prikazano u nastavku:

myfile.close()

Cijeli kod je sljedeći:

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

Izlaz:

Testing - FirstLine

Primjer: korištenje argumenta veličine u readline()

Vidjeli smo kako pročitati cijeli red iz date datoteke. Također možete koristiti parametar veličine kako biste dobili samo potrebnu duljinu linije.

Navedeni primjer ima parametar veličine zadan kao 10. Prvi redak će biti dohvaćen i vratit će redak sa znakovima od 0 do 10.

Iskoristit ćemo demo.txt datoteku koja je ranije korištena. Spremite datoteku demo.txt i upotrijebite lokaciju demo.txt unutar funkcije open().

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

Izlaz:

Testing -

Osnovna datoteka IO in Python

Osnovna datoteka IO in Python za otvaranje datoteke za čitanje ili pisanje ugrađena je funkcija open(). Dva važna argumenta koja idu u funkciju open() su put datoteke, koji je niz, i način koji određuje je li datoteka namijenjena za čitanje ili pisanje. Argument načina je niz.

Sintaksa:

open("file path", "mode")

Slijede dostupni načini koji se mogu koristiti s metodom open():

način Description
R Ovo će otvoriti () datoteku u načinu čitanja.
W Koristeći w, možete pisati u datoteku.
a Korištenje s open() otvorit će datoteku u načinu pisanja, a sadržaj će biti dodan na kraju.
rb Rb način će otvoriti datoteku za čitanje binarnih podataka.
wb Wb mod će otvoriti datoteku za pisanje binarnih podataka.

Budući da nam je datoteka potrebna za čitanje, koristit ćemo način čitanja, tj. (r).

Pročitajte datoteku redak po redak Python

Metoda readline() pomaže u čitanju samo jednog reda u isto vrijeme i vraća prvi redak iz zadane datoteke.

Ovdje ćemo koristiti readline() za čitanje svih redaka iz date datoteke. Datoteka koja će se čitati je demo.txt. Sadržaj datoteke je:

Spremite datoteku demo.txt i upotrijebite lokaciju demo.txt unutar funkcije open().

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

Korištenje readline() unutar while-petlje pobrinut će se za čitanje svih redaka prisutnih u datoteci demo.txt.

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

Izlaz:

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

Kako pročitati sve retke u datoteci odjednom?

Da biste pročitali sve retke iz date datoteke, možete koristiti Python funkcija readlines(). Specijalnost od Python funkcija readlines() je čitati sav sadržaj iz dane datoteke i spremati izlaz na popis.

Funkcija readlines() čita do kraja datoteke, koristeći interno funkciju readline() i vraća popis sa svim redcima pročitanim iz datoteke.

Ovdje je radni primjer za čitanje svih redaka iz datoteke pomoću readlines().

Datoteka koju ćemo koristiti za čitanje je test.txt. Sadržaj datoteke test.txt je sljedeći:

test.txt: Spremite datoteku test.txt i upotrijebite lokaciju test.txt unutar funkcije open().

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

Izlaz:

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

Kako čitati datoteku red po red koristeći for petlju?

Slijede koraci za čitanje redaka po redaka iz zadane datoteke pomoću for-petlje:

Korak 1) Prvo otvorite datoteku pomoću Python funkcija open() u modu čitanja.

Korak 2) Funkcija open() vratit će rukovatelj datotekom. Upotrijebite rukovatelj datotekama unutar vaše for-petlje i pročitajte sve retke iz dane datoteke redak po redak.

Korak 3) Kada završite, zatvorite rukovatelj datotekama pomoću funkcije close().

Ovdje je radni primjer korištenja for-petlje za čitanje redak po redak iz zadane datoteke. Datoteka koju ćemo ovdje koristiti je test.txt.

Sadržaj datoteke test.txt prikazan je u nastavku. Spremite datoteku test.txt i upotrijebite lokaciju test.txt unutar funkcije open().

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

Izlaz:

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

Kako čitati datoteku red po red koristeći while petlju?

Možete koristiti while petlju i čitati sadržaj iz zadane datoteke redak po redak. Da biste to učinili, prvo otvorite datoteku u načinu čitanja pomoću funkcije open(). Rukovatelj datoteka vraćen iz open(), koristite ga unutra while – petlja čitati retke.

Python readline() funkcija se koristi unutar while-petlje za čitanje redaka. U slučaju for-petlje, petlja se prekida kada se naiđe na kraj datoteke. Ali isto nije slučaj s while-petljom, i morate stalno provjeravati je li datoteka završila s čitanjem. Dakle, kada funkcija readline() vrati prazan niz, možete upotrijebiti naredbu break za prekid iz petlje while.

Ovdje je radni primjer za čitanje datoteke redak po redak pomoću while-petlje.

Datoteka koju ćemo koristiti je test.txt. Spremite datoteku test.txt i upotrijebite lokaciju test.txt unutar funkcije open().

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

Izlaz:

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

Pitanja i odgovori

Vraća prazan niz. Looping S while line := f.readline() se čisto zaustavlja kada čitanje vrati prazan niz, signalizirajući kraj datoteke.

Da. AI asistenti poput Copilota predlažu s naredbama, zamjenjuju linije za čitanje za iteraciju i otkrivaju nezatvorene datoteke. Objašnjavaju probleme s kodiranjem i predlažu asinkroni ulazno/izlazni rad za velike datoteke.

Alati umjetne inteligencije interpretiraju FileNotFoundError, PermissionError i UnicodeDecodeError, a zatim predlažu ispravke poput eksplicitnih kodiranja, apsolutnih putanja ili upravitelja konteksta.

readline čita redak po redak, vraćajući niz znakova. readlines čita svaki redak odjednom i vraća popis nizova znakova, što koristi više memorije na velikim datotekama.

Ograničava broj bajtova koji se čitaju iz retka. Funkcija se i dalje zaustavlja na novom retku ako se naiđe na njega prije nego što se dosegne ograničenje bajtova.

Koristite za liniju u datoteci: umjesto za čitanje linija. Python lijeno struji datoteku, keeping niska upotreba memorije čak i za datoteke zapisnika od više gigabajta.

Da. Naredba with jamči zatvaranje datoteke čak i ako se dogodi iznimka, sprječavajući curenje resursa i oštećenje operacija pisanja.

Proslijedite argument kodiranja: open('file.txt', encoding='utf-8′). Bez njega, Python koristi zadanu platformu, što uzrokuje UnicodeDecodeError na sadržaju koji nije ASCII.

Sažmite ovu objavu uz: