logo

Ravnanje z datotekami v Pythonu

Upravljanje datotek v Pythonu je zmogljivo in vsestransko orodje, ki se lahko uporablja za izvajanje širokega spektra operacij. Vendar je pomembno, da pri pisanju programov Python skrbno pretehtamo prednosti in slabosti ravnanja z datotekami, da zagotovimo, da je koda varna, zanesljiva in dobro deluje.

V tem članku bomo raziskali Ravnanje z datotekami Python, prednosti, slabosti in kako delujejo funkcije odpiranja, pisanja in dodajanja v datoteki python.



Upravljanje datotek Python

Python podpira ravnanje z datotekami in omogoča uporabnikom ravnanje z datotekami, tj. branje in pisanje datotek, skupaj s številnimi drugimi možnostmi ravnanja z datotekami, za delovanje z datotekami. Koncept ravnanja z datotekami se je razširil na različne druge jezike, vendar je izvedba zapletena ali dolgotrajna, tako kot drugi koncepti Pythona je tudi ta koncept tukaj enostaven in kratek. Python različno obravnava datoteke kot besedilne ali binarne in to je pomembno. Vsaka vrstica kode vključuje zaporedje znakov, ki tvorijo besedilno datoteko. Vsaka vrstica datoteke se konča s posebnim znakom, imenovanim EOL oz Konec vrstice like, kot so vejica {,} oz znak nove vrstice. Konča trenutno vrstico in tolmaču sporoči, da se je začela nova. Začnimo z datotekami za branje in pisanje.

Prednosti upravljanja datotek v Pythonu

  • Vsestranskost : Upravljanje z datotekami v Pythonu vam omogoča izvajanje širokega nabora operacij, kot so ustvarjanje, branje, pisanje, dodajanje, preimenovanje in brisanje datotek.
  • Prilagodljivost : Upravljanje datotek v Pythonu je zelo prilagodljivo, saj vam omogoča delo z različnimi vrstami datotek (npr. besedilne datoteke, binarne datoteke, datoteke CSV , itd.) in za izvajanje različnih operacij nad datotekami (npr. branje, pisanje, dodajanje itd.).
  • Uporabnik prijazen : Python ponuja uporabniku prijazen vmesnik za upravljanje datotek, kar olajša ustvarjanje, branje in upravljanje datotek.
  • Več platform : Funkcije za upravljanje datotek Python delujejo na različnih platformah (npr. Windows, Mac, Linux), kar omogoča brezhibno integracijo in združljivost.

Slabosti obdelave datotek v Pythonu

  • Nagnjenost k napakam: Operacije ravnanja z datotekami v Pythonu so lahko nagnjene k napakam, zlasti če koda ni skrbno napisana ali če obstajajo težave z datotečnim sistemom (npr. dovoljenja za datoteke, zaklepanje datotek itd.).
  • Varnostna tveganja : Ravnanje z datotekami v Pythonu lahko predstavlja tudi varnostna tveganja, zlasti če program sprejme uporabniški vnos, ki se lahko uporabi za dostop ali spreminjanje občutljivih datotek v sistemu.
  • Kompleksnost : Ravnanje z datotekami v Pythonu je lahko zapleteno, zlasti pri delu z naprednejšimi oblikami datotek ali operacijami. Posebno pozornost je treba nameniti kodi, da se zagotovi pravilno in varno ravnanje z datotekami.
  • Izvedba : Operacije ravnanja z datotekami v Pythonu so lahko počasnejše od drugih programskih jezikov, zlasti pri delu z velikimi datotekami ali izvajanju zapletenih operacij.

Za ta članek bomo upoštevali naslednje geeks.txt datoteko kot primer.

Hello world techcodeview.com 123 456>

Odpri datoteko Python

Preden izvedemo kakršno koli operacijo z datoteko, kot je branje ali pisanje, moramo najprej odpreti to datoteko. Za to bi morali uporabiti Pythonovo vgrajeno funkcijo odprto() vendar pa moramo ob odpiranju določiti način, ki predstavlja namen odpiranja datoteke.



f = open(filename, mode)>

Kjer je podprt naslednji način:

  1. r: odprite obstoječo datoteko za operacijo branja.
  2. V: odprite obstoječo datoteko za operacijo pisanja. Če datoteka že vsebuje nekaj podatkov, bo preglasena, če pa datoteka ni prisotna, jo prav tako ustvari.
  3. a: odprite obstoječo datoteko za operacijo dodajanja. Ne bo preglasil obstoječih podatkov.
  4. r+: Za branje in pisanje podatkov v datoteko. Prejšnji podatki v datoteki bodo razveljavljeni.
  5. w+: Za pisanje in branje podatkov. Preglasil bo obstoječe podatke.
  6. a+: Za dodajanje in branje podatkov iz datoteke. Ne bo preglasil obstoječih podatkov.

Delo v načinu branja

Obstaja več načinov za Kako brati iz datoteke v Pythonu . Poglejmo, kako lahko preberemo vsebino datoteke v načinu branja.

dekodiranje javascript base64

Primer 1: Ukaz open bo odprl datoteko Python v načinu branja, zanka for pa bo natisnila vsako vrstico v datoteki.



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

>

>

Izhod:

Hello world techcodeview.com 123 456>

Primer 2: V tem primeru bomo ekstrahirali niz, ki vsebuje vse znake v datoteki Python, ki jih lahko uporabimo file.read() .

Python3




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

>

>

Izhod:

Hello world techcodeview.com 123 456>

Primer 3: V tem primeru bomo videli, kako lahko preberemo datoteko z uporabo z izjava v Pythonu.

Python3




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

>

>

Izhod:

Hello world techcodeview.com 123 456>

Primer 4: Drug način za branje datoteke je, da pokličete določeno število znakov, kot bo v naslednji kodi tolmač prebral prvih pet znakov shranjenih podatkov in jih vrnil kot niz:

Python3




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

>

>

Izhod:

Hello>

Primer 5: Med branjem datotek v Pythonu lahko tudi razdelimo vrstice. Funkcija split() razdeli spremenljivko, ko naleti na presledek. Prav tako lahko razdelite s poljubnimi znaki.

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

java pretvori char v int

>

>

Izhod:

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

Ustvarjanje datoteke s funkcijo write().

Tako kot pri branju datoteke v Pythonu obstaja več načinov Pisanje v datoteko v Pythonu . Poglejmo, kako lahko zapišemo vsebino datoteke s funkcijo write() v Pythonu.

Delo v načinu pisanja

Poglejmo, kako ustvariti datoteko in kako deluje način pisanja.

Primer 1: V tem primeru bomo videli, kako se način pisanja in funkcija write() uporabljata za pisanje v datoteko. Ukaz close() prekine vse vire v uporabi in osvobodi sistem tega posebnega programa.

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

>

>

Izhod:

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

Primer 2: Pisni stavek lahko uporabimo tudi skupaj s funkcijo with().

Python3




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

>

>

Izhod:

Hello World!!!>

Delovanje načina dodajanja

Poglejmo, kako deluje način dodajanja.

primer: Za ta primer bomo uporabili datoteko Python, ustvarjeno v prejšnjem primeru.

Python3




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

>

>

Izhod:

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

Obstajajo tudi različni drugi ukazi pri upravljanju datotek Python, ki se uporabljajo za obravnavanje različnih nalog:

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

Zasnovan je tako, da zagotavlja veliko čistejšo sintakso in obravnavo izjem, ko delate s kodo. To pojasnjuje, zakaj je dobra praksa, da jih uporabite z izjavo, kjer je primerno. To je koristno, ker se bodo s to metodo vse odprte datoteke samodejno zaprle, ko bo ena končana, torej samodejno čiščenje.

Implementacija vseh funkcij v ravnanju z datotekami

V tem primeru bomo zajeli vse koncepte, ki smo jih videli zgoraj. Razen teh bomo videli tudi, kako lahko izbrišemo datoteko s funkcijo remove() iz Pythona os modul .

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

>

>

Izhod:

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