Būtinos sąlygos:
„Python“ teikia integruotas funkcijas, skirtas failams kurti, rašyti ir skaityti. Yra dviejų tipų failai, kuriuos galima tvarkyti naudojant python: įprasti tekstiniai failai ir dvejetainiai failai (rašomi dvejetaine kalba, 0 ir 1). Šiame straipsnyje mes analizuosime failo skaitymą eilutė po eilutės.
1 būdas: perskaitykite failą eilutę po eilutės naudodami readlines ()
readlines() naudojamas norint perskaityti visas eilutes vienu metu ir grąžinti jas kaip kiekvieną eilutę kaip eilutės elementą sąraše. Šią funkciją galima naudoti mažiems failams, nes ji nuskaito visą failo turinį į atmintį, tada padalija jį į atskiras eilutes. Galime kartoti sąrašą ir pašalinti naujos eilutės simbolį „ “ naudodami funkciją strip().
Pavyzdys:
Python3
# Python code to> # demonstrate readlines()> L>=> [>'Geeks
'>,>'for
'>,>'Geeks
'>]> # writing to file> file1>=> open>(>'myfile.txt'>,>'w'>)> file1.writelines(L)> file1.close()> # Using readlines()> file1>=> open>(>'myfile.txt'>,>'r'>)> Lines>=> file1.readlines()> count>=> 0> # Strips the newline character> for> line>in> Lines:> >count>+>=> 1> >print>(>'Line{}: {}'>.>format>(count, line.strip()))> |
>
>
Išvestis:
Line1: Geeks Line2: for Line3: Geeks>
Duoto Python kodo laiko sudėtingumas yra O(n), kur n yra bendras failo eilučių skaičius
Kodo pagalbinės erdvės sudėtingumas yra O(n), kur n yra bendras failo eilučių skaičius.
2 būdas: perskaitykite failą eilutę po eilutės naudodami readline ()
funkcija readline() nuskaito failo eilutę ir grąžina ją eilutės forma. Tam reikalingas parametras n, kuris nurodo didžiausią nuskaitomų baitų skaičių. Tačiau neskaito daugiau nei vienos eilutės, net jei n viršija eilutės ilgį. Tai bus efektyvu, kai nuskaitysite didelį failą, nes užuot paėmę visus duomenis vienu kartu, jis paima eilutę po eilutės. readline() grąžina kitą failo eilutę, kurios pabaigoje yra naujos eilutės simbolis. Be to, pasiekus failo pabaigą, ji grąžins tuščią eilutę.
Pavyzdys:
ŽINGSNIS PAS ŽINGSNIS:
- Sukurkite sąrašą L su trimis eilutės elementais su naujos eilutės simboliais.
- Atidarykite failą pavadinimu myfile.txt rašymo režimu ir priskirkite jį kintamajam file1.
- Sąrašo L turinį įrašykite į failą naudodami failo objekto failo1 metodą writelines().
- Uždarykite failo objektą file1 naudodami close() metodą.
- Atidarykite failą pavadinimu myfile.txt skaitymo režimu ir priskirkite jį kintamajam file1.
- Inicijuokite kintamųjų skaičių iki 0.
- Pradėkite begalinę kilpą.
- Padidinkite kintamųjų skaičių 1 kiekvienoje ciklo iteracijoje.
- Perskaitykite kitą eilutę iš failo objekto file1 naudodami readline() metodą ir priskirkite ją kintamojo eilutei.
- Patikrinkite, ar eilutės kintamasis tuščias. Jei jis tuščias, tai reiškia, kad pasiektas failo pabaiga. Tokiu atveju išeikite iš ciklo naudodami teiginį break.
- Išspausdinkite skaičiaus reikšmę ir eilutės turinį naudodami eilučių klasės format() metodą. Strip() metodas naudojamas naujos eilutės simboliui pašalinti eilutės pabaigoje.
- Uždarykite failo objektą file1 naudodami close() metodą.
Python3
# Python program to> # demonstrate readline()> L>=> [>'Geeks
'>,>'for
'>,>'Geeks
'>]> # Writing to a file> file1>=> open>(>'myfile.txt'>,>'w'>)> file1.writelines((L))> file1.close()> # Using readline()> file1>=> open>(>'myfile.txt'>,>'r'>)> count>=> 0> while> True>:> >count>+>=> 1> ># Get next line from file> >line>=> file1.readline()> ># if line is empty> ># end of file is reached> >if> not> line:> >break> >print>(>'Line{}: {}'>.>format>(count, line.strip()))> file1.close()> |
>
kokio dydžio mano monitorius
>
Išvestis:
Line1 Geeks Line2 for Line3 Geeks>
3 būdas: perskaitykite failą eilutę po eilutės naudodami for ciklus
Pakartojamą objektą grąžina funkcija open() atidarant failą. Šis paskutinis failo skaitymo būdas po eilutės apima kartojimą per failo objektą cikle. Tai darydami pasinaudojame integruota Python funkcija, leidžiančia netiesiogiai kartoti failo objektą naudojant for kilpą kartu su iteruojamu objektu. Šis metodas reikalauja mažiau kodo eilučių, o tai visada yra geriausia praktika, kurią verta laikytis.
Pavyzdys:
Python3
# Python program to> # demonstrate reading files> # using for loop> L>=> [>'Geeks
'>,>'for
'>,>'Geeks
'>]> # Writing to file> file1>=> open>(>'myfile.txt'>,>'w'>)> file1.writelines(L)> file1.close()> # Opening file> file1>=> open>(>'myfile.txt'>,>'r'>)> count>=> 0> # Using for loop> print>(>'Using for loop'>)> for> line>in> file1:> >count>+>=> 1> >print>(>'Line{}: {}'>.>format>(count, line.strip()))> # Closing files> file1.close()> |
>
>
Išvestis:
Using for loop Line1: Geeks Line2: for Line3: Geeks>
4 būdas: perskaitykite failą eilutę po eilutės naudodami ciklo ir sąrašo supratimą
Sąrašo supratimas susideda iš skliaustų, kuriuose yra išraiška, kuri vykdoma kiekvienam elementui kartu su for ciklu, kad būtų kartojamas kiekvienas elementas. Čia mes perskaitysime tekstinį failą ir išspausdinsime neapdorotus duomenis, įskaitant naują eilutės simbolį, kitoje išvestyje, pašalinome visus naujus eilutės simbolius iš sąrašo.
Pavyzdys
Python3
with>open>(>'myfile.txt'>) as f:> >lines>=> [line>for> line>in> f]> print>(lines)> # removing the new line characters> with>open>(>'myfile.txt'>) as f:> >lines>=> [line.rstrip()>for> line>in> f]> print>(lines)> |
>
>
Išvestis:
['Geeks ', 'For ', 'Geeks'] ['Geeks', 'For', 'Geeks']>
Su pareiškimu
Taikant aukščiau pateiktus metodus, kiekvieną kartą atidarius failą reikia jį aiškiai uždaryti. Jei pamirštama uždaryti failą, tai gali sukelti keletą kodo klaidų, t. y. daugelis failų pakeitimų neįsigalioja tol, kol failas tinkamai neuždaromas. Norėdami to išvengti, galite naudoti teiginį. Teiginys With Python naudojamas išimčių tvarkymui, kad kodas būtų švaresnis ir lengviau skaitomas. Tai supaprastina bendrų išteklių, pvz., failų srautų, valdymą. Stebėkite šį kodo pavyzdį, kaip naudojant teiginį su kodas tampa švaresnis. Nereikia iškviesti file.close() naudojant su sakiniu. Pats pareiškimas užtikrina tinkamą išteklių įsigijimą ir išleidimą.
Pavyzdys:
Python3
# Python program to> # demonstrate with> # statement> L>=> [>'Geeks
'>,>'for
'>,>'Geeks
'>]> # Writing to file> with>open>(>'myfile.txt'>,>'w'>) as fp:> >fp.writelines(L)> # using readlines()> count>=> 0> print>(>'Using readlines()'>)> with>open>(>'myfile.txt'>) as fp:> >Lines>=> fp.readlines()> >for> line>in> Lines:> >count>+>=> 1> >print>(>'Line{}: {}'>.>format>(count, line.strip()))> # Using readline()> count>=> 0> print>(>'
Using readline()'>)> with>open>(>'myfile.txt'>) as fp:> >while> True>:> >count>+>=> 1> >line>=> fp.readline()> >if> not> line:> >break> >print>(>'Line{}: {}'>.>format>(count, line.strip()))> # Using for loop> count>=> 0> print>(>'
Using for loop'>)> with>open>(>'myfile.txt'>) as fp:> >for> line>in> fp:> >count>+>=> 1> >print>(>'Line{}: {}'>.>format>(count, line.strip()))> |
trinarinis operatorius java
>
>
Išvestis:
Using readlines() Line1: Geeks Line2: for Line3: Geeks Using readline() Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks>