Python ponuja vgrajene funkcije za ustvarjanje, pisanje in branje datotek. Python lahko obravnava dve vrsti datotek, običajne besedilne datoteke in binarne datoteke (napisane v binarnem jeziku, 0 in 1).
- Besedilne datoteke: V tej vrsti datoteke se vsaka vrstica besedila konča s posebnim znakom, imenovanim EOL (End of Line), ki je privzeto znak nove vrstice (' ') v Pythonu.
- Binarne datoteke: V tej vrsti datoteke ni terminatorja za vrstico in podatki so shranjeni po pretvorbi v strojno razumljiv binarni jezik.
Ta članek se bo osredotočil na odpiranje, zapiranje, branje in pisanje podatkov v besedilno datoteko. Tukaj bomo videli tudi, kako priti Python izpis v besedilni datoteki.
Načini dostopa do datotek
Načini dostopa urejajo vrsto možnih operacij v odprti datoteki. Nanaša se na to, kako bo datoteka uporabljena, ko se odpre. Ti načini določajo tudi lokacijo Ročaj datoteke v datoteki. Ročaj datoteke je kot kazalec, ki določa, od kod je treba podatke prebrati ali zapisati v datoteko in lahko dobimo izhod Python v besedilni datoteki.
V Pythonu obstaja 6 načinov dostopa:
- Samo za branje ('r')
- Branje in pisanje ('r+')
- Samo pisanje ('w')
- Pišite in beri ('w+')
- Samo pripni ('a')
- Pripni in preberi ('a+')
Samo za branje ('r'): Odpri besedilno datoteko za branje. Ročaj je nameščen na začetku datoteke. Če datoteka ne obstaja, prikaže V/I napako. To je tudi privzeti način, v katerem se odpre datoteka.
Branje in pisanje ('r+'): Odprite datoteko za branje in pisanje. Ročaj je nameščen na začetku datoteke. Sproži V/I napako, če datoteka ne obstaja.
Samo pisanje ('w'): Odprite datoteko za pisanje. Za obstoječe datoteke so podatki okrnjeni in prepisani. Ročaj je nameščen na začetku datoteke. Ustvari datoteko, če datoteka ne obstaja.
Pišite in beri ('w+') : Odpri datoteko za branje in pisanje. Za obstoječo datoteko so podatki skrajšani in prepisani. Ročaj je nameščen na začetku datoteke.
Samo pripni ('a') : Odprite datoteko za pisanje. Datoteka se ustvari, če ne obstaja. Ročaj je nameščen na koncu datoteke. Podatki, ki se zapisujejo, bodo vstavljeni na koncu, za obstoječimi podatki.
Pripni in preberi ('a+'): Odprite datoteko za branje in pisanje. Datoteka se ustvari, če ne obstaja. Ročaj je nameščen na koncu datoteke. Podatki, ki se zapisujejo, bodo vstavljeni na koncu, za obstoječimi podatki.
Kako se datoteke naložijo v primarni pomnilnik?
V računalniku obstajata dve vrsti pomnilnika, tj. primarni in sekundarni pomnilnik. Vsaka datoteka, ki ste jo shranili ali kdorkoli shranil, je v sekundarnem pomnilniku, ker se vsi podatki v primarnem pomnilniku izbrišejo, ko se računalnik izklopi. Torej, ko morate spremeniti katero koli besedilno datoteko ali samo delati z njimi v pythonu, morate to datoteko naložiti v primarni pomnilnik. Python komunicira z datotekami, naloženimi v primarni pomnilnik ali glavni pomnilnik prek upravljalniki datotek (Tako vaš operacijski sistem omogoči dostop pythonu za interakcijo z datoteko, ki ste jo odprli, tako da preišče datoteko v njenem pomnilniku, če jo najde, vrne program za obravnavo datotek in nato lahko delate z datoteko).
Odpiranje besedilne datoteke v Pythonu
Izvede se s funkcijo open(). Za to funkcijo ni treba uvoziti nobenega modula.
File_object = open(r'File_Name','Access_Mode')>
Datoteka mora obstajati v istem imeniku kot datoteka programa python sicer, polni naslov datoteke mora biti zapisan namesto imena datoteke. Opomba: The r se postavi pred ime datoteke, da prepreči, da bi znake v nizu imena datoteke obravnavali kot posebne znake. Na primer, če je v naslovu datoteke emp, potem se obravnava kot tabulator in pojavi se napaka neveljavnega naslova. R naredi niz surov, to pomeni, da pove, da je niz brez posebnih znakov. R lahko prezrete, če je datoteka v istem imeniku in naslov ni postavljen.
Python
charat v nizu
# Open function to open the file 'MyFile1.txt'> # (same directory) in append mode and> file1>=> open>(>'MyFile1.txt'>,>'a'>)> # store its reference in the variable file1> # and 'MyFile2.txt' in D:Text in file2> file2>=> open>(r>'D:TextMyFile2.txt'>,>'w+'>)> |
>
>
Tukaj je file1 ustvarjen kot objekt za MyFile1 in file2 kot objekt za MyFile2
Zapiranje besedilne datoteke v Pythonu
funkcija close() zapre datoteko in sprosti pomnilniški prostor, ki ga je pridobila ta datoteka. Uporablja se takrat, ko datoteka ni več potrebna ali če jo je treba odpreti v drugem datotečnem načinu. File_object.close()
Python
# Opening and Closing a file 'MyFile.txt'> # for object name file1.> file1>=> open>(>'MyFile.txt'>,>'a'>)> file1.close()> |
>
kako poklicati metodo v Javi
>
Pisanje v datoteko v Pythonu
V datoteko lahko pišete na dva načina:
- Uporaba write()
- Uporaba writelines()
Pisanje v besedilno datoteko Python z uporabo write()
napiši(): Vstavi niz str1 v eno vrstico besedilne datoteke.
File_object.write(str1)>
Pisanje v besedilno datoteko z uporabo writelines()
writelines(): Za seznam elementov nizov je vsak niz vstavljen v besedilno datoteko. Uporablja se za vstavljanje več nizov hkrati.
File_object.writelines(L) for L = [str1, str2, str3]>
Referenca: write() VS writelines()
Branje iz datoteke v Pythonu
Obstajajo trije načini branja podatkov iz besedilne datoteke:
- Uporaba read()
- Uporaba readline()
- Uporaba readlines()
Branje iz datoteke z read()
preberi(): Vrne prebrane bajte v obliki niza. Prebere n bajtov, če n ni določen, prebere celotno datoteko.
File_object.read([n])>
Branje besedilne datoteke z readline()
readline(): Prebere vrstico datoteke in vrne v obliki niza. Za podano n prebere največ n bajtov. Vendar ne prebere več kot ene vrstice, tudi če n presega dolžino vrstice.
File_object.readline([n])>
Branje datoteke z readlines()
readlines(): Prebere vse vrstice in jih vrne kot vsako vrstico element niza na seznamu.
File_object.readlines()>
Opomba: ' ' se obravnava kot poseben znak dveh bajtov.
V tem primeru je datoteka z imenom myfile.txt ustvarjena in odprta v načinu pisanja ('w'>). Podatki se zapišejo v datoteko z uporabowrite>inwritelines>metode. Datoteka se nato znova odpre v načinu za branje in dodajanje ('r+'>). Različne operacije branja, vključno zread>,readline>,readlines>, in uporabaseek>, prikazujejo različne načine pridobivanja podatkov iz datoteke. Končno je datoteka zaprta.
Python3
# Program to show various ways to read and> # write data in a file.> file1>=> open>(>'myfile.txt'>,>'w'>)> L>=> [>'This is Delhi
'>,>'This is Paris
'>,>'This is London
'>]> #
is placed to indicate EOL (End of Line)> file1.write(>'Hello
'>)> file1.writelines(L)> file1.close()># to change file access modes> file1>=> open>(>'myfile.txt'>,>'r+'>)> print>(>'Output of Read function is '>)> print>(file1.read())> print>()> # seek(n) takes the file handle to the nth> # byte from the beginning.> file1.seek(>0>)> print>(>'Output of Readline function is '>)> print>(file1.readline())> print>()> file1.seek(>0>)> # To show difference between read and readline> print>(>'Output of Read(9) function is '>)> print>(file1.read(>9>))> print>()> file1.seek(>0>)> print>(>'Output of Readline(9) function is '>)> print>(file1.readline(>9>))> file1.seek(>0>)> # readlines function> print>(>'Output of Readlines function is '>)> print>(file1.readlines())> print>()> file1.close()> |
>
b plus drevo
>
Izhod:
Output of Read function is Hello This is Delhi This is Paris This is London Output of Readline function is Hello Output of Read(9) function is Hello Th Output of Readline(9) function is Hello Output of Readlines function is ['Hello ', 'This is Delhi ', 'This is Paris ', 'This is London ']>
Dodajanje v datoteko v Pythonu
V tem primeru je datoteka z imenom myfile.txt prvotno odprta v načinu pisanja ('w'>) za pisanje vrstic besedila. Datoteka se nato znova odpre v načinu dodajanja ('a'>), in Danes je dodan obstoječi vsebini. Izhod po dodajanju je prikazan z uporaboreadlines>. Nato se datoteka znova odpre v načinu pisanja, pri čemer se vsebina prepiše z Jutri. Končni rezultat po pisanju je prikazan z uporaboreadlines>.
Python3
# Python program to illustrate> # Append vs write mode> file1>=> open>(>'myfile.txt'>,>'w'>)> L>=> [>'This is Delhi
'>,>'This is Paris
'>,>'This is London
'>]> file1.writelines(L)> file1.close()> # Append-adds at last> file1>=> open>(>'myfile.txt'>,>'a'>)>#append mode> file1.write(>'Today
'>)> file1.close()> file1>=> open>(>'myfile.txt'>,>'r'>)> print>(>'Output of Readlines after appending'>)> print>(file1.readlines())> print>()> file1.close()> # Write-Overwrites> file1>=> open>(>'myfile.txt'>,>'w'>)>#write mode> file1.write(>'Tomorrow
'>)> file1.close()> file1>=> open>(>'myfile.txt'>,>'r'>)> print>(>'Output of Readlines after writing'>)> print>(file1.readlines())> print>()> file1.close()> |
>
>
Izhod:
Output of Readlines after appending ['This is Delhi ', 'This is Paris ', 'This is London ', 'Today '] Output of Readlines after writing ['Tomorrow ']>
Sorodni članek:
- Datotečni objekti v Pythonu