Failų tvarkymas Python

Failų tvarkymas Python yra galingas ir universalus įrankis, kuriuo galima atlikti įvairiausias operacijas. Tačiau rašant Python programas svarbu atidžiai apsvarstyti failų tvarkymo privalumus ir trūkumus, kad kodas būtų saugus, patikimas ir gerai veikia.

Šiame straipsnyje mes išnagrinėsime Python failų tvarkymas, privalumai, trūkumai ir kaip python faile veikia atidarymo, rašymo ir pridėjimo funkcijos.

Python failų tvarkymas

„Python“ palaiko failų tvarkymą ir leidžia vartotojams tvarkyti failus, t. y. skaityti ir rašyti failus, kartu su daugeliu kitų failų tvarkymo parinkčių, dirbti su failais. Failų tvarkymo sąvoka apima įvairias kitas kalbas, tačiau įgyvendinimas yra sudėtingas arba ilgas, kaip ir kitos Python sąvokos, ši sąvoka čia taip pat paprasta ir trumpa. Python skirtingai traktuoja failus kaip tekstą ar dvejetainį ir tai svarbu. Kiekvienoje kodo eilutėje yra simbolių seka ir jie sudaro tekstinį failą. Kiekviena failo eilutė baigiama specialiu simboliu, vadinamu EOL arba Eilutės pabaiga personažai patinka kablelis {,} arba naujos eilutės simbolis. Jis baigia esamą eilutę ir praneša vertėjui, kad prasidėjo nauja. Pradėkime nuo skaitymo ir rašymo failų.

Failų tvarkymo „Python“ pranašumai

  • Universalumas : Failų tvarkymas „Python“ leidžia atlikti daugybę operacijų, pavyzdžiui, kurti, skaityti, rašyti, pridėti, pervardyti ir ištrinti failus.
  • Lankstumas : Failų tvarkymas Python yra labai lankstus, nes leidžia dirbti su įvairių tipų failais (pvz., tekstiniais failais, dvejetainiais failais, CSV failai ir tt) ir atlikti įvairias operacijas su failais (pvz., skaityti, rašyti, pridėti ir pan.).
  • Vartotojas draugiškas : Python suteikia patogią sąsają failams tvarkyti, todėl lengva kurti, skaityti ir valdyti failus.
  • Cross-platform : Python failų tvarkymo funkcijos veikia įvairiose platformose (pvz., „Windows“, „Mac“, „Linux“), todėl galima sklandžiai integruoti ir suderinti.

Failų tvarkymo Python trūkumai

  • Yra klaidų: Failų tvarkymo operacijose Python gali būti klaidų, ypač jei kodas nėra kruopščiai parašytas arba jei yra problemų su failų sistema (pvz., failų leidimai, failų užraktai ir kt.).
  • Saugumo rizikos : Failų tvarkymas „Python“ taip pat gali kelti pavojų saugumui, ypač jei programa priima vartotojo įvestį, kurią galima naudoti norint pasiekti arba modifikuoti jautrius sistemos failus.
  • Sudėtingumas : „Python“ failų tvarkymas gali būti sudėtingas, ypač dirbant su sudėtingesniais failų formatais ar operacijomis. Norint užtikrinti, kad failai būtų tinkamai ir saugiai tvarkomi, reikia atidžiai stebėti kodą.
  • Spektaklis : Python failų tvarkymo operacijos gali būti lėtesnės nei kitose programavimo kalbose, ypač dirbant su dideliais failais arba atliekant sudėtingas operacijas.

Šiame straipsnyje mes apsvarstysime šiuos dalykus geeks.txt failą kaip pavyzdį.

Hello world techcodeview.com 123 456 

Python failo atidarymas

Prieš atlikdami bet kokią failo operaciją, pvz., skaitymą ar rašymą, pirmiausia turime atidaryti tą failą. Tam turėtume naudoti įmontuotą Python funkciją atviras() tačiau atidarydami turime nurodyti režimą, kuris atitinka atidarymo failo tikslą.

f = open(filename, mode) 

Kur palaikomas šis režimas:

  1. r: atidaryti esamą failą skaitymo operacijai.
  2. Į: atidaryti esamą failą rašymo operacijai. Jei faile jau yra tam tikrų duomenų, jis bus nepaisomas, bet jei failo nėra, jis taip pat sukuria failą.
  3. a: atidaryti esamą failą pridėti operacijai. Tai nepaisys esamų duomenų.
  4. r+: Skaityti ir įrašyti duomenis į failą. Ankstesni failo duomenys bus nepaisyti.
  5. w+: Duomenims rašyti ir skaityti. Tai nepaisys esamų duomenų.
  6. a+: Norėdami pridėti ir nuskaityti duomenis iš failo. Tai nepaisys esamų duomenų.

Darbas skaitymo režimu

Yra daugiau nei vienas būdas Kaip skaityti iš failo Python . Pažiūrėkime, kaip galime nuskaityti failo turinį skaitymo režimu.

1 pavyzdys: Atidarymo komanda atidarys Python failą skaitymo režimu, o ciklas for išspausdins kiekvieną faile esančią eilutę.

Python3




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

Išvestis:

Hello world techcodeview.com 123 456 

2 pavyzdys: Šiame pavyzdyje išskirsime eilutę, kurioje yra visi Python failo simboliai, tada galėsime naudoti file.read() .

Python3




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

Išvestis:

Hello world techcodeview.com 123 456 

3 pavyzdys: Šiame pavyzdyje pamatysime, kaip galime nuskaityti failą naudodami su pareiškimas Python.

Python3




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

Išvestis:

Hello world techcodeview.com 123 456 

4 pavyzdys: Kitas būdas nuskaityti failą yra iškviesti tam tikrą skaičių simbolių, kaip nurodyta toliau pateiktame kode, vertėjas perskaitys pirmuosius penkis saugomų duomenų simbolius ir grąžins juos kaip eilutę:

Python3




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

Išvestis:

Hello 

5 pavyzdys: Taip pat galime skaidyti eilutes skaitydami failus Python. Funkcija split() suskaido kintamąjį, kai atsiranda vietos. Taip pat galite padalyti naudodami bet kokius simbolius, kaip norite.

Python3




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

Išvestis:

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

Failo sukūrimas naudojant rašymo () funkciją

Kaip ir skaitant failą Python, yra keletas būdų Rašymas į failą Python . Pažiūrėkime, kaip galime parašyti failo turinį naudodami Python funkciją write ().

Darbas rašymo režimu

Pažiūrėkime, kaip sukurti failą ir kaip veikia rašymo režimas.

1 pavyzdys: Šiame pavyzdyje pamatysime, kaip rašymo režimas ir rašymo () funkcija naudojami rašant faile. Komanda close() nutraukia visus naudojamus išteklius ir išlaisvina šios konkrečios programos sistemą.

Python3




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

Išvestis:

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

2 pavyzdys: Taip pat galime naudoti rašytinį teiginį kartu su funkcija with().

Python3




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

Išvestis:

Hello World!!! 

Pridėti režimo veikimas

Pažiūrėkime, kaip veikia pridėjimo režimas.

Pavyzdys: Šiame pavyzdyje naudosime Python failą, sukurtą ankstesniame pavyzdyje.

Python3




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

Išvestis:

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

Taip pat yra įvairių kitų Python failų tvarkymo komandų, kurios naudojamos įvairioms užduotims tvarkyti:

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. 

Jis sukurtas taip, kad būtų užtikrintas daug aiškesnis sintaksės ir išimčių tvarkymas, kai dirbate su kodu. Tai paaiškina, kodėl gera praktika juos naudoti su teiginiu, kai taikoma. Tai naudinga, nes naudojant šį metodą visi atidaryti failai bus automatiškai uždaromi po to, kai jis bus baigtas, todėl automatiškai išvalykite.

Visų Failų tvarkymo funkcijų įgyvendinimas

Šiame pavyzdyje apimsime visas aukščiau pateiktas sąvokas. Išskyrus tuos, mes taip pat pamatysime, kaip galime ištrinti failą naudodami funkciją Remove () iš Python os modulis .

Python3




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

Išvestis:

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.