logo

Pisanje v datoteko v Pythonu

Python ponuja vgrajene funkcije za ustvarjanje, pisanje in branje datotek. Python lahko obdeluje 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 (konec vrstice), 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.

Opomba: Če želite izvedeti več o ravnanju z datotekami Klikni tukaj .



Kazalo

Način dostopa

Načini dostopa urejajo vrsto možnih operacij v odprti datoteki. Nanaša se na to, kako bo datoteka uporabljena, ko bo odprta. Ti načini določajo tudi lokacijo ročaja datoteke v datoteki. Ročaj datoteke je kot kazalec, ki določa, od kod se morajo podatki prebrati ali zapisati v datoteko. Različni načini dostopa za branje datoteke so:

    Samo pisanje ('w'): Odprite datoteko za pisanje. Za obstoječo datoteko so podatki okrnjeni in prepisani. Ročaj je nameščen na začetku datoteke. Ustvari datoteko, če datoteka ne obstaja. Pisanje in branje ('w+'): Odprite 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.

Opomba: Če želite izvedeti več o načinu dostopa Klikni tukaj .



Odpiranje datoteke

Izvede se s funkcijo open(). Za to funkcijo ni treba uvoziti nobenega modula. Sintaksa:

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 na mestu imena datoteke. Opomba: R je postavljen 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 znak tabulatorke in pojavi se napaka zaradi 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.

Python3






# Open function to open the file 'MyFile1.txt'> # (same directory) in read mode and> file1>=> open>('MyFile.txt', 'w')> > # store its reference in the variable file1> # and 'MyFile2.txt' in D:Text in file2> file2>=> open>(r'D:TextMyFile2.txt', 'w>+>')>

>

>

kako odpreti skrite aplikacije na androidu

Tukaj je file1 ustvarjen kot objekt za MyFile1 in file2 kot objekt za MyFile2.

Zapiranje datoteke

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. Sintaksa:

File_object.close()>

Python3




# Opening and Closing a file 'MyFile.txt'> # for object name file1.> file1>=> open>('MyFile.txt', 'w')> file1.close()>

>

>

Pisanje v datoteko

V datoteko lahko pišete na dva načina.

    write() : Vstavi niz str1 v eno vrstico v besedilni datoteki.
File_object.write(str1)>
    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]>

Opomba: ' ' se obravnava kot poseben znak dveh bajtov. primer:

Python3


tipkopis za vsako



# Python program to demonstrate> # writing to file> # Opening a file> file1>=> open>(>'myfile.txt'>,>'w'>)> L>=> ['This>is> Delhi ', 'This>is> Paris ', 'This>is> London ']> s>=> 'Hello '> # Writing a string to file> file1.write(s)> # Writing multiple strings> # at a time> file1.writelines(L)> # Closing file> file1.close()> # Checking if the data is> # written to file or not> file1>=> open>(>'myfile.txt'>,>'r'>)> print>(file1.read())> file1.close()>

>

>

Izhod:

Hello This is Delhi This is Paris This is London>

Dodajanje v datoteko

Ko je datoteka odprta v načinu dodajanja, je ročica postavljena na konec datoteke. Podatki, ki se zapisujejo, bodo vstavljeni na koncu, za obstoječimi podatki. Oglejmo si spodnji primer, da pojasnimo razliko med načinom pisanja in načinom dodajanja.

Python3




pretvori v dvojno javo
# 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.read())> 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.read())> 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>

Z izjavo

with statement v Pythonu se uporablja pri obravnavanju izjem, da je koda čistejša in veliko bolj berljiva. Poenostavlja upravljanje skupnih virov, kot so datotečni tokovi. Za razliko od zgornjih izvedb pri uporabi stavka with ni treba klicati file.close(). Sama izjava with zagotavlja pravilno pridobivanje in sprostitev virov. Sintaksa:

with open filename as file:>

Python3




# Program to show various ways to> # write data to a file using with statement> L>=> ['This>is> Delhi ', 'This>is> Paris ', 'This>is> London ']> # Writing to file> with>open>('myfile.txt', 'w') as file1:> ># Writing data to a file> >file1.write('Hello ')> >file1.writelines(L)> # Reading from file> with>open>('myfile.txt', 'r>+>') as file1:> ># Reading form a file> >print>(file1.read())>

>

>

Izhod:

Hello This is Delhi This is Paris This is London>

Opomba: Če želite izvedeti več o izjavi, kliknite tukaj.

uporaba za izjavo:

koraki:

povezan seznam v Javi

Če želite pisati v datoteko v Pythonu z uporabo stavka for, lahko sledite tem korakom:

Odprite datoteko s funkcijo open() z ustreznim načinom ('w' za pisanje).
Uporabite stavek for za zanko čez podatke, ki jih želite zapisati v datoteko.
Za zapisovanje podatkov v datoteko uporabite metodo write() datotečnega objekta.
Zaprite datoteko z metodo close() objekta datoteke.

V tem primeru je datoteka odprta za pisanje s stavkom with open('file.txt', 'w') as f. Podatki, ki jih je treba zapisati, so shranjeni na seznamu, imenovanem podatki. Stavek for se uporablja za zanko čez vsako vrstico podatkov na seznamu. Izjava f.write(line + ‘ ’) zapiše vsako vrstico podatkov v datoteko z znakom za novo vrstico ( ) na koncu. Končno se datoteka samodejno zapre, ko se konča blok with.

Python3




# Open the file for writing> with>open>(>'file.txt'>,>'w'>) as f:> ># Define the data to be written> >data>=> [>'This is the first line'>,>'This is the second line'>,>'This is the third line'>]> ># Use a for loop to write each line of data to the file> >for> line>in> data:> >f.write(line>+> ' '>)> ># Optionally, print the data as it is written to the file> >print>(line)> # The file is automatically closed when the 'with' block ends>

>

>

Izhod

This is the first line This is the second line This is the third line>

Pristop:
Koda odpre datoteko z imenom file.txt v načinu pisanja z uporabo bloka with, da zagotovi pravilno zaprtje datoteke, ko se blok konča. Določa seznam nizov, imenovanih podatki, ki predstavljajo vrstice, ki bodo zapisane v datoteko. Koda nato uporabi zanko for za ponavljanje skozi vsak niz v podatkih in zapiše vsak niz v datoteko z uporabo metode write(). Koda vsakemu nizu doda znak za novo vrstico, da zagotovi, da je vsak niz zapisan v novi vrstici datoteke. Koda po želji natisne vsak niz, ko je zapisan v datoteko.

Časovna zapletenost:
Tako izvirna koda kot alternativna koda imata časovno kompleksnost O(n), kjer je n število vrstic, ki jih je treba zapisati v datoteko. To je zato, ker morata obe kodi ponoviti vsako vrstico na seznamu podatkov, da jih zapišeta v datoteko.

Kompleksnost prostora:
Izvirna koda in alternativna koda imata enako kompleksnost prostora O(n), kjer je n število vrstic, ki jih je treba zapisati v datoteko. To je zato, ker morata obe kodi ustvariti seznam nizov, ki predstavljajo vrstice, ki bodo zapisane v datoteko.