logo

Pythonissa tiedostoon kirjoittaminen

Python tarjoaa sisäänrakennettuja toimintoja tiedostojen luomiseen, kirjoittamiseen ja lukemiseen. Pythonissa voidaan käsitellä kahdenlaisia ​​tiedostoja, normaaleja tekstitiedostoja ja binääritiedostoja (kirjoitettu binäärikielellä, 0s ja 1s).

    Tekstitiedostot: Tämän tyyppisissä tiedostoissa jokainen tekstirivi päätetään erikoismerkillä nimeltä EOL (End of Line), joka on oletuksena uusi rivimerkki (' ') Pythonissa. Binaaritiedostot: Tämän tyyppisissä tiedostoissa rivillä ei ole päätettä ja tiedot tallennetaan sen jälkeen, kun ne on muunnettu koneellisesti ymmärrettäväksi binäärikieleksi.

Huomautus: Lisätietoja tiedostojen käsittelystä Klikkaa tästä .



Sisällysluettelo

Pääsytila

Käyttötavat säätelevät avatussa tiedostossa mahdollisten toimintojen tyyppiä. Se viittaa siihen, kuinka tiedostoa käytetään sen avaamisen jälkeen. Nämä tilat määrittävät myös tiedostokahvan sijainnin tiedostossa. Tiedoston kahva on kuin kohdistin, joka määrittää, mistä tiedot on luettava tai kirjoitettava tiedostoon. Erilaiset pääsytavat tiedoston lukemiseen ovat -

    Vain kirjoitus ('w'): Avaa tiedosto kirjoittamista varten. Olemassa olevan tiedoston tiedot katkaistaan ​​ja ylikirjoitetaan. Kahva on sijoitettu tiedoston alkuun. Luo tiedoston, jos tiedostoa ei ole olemassa. Kirjoita ja lue ('w+'): Avaa tiedosto lukemista ja kirjoittamista varten. Olemassa olevan tiedoston tiedot katkaistaan ​​ja ylikirjoitetaan. Kahva on sijoitettu tiedoston alkuun. Vain liite ('a'): Avaa tiedosto kirjoittamista varten. Tiedosto luodaan, jos sitä ei ole olemassa. Kahva on sijoitettu tiedoston loppuun. Kirjoitettava tieto lisätään loppuun olemassa olevan tiedon jälkeen.

Huomautus: Lisätietoja pääsytilasta Klikkaa tästä .



Tiedoston avaaminen

Se tehdään käyttämällä open()-funktiota. Tätä toimintoa varten ei tarvitse tuoda moduulia. Syntaksi:

File_object = open(r'File_Name', 'Access_Mode')>

Tiedoston tulee olla samassa hakemistossa kuin python-ohjelmatiedosto muualla, tiedoston täydellinen osoite tulee kirjoittaa tiedostonimen paikkaan. Huomautus: R sijoitetaan tiedostonimen eteen, jotta tiedostonimijonon merkkejä ei käsitellä erikoismerkkeinä. Jos esimerkiksi tiedoston osoitteessa on emp, käsitellään sarkainmerkkinä ja virheellisen osoitteen virhe syntyy. R tekee merkkijonosta raakaa, eli se kertoo, että merkkijono on ilman erikoismerkkejä. R voidaan jättää huomiotta, jos tiedosto on samassa hakemistossa ja osoitetta ei sijoiteta.

Python 3



java-tyypin muunnos ja valu




# 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>+>')>

>

>

Tässä tiedosto1 luodaan Objektille OmaTiedosto1 ja tiedosto2 Objektille OmaTiedosto2.

Tiedoston sulkeminen

close()-toiminto sulkee tiedoston ja vapauttaa tiedoston hankkiman muistitilan. Sitä käytetään silloin, kun tiedostoa ei enää tarvita tai jos se avataan eri tiedostotilassa. Syntaksi:

File_object.close()>

Python 3




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

javascript-tulostus

>

>

Kirjoittaminen tiedostoon

Tiedostoon voi kirjoittaa kahdella tavalla.

    write() : Lisää merkkijonon str1 yhdelle riville tekstitiedostoon.
File_object.write(str1)>
    writelines() : Merkkijonoelementtien luettelossa jokainen merkkijono lisätään tekstitiedostoon. Käytetään useiden merkkijonojen lisäämiseen kerralla.
File_object.writelines(L) for L = [str1, str2, str3]>

Huomautus: ' ' käsitellään kahden tavun erikoismerkkinä. Esimerkki:

Python 3




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

>

>

Lähtö:

Hello This is Delhi This is Paris This is London>

Liittäminen tiedostoon

Kun tiedosto avataan liitetilassa, kahva on tiedoston lopussa. Kirjoitettava tieto lisätään loppuun olemassa olevan tiedon jälkeen. Katsotaanpa alla olevaa esimerkkiä selventääksesi eroa kirjoitustilan ja lisäystilan välillä.

Python 3




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

>

kuinka monta kaupunkia usa

>

Lähtö:

Output of Readlines after appending This is Delhi This is Paris This is London Today Output of Readlines after writing Tomorrow>

Lausunnon kanssa

lausetta Pythonissa käytetään poikkeusten käsittelyssä, jotta koodista tulee puhtaampi ja paljon luettavampi. Se yksinkertaistaa yleisten resurssien, kuten tiedostovirtojen, hallintaa. Toisin kuin yllä olevissa toteutuksissa, tiedostoa file.close() ei tarvitse kutsua käytettäessä käskyn kanssa. Itse with-lauseke varmistaa resurssien asianmukaisen hankinnan ja vapauttamisen. Syntaksi:

with open filename as file:>

Python 3




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

>

>

Lähtö:

Hello This is Delhi This is Paris This is London>

Huomautus: Saat lisätietoja lausunnosta napsauttamalla tätä.

käytä lauseeseen:

askeleet:

java operaattorit

Voit kirjoittaa Python-tiedostoon for-käskyn avulla seuraavasti:

Avaa tiedosto käyttämällä open()-funktiota sopivalla moodilla ('w' kirjoittamiseen).
For-käskyn avulla voit kiertää tiedostoon kirjoitettavat tiedot.
Käytä tiedostoobjektin write()-menetelmää tietojen kirjoittamiseen tiedostoon.
Sulje tiedosto käyttämällä tiedostoobjektin close()-menetelmää.

Tässä esimerkissä tiedosto avataan kirjoittamista varten käyttämällä open('file.txt', 'w') f-lauseena. Kirjoitettava data tallennetaan luetteloon nimeltä data. For-lausetta käytetään luettelon jokaisen tietorivin silmukaan. F.write(line + ' ') -käsky kirjoittaa jokaisen tietorivin tiedostoon rivinvaihdolla ( ) sen lopussa. Lopuksi tiedosto suljetaan automaattisesti, kun with-lohko päättyy.

Python 3




# 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>

>

>

Lähtö

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

Lähestyä:
Koodi avaa tiedosto.txt-nimisen tiedoston kirjoitustilassa käyttämällä with-lohkoa varmistaakseen, että tiedosto suljetaan kunnolla lohkon päättyessä. Se määrittää luettelon merkkijonoista, joita kutsutaan dataksi ja jotka edustavat tiedostoon kirjoitettavia rivejä. Koodi käyttää sitten for-silmukkaa iteroidakseen jokaisen datan merkkijonon ja kirjoittaa jokaisen merkkijonon tiedostoon write()-menetelmällä. Koodi lisää rivinvaihtomerkin jokaiseen merkkijonoon varmistaakseen, että jokainen merkkijono kirjoitetaan uudelle riville tiedostossa. Koodi tulostaa valinnaisesti jokaisen merkkijonon, kun se kirjoitetaan tiedostoon.

Aika monimutkaisuus:
Sekä alkuperäisen koodin että vaihtoehtoisen koodin aikamonimutkaisuus on O(n), missä n on tiedostoon kirjoitettavien rivien lukumäärä. Tämä johtuu siitä, että molempien koodien on toistettava dataluettelon jokainen rivi, jotta se voidaan kirjoittaa tiedostoon.

Tilan monimutkaisuus:
Alkuperäisellä koodilla ja vaihtoehtoisella koodilla on sama tilakompleksisuus O(n), missä n on tiedostoon kirjoitettavien rivien lukumäärä. Tämä johtuu siitä, että molempien koodien on luotava luettelo merkkijonoista, jotka edustavat tiedostoon kirjoitettavia rivejä.