Python tarjoaa sisäänrakennettuja toimintoja tiedostojen luomiseen, kirjoittamiseen ja lukemiseen. Pythonissa voidaan käsitellä kahden tyyppisiä tiedostoja, normaaleja tekstitiedostoja ja binääritiedostoja (kirjoitettu binäärikielellä, 0s ja 1s).
- Tekstitiedostot: Tämän tyyppisessä tiedostossa jokainen tekstirivi päätetään erikoismerkillä nimeltä EOL (End of Line), joka on oletuksena uusi rivimerkki (' ') Pythonissa.
- Binaaritiedostot: Tämän tyyppisessä tiedostossa riville ei ole päätettä, ja tiedot tallennetaan sen jälkeen, kun ne on muunnettu koneellisesti ymmärrettäväksi binäärikieleksi.
Tämä artikkeli keskittyy tietojen avaamiseen, sulkemiseen, lukemiseen ja kirjoittamiseen tekstitiedostoon. Täällä myös nähdään, miten päästään Python tulostus tekstitiedostoon.
Tiedostojen käyttötavat
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 laitteen sijainnin Tiedoston kahva tiedostossa. Tiedoston kahva on kuin kohdistin, joka määrittää, mistä tiedot on luettava tai kirjoitettava tiedostoon ja voimme saada Python-tulosteen tekstitiedostoon.
Pythonissa on 6 käyttötilaa:
- Vain luku ('r')
- Lue ja kirjoita ('r+')
- Kirjoita vain ('w')
- Kirjoita ja lue ('w+')
- Lisää vain ('a')
- Liitä ja lue ('a+')
Vain luku ('r'): Avaa tekstitiedosto lukemista varten. Kahva on sijoitettu tiedoston alkuun. Jos tiedostoa ei ole olemassa, aiheuttaa I/O-virheen. Tämä on myös oletustila, jossa tiedosto avataan.
Lue ja kirjoita ('r+'): Avaa tiedosto lukemista ja kirjoittamista varten. Kahva on sijoitettu tiedoston alkuun. Nostaa I/O-virheen, jos tiedostoa ei ole olemassa.
Kirjoita vain ('w'): Avaa tiedosto kirjoittamista varten. Olemassa olevien tiedostojen 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.
Lisää vain ('a') : Avaa tiedosto kirjoittamista varten. Tiedosto luodaan, jos sitä ei ole olemassa. Kahva on sijoitettu tiedoston loppuun. Kirjoitettava tieto lisätään loppuun olemassa olevien tietojen perään.
Liitä ja lue ('a+'): Avaa tiedosto lukemista ja kirjoittamista varten. Tiedosto luodaan, jos sitä ei ole olemassa. Kahva on sijoitettu tiedoston loppuun. Kirjoitettava tieto lisätään loppuun olemassa olevien tietojen perään.
Kuinka tiedostot ladataan ensisijaiseen muistiin?
Tietokoneessa on kahdenlaisia muistia eli ensisijainen ja toissijainen muisti, jokainen tallentamasi tiedosto tai joku tallentamasi tiedosto on toissijaisessa muistissa, koska kaikki ensisijaisessa muistissa olevat tiedot poistetaan, kun tietokone sammutetaan. Joten kun haluat muuttaa mitä tahansa tekstitiedostoa tai vain työskennellä niiden kanssa pythonissa, sinun on ladattava tiedosto ensisijaiseen muistiin. Python on vuorovaikutuksessa ensisijaiseen muistiin tai päämuistiin ladattujen tiedostojen kanssa tiedostojen käsittelijät (Näin käyttöjärjestelmäsi antaa pythonille oikeuden olla vuorovaikutuksessa avaamasi tiedoston kanssa etsimällä tiedostoa sen muistista, jos se löydetään, se palauttaa tiedostonkäsittelijän ja voit sitten käsitellä tiedostoa ).
Tekstitiedoston avaaminen Pythonissa
Se tehdään käyttämällä open()-funktiota. Tätä toimintoa varten ei tarvitse tuoda moduulia.
File_object = open(r'File_Name','Access_Mode')>
Tiedoston tulee olla samassa hakemistossa kuin python-ohjelmatiedosto muualla, tiedoston koko osoite tulee kirjoittaa tiedostonimen tilalle. Huomautus: r sijoitetaan ennen tiedoston nimeä, jotta tiedostonimen merkkijonon merkkejä ei käsitellä erikoismerkeinä. Jos esimerkiksi tiedoston osoitteessa on emp, käsitellään sarkainmerkkinä ja virheellisen osoitteen virhe ilmenee. 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
java int char
# 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+'>)> |
>
>
Tässä tiedosto1 luodaan Objektille OmaTiedosto1:lle ja tiedosto2 Objektille OmaTiedosto2:lle
Tekstitiedoston sulkeminen Pythonissa
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. File_object.close()
Python
# Opening and Closing a file 'MyFile.txt'> # for object name file1.> file1>=> open>(>'MyFile.txt'>,>'a'>)> file1.close()> |
>
palindrominumero
>
Kirjoittaminen tiedostoon Pythonissa
On kaksi tapaa kirjoittaa tiedostoon:
- Käytä write()
- kirjoitusrivien () käyttäminen
Python-tekstitiedostoon kirjoittaminen write()-toiminnolla
kirjoittaa() : Lisää merkkijonon str1 yhdelle riville tekstitiedostoon.
File_object.write(str1)>
Kirjoittaminen tekstitiedostoon kirjoitusrivien () avulla
kirjoitusrivit() : 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]>
Viite: write() VS writelines()
Pythonin tiedostosta lukeminen
On kolme tapaa lukea tietoja tekstitiedostosta:
- Read()
- Readline()
- Käyttämällä lukulinjat ()
Lukeminen tiedostosta käyttämällä read()
lukea() : Palauttaa luetut tavut merkkijonon muodossa. Lukee n tavua, jos n:ää ei ole määritetty, lukee koko tiedoston.
File_object.read([n])>
Tekstitiedoston lukeminen käyttämällä readline()
Lue rivi() : Lukee tiedoston rivin ja palauttaa sen merkkijonon muodossa. Määritetylle n:lle lukee enintään n tavua. Ei kuitenkaan lue enempää kuin yhtä riviä, vaikka n ylittäisi rivin pituuden.
File_object.readline([n])>
Tiedoston lukeminen readlines()-toiminnolla
readlines() : Lukee kaikki rivit ja palauttaa ne jokaisella rivillä merkkijonoelementiksi luettelossa.
File_object.readlines()>
Huomautus: ' ' käsitellään kahden tavun erikoismerkkinä.
Tässä esimerkissä tiedosto nimeltä myfile.txt luodaan ja avataan kirjoitustilassa ('w'>). Tiedot kirjoitetaan tiedostoon käyttämälläwrite>jawritelines>menetelmiä. Tiedosto avataan sitten uudelleen luku- ja liitätilassa ('r+'>). Erilaisia lukutoimintoja, mmread>,readline>,readlines>, ja käyttöseek>, esittele erilaisia tapoja noutaa tietoja tiedostosta. Lopuksi tiedosto suljetaan.
Python 3
# 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()> |
>
>
Lähtö:
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 ']>
Liittäminen tiedostoon Pythonissa
Tässä esimerkissä tiedosto nimeltä myfile.txt avataan aluksi kirjoitustilassa ('w'>) kirjoittaaksesi tekstirivejä. Tiedosto avataan sitten uudelleen lisäystilassa ('a'>), ja Tänään lisätään olemassa olevaan sisältöön. Lisäyksen jälkeen tulos näytetään käyttämälläreadlines>. Tämän jälkeen tiedosto avataan uudelleen kirjoitustilassa ja sisältö korvataan Huomisella. Lopullinen tulos kirjoittamisen jälkeen näytetään käyttämälläreadlines>.
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.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()> |
>
>
maailman paras hymy
Lähtö:
Output of Readlines after appending ['This is Delhi ', 'This is Paris ', 'This is London ', 'Today '] Output of Readlines after writing ['Tomorrow ']>
Aiheeseen liittyvä artikkeli:
- Tiedostoobjektit Pythonissa