logo

Tiedostojen käsittely Pythonissa

Tiedostojen käsittely Pythonissa on tehokas ja monipuolinen työkalu, jolla voidaan suorittaa monenlaisia ​​toimintoja. Python-ohjelmia kirjoitettaessa on kuitenkin tärkeää harkita huolellisesti tiedostojen käsittelyn edut ja haitat, jotta varmistetaan, että koodi on turvallinen, luotettava ja toimii hyvin.

Tässä artikkelissa tutkimme Python-tiedostonkäsittely, edut, haitat ja kuinka avaus-, kirjoitus- ja liittämistoiminnot toimivat python-tiedostossa.



Python-tiedostojen käsittely

Python tukee tiedostojen käsittelyä ja sallii käyttäjien käsitellä tiedostoja eli lukea ja kirjoittaa tiedostoja sekä monia muita tiedostojen käsittelyvaihtoehtoja, käsitellä tiedostoja. Tiedostonkäsittelyn käsite on venynyt useisiin muihin kieliin, mutta toteutus on joko monimutkaista tai pitkäkestoista, kuten muutkin Pythonin käsitteet, myös tämä konsepti on tässä helppo ja lyhyt. Python käsittelee tiedostoja eri tavalla tekstinä tai binäärinä, ja tämä on tärkeää. Jokainen koodirivi sisältää merkkijonon, ja ne muodostavat tekstitiedoston. Jokainen tiedoston rivi päätetään erikoismerkillä, jota kutsutaan nimellä EOL tai Linjan loppu hahmot kuten pilkku {,} tai rivin uusi merkki. Se päättää nykyisen rivin ja kertoo tulkille, että uusi on alkanut. Aloitetaan tiedostojen lukemisesta ja kirjoittamisesta.

Pythonin tiedostojen käsittelyn edut

  • Monipuolisuus : Pythonin tiedostojen käsittelyn avulla voit suorittaa monenlaisia ​​toimintoja, kuten tiedostojen luomisen, lukemisen, kirjoittamisen, liittämisen, uudelleennimeämisen ja poistamisen.
  • Joustavuus : Pythonin tiedostojen käsittely on erittäin joustavaa, koska sen avulla voit käsitellä eri tiedostotyyppejä (esim. tekstitiedostoja, binääritiedostoja, CSV-tiedostot jne.) ja suorittaa erilaisia ​​toimintoja tiedostoille (esim. lukea, kirjoittaa, liittää jne.).
  • Käyttäjä ystävällinen : Python tarjoaa käyttäjäystävällisen käyttöliittymän tiedostojen käsittelyyn, mikä tekee tiedostojen luomisesta, lukemisesta ja käsittelemisestä helppoa.
  • Cross-platform : Python-tiedostonkäsittelytoiminnot toimivat eri alustoilla (esim. Windows, Mac, Linux), mikä mahdollistaa saumattoman integroinnin ja yhteensopivuuden.

Pythonin tiedostojen käsittelyn haitat

  • Virheille altis: Pythonin tiedostojenkäsittelytoiminnot voivat olla alttiita virheille, varsinkin jos koodia ei ole kirjoitettu huolellisesti tai jos tiedostojärjestelmässä on ongelmia (esim. tiedostojen käyttöoikeudet, tiedostojen lukitukset jne.).
  • Turvallisuusriskit : Pythonin tiedostojen käsittely voi myös aiheuttaa turvallisuusriskejä, varsinkin jos ohjelma hyväksyy käyttäjän syötteen, jota voidaan käyttää järjestelmän arkaluontoisten tiedostojen avaamiseen tai muokkaamiseen.
  • Monimutkaisuus : Tiedostojen käsittely Pythonissa voi olla monimutkaista, varsinkin kun työskentelet kehittyneempien tiedostomuotojen tai toimintojen kanssa. Koodiin on kiinnitettävä erityistä huomiota sen varmistamiseksi, että tiedostoja käsitellään oikein ja turvallisesti.
  • Esitys : Pythonin tiedostonkäsittelytoiminnot voivat olla hitaampia kuin muissa ohjelmointikielissä, varsinkin kun käsitellään suuria tiedostoja tai suoritetaan monimutkaisia ​​toimintoja.

Tässä artikkelissa tarkastelemme seuraavaa geeks.txt tiedosto esimerkkinä.

Hello world techcodeview.com 123 456>

Python-tiedosto Avaa

Ennen kuin suoritat tiedostolle mitään toimintoa, kuten lukemista tai kirjoittamista, meidän on ensin avattava tiedosto. Tätä varten meidän pitäisi käyttää Pythonin sisäänrakennettua toimintoa avata() mutta avaamisen yhteydessä meidän on määritettävä tila, joka edustaa avaustiedoston tarkoitusta.



f = open(filename, mode)>

Missä seuraavaa tilaa tuetaan:

  1. r: avaa olemassa oleva tiedosto lukutoimintoa varten.
  2. Sisään: avaa olemassa oleva tiedosto kirjoitustoimintoa varten. Jos tiedosto sisältää jo tietoja, se ohitetaan, mutta jos tiedostoa ei ole, se myös luo tiedoston.
  3. a: avaa olemassa oleva tiedosto lisäystoimintoa varten. Se ei ohita olemassa olevia tietoja.
  4. r+: Datan lukeminen ja kirjoittaminen tiedostoon. Tiedoston aiemmat tiedot ohitetaan.
  5. w+: Tietojen kirjoittamiseen ja lukemiseen. Se ohittaa olemassa olevat tiedot.
  6. a+: Tietojen liittäminen ja lukeminen tiedostosta. Se ei ohita olemassa olevia tietoja.

Työskentely lukutilassa

On enemmän kuin yksi tapa Kuinka lukea tiedostosta Pythonissa . Katsotaanpa, kuinka voimme lukea tiedoston sisällön lukutilassa.

merkkijonojen tasa-arvo javassa

Esimerkki 1: Open-komento avaa Python-tiedoston lukutilassa ja for-silmukka tulostaa kaikki tiedostossa olevat rivit.



Python 3




# a file named 'geek', will be opened with the reading mode.> file> => open>(>'geek.txt'>,>'r'>)> # This will print every line one by one in the file> for> each>in> file>:> >print> (each)>

>

>

Lähtö:

Hello world techcodeview.com 123 456>

Esimerkki 2: Tässä esimerkissä puramme merkkijonon, joka sisältää kaikki Python-tiedoston merkit, jota voimme käyttää file.read() .

Python 3




# Python code to illustrate read() mode> file> => open>(>'geeks.txt'>,>'r'>)> print> (>file>.read())>

>

>

Lähtö:

Hello world techcodeview.com 123 456>

Esimerkki 3: Tässä esimerkissä näemme, kuinka voimme lukea tiedoston käyttämällä kanssa lausunto Pythonissa.

Python 3




# Python code to illustrate with()> with>open>(>'geeks.txt'>) as>file>:> >data>=> file>.read()> print>(data)>

>

>

Lähtö:

Hello world techcodeview.com 123 456>

Esimerkki 4: Toinen tapa lukea tiedosto on kutsua tietty määrä merkkejä, kuten seuraavassa koodissa tulkki lukee tallennetun tiedon viisi ensimmäistä merkkiä ja palauttaa sen merkkijonona:

Python 3




# Python code to illustrate read() mode character wise> file> => open>(>'geeks.txt'>,>'r'>)> print> (>file>.read(>5>))>

>

>

Lähtö:

Hello>

Esimerkki 5: Voimme myös jakaa rivejä lukiessasi tiedostoja Pythonissa. Split()-funktio jakaa muuttujan, kun tilaa tulee. Voit myös jakaa haluamallasi tavalla millä tahansa merkillä.

Python 3




# Python code to illustrate split() function> with>open>(>'geeks.txt'>,>'r'>) as>file>:> >data>=> file>.readlines()> >for> line>in> data:> >word>=> line.split()> >print> (word)>

>

>

Lähtö:

['Hello', 'world'] ['techcodeview.com'] ['123', '456']>

Tiedoston luominen write()-funktiolla

Aivan kuten tiedoston lukeminen Pythonissa, siihen on useita tapoja Pythonissa tiedostoon kirjoittaminen . Katsotaanpa, kuinka voimme kirjoittaa tiedoston sisällön Pythonin write()-funktiolla.

Työskentely kirjoitustilassa

Katsotaan kuinka luodaan tiedosto ja miten kirjoitustila toimii.

Esimerkki 1: Tässä esimerkissä näemme, kuinka kirjoitustilaa ja write()-funktiota käytetään tiedostoon kirjoittamiseen. Sulje()-komento lopettaa kaikki käytössä olevat resurssit ja vapauttaa järjestelmän kyseisestä ohjelmasta.

Python 3




# Python code to create a file> file> => open>(>'geek.txt'>,>'w'>)> file>.write(>'This is the write command'>)> file>.write(>'It allows us to write in a particular file'>)> file>.close()>

>

>

Lähtö:

This is the write commandIt allows us to write in a particular file>

Esimerkki 2: Voimme käyttää myös kirjallista lausuntoa with()-funktion kanssa.

Python 3




# Python code to illustrate with() alongwith write()> with>open>(>'file.txt'>,>'w'>) as f:> >f.write(>'Hello World!!!'>)>

>

>

kielet c

Lähtö:

Hello World!!!>

Lisäystilan toiminta

Katsotaanpa, kuinka liitetila toimii.

Esimerkki: Tässä esimerkissä käytämme edellisessä esimerkissä luotua Python-tiedostoa.

Python 3




# Python code to illustrate append() mode> file> => open>(>'geek.txt'>,>'a'>)> file>.write(>'This will add this line'>)> file>.close()>

>

>

Lähtö:

This is the write commandIt allows us to write in a particular fileThis will add this line>

Python-tiedostonkäsittelyssä on myös useita muita komentoja, joita käytetään eri tehtävien käsittelyyn:

rstrip(): This function strips each line of a file off spaces from the right-hand side. lstrip(): This function strips each line of a file off spaces from the left-hand side.>

Se on suunniteltu tarjoamaan paljon selkeämpi syntaksi ja poikkeusten käsittely, kun työskentelet koodin kanssa. Tämä selittää, miksi on hyvä käytäntö käyttää niitä tarvittaessa lausunnon kanssa. Tämä on hyödyllistä, koska tätä menetelmää käytettäessä kaikki avatut tiedostot suljetaan automaattisesti, kun ne on tehty, joten automaattinen puhdistus.

Kaikkien tiedostojen käsittelyn toimintojen toteuttaminen

Tässä esimerkissä katamme kaikki käsitteet, jotka olemme nähneet edellä. Muut kuin nämä, näemme myös, kuinka voimme poistaa tiedoston Pythonista poista()-funktiolla os-moduuli .

Python 3




import> os> def> create_file(filename):> >try>:> >with>open>(filename,>'w'>) as f:> >f.write(>'Hello, world! '>)> >print>(>'File '> +> filename>+> ' created successfully.'>)> >except> IOError:> >print>(>'Error: could not create file '> +> filename)> def> read_file(filename):> >try>:> >with>open>(filename,>'r'>) as f:> >contents>=> f.read()> >print>(contents)> >except> IOError:> >print>(>'Error: could not read file '> +> filename)> def> append_file(filename, text):> >try>:> >with>open>(filename,>'a'>) as f:> >f.write(text)> >print>(>'Text appended to file '> +> filename>+> ' successfully.'>)> >except> IOError:> >print>(>'Error: could not append to file '> +> filename)> def> rename_file(filename, new_filename):> >try>:> >os.rename(filename, new_filename)> >print>(>'File '> +> filename>+> ' renamed to '> +> new_filename>+> ' successfully.'>)> >except> IOError:> >print>(>'Error: could not rename file '> +> filename)> def> delete_file(filename):> >try>:> >os.remove(filename)> >print>(>'File '> +> filename>+> ' deleted successfully.'>)> >except> IOError:> >print>(>'Error: could not delete file '> +> filename)> if> __name__>=>=> '__main__'>:> >filename>=> 'example.txt'> >new_filename>=> 'new_example.txt'> >create_file(filename)> >read_file(filename)> >append_file(filename,>'This is some additional text. '>)> >read_file(filename)> >rename_file(filename, new_filename)> >read_file(new_filename)> >delete_file(new_filename)>

>

>

Lähtö:

File example.txt created successfully. Hello, world! Text appended to file example.txt successfully. Hello, world! This is some additional text. File example.txt renamed to new_example.txt successfully. Hello, world! This is some additional text. File new_example.txt deleted successfully.>