Gestionarea fișierelor în Python
Gestionarea fișierelor în Python este un instrument puternic și versatil care poate fi folosit pentru a efectua o gamă largă de operațiuni. Cu toate acestea, este important să luați în considerare cu atenție avantajele și dezavantajele manipulării fișierelor atunci când scrieți programe Python, pentru a vă asigura că codul este sigur, de încredere și funcționează bine.
În acest articol vom explora Gestionarea fișierelor Python, Avantaje, Dezavantaje și Cum funcționează funcțiile de deschidere, scriere și adăugare în fișierul Python.
Gestionarea fișierelor Python
Python acceptă gestionarea fișierelor și permite utilizatorilor să gestioneze fișiere, adică să citească și să scrie fișiere, împreună cu multe alte opțiuni de gestionare a fișierelor, pentru a opera pe fișiere. Conceptul de gestionare a fișierelor s-a extins peste diferite alte limbi, dar implementarea este fie complicată, fie lungă, ca și alte concepte de Python, acest concept aici este, de asemenea, ușor și scurt. Piton tratează fișierele în mod diferit ca text sau binar și acest lucru este important. Fiecare linie de cod include o secvență de caractere și formează un fișier text. Fiecare linie a unui fișier se încheie cu un caracter special, numit EOL sau Sfârșitul liniei personaje ca virgulă {,} sau caracter newline. Se încheie linia curentă și îi spune interpretului că a început una nouă. Să începem cu fișierele de citire și scriere.
Avantajele manipulării fișierelor în Python
- Versatilitate : Gestionarea fișierelor în Python vă permite să efectuați o gamă largă de operațiuni, cum ar fi crearea, citirea, scrierea, adăugarea, redenumirea și ștergerea fișierelor.
- Flexibilitate : Gestionarea fișierelor în Python este foarte flexibilă, deoarece vă permite să lucrați cu diferite tipuri de fișiere (de exemplu, fișiere text, fișiere binare, fișiere CSV , etc.) și pentru a efectua diferite operații asupra fișierelor (de exemplu, citire, scriere, adăugare etc.).
- Utilizator – prietenos : Python oferă o interfață ușor de utilizat pentru gestionarea fișierelor, facilitând crearea, citirea și manipularea fișierelor.
- Multiplatformă : Funcțiile Python de gestionare a fișierelor funcționează pe diferite platforme (de exemplu, Windows, Mac, Linux), permițând integrarea și compatibilitatea perfectă.
Dezavantajele manipulării fișierelor în Python
- predispus la erori: Operațiunile de gestionare a fișierelor în Python pot fi predispuse la erori, mai ales dacă codul nu este scris cu atenție sau dacă există probleme cu sistemul de fișiere (de exemplu, permisiunile fișierelor, blocarea fișierelor etc.).
- Riscuri de securitate : Manipularea fișierelor în Python poate prezenta și riscuri de securitate, mai ales dacă programul acceptă intrarea utilizatorului care poate fi folosită pentru a accesa sau modifica fișierele sensibile din sistem.
- Complexitate : Gestionarea fișierelor în Python poate fi complexă, mai ales atunci când lucrați cu formate de fișiere sau operații mai avansate. Trebuie acordată o atenție deosebită codului pentru a vă asigura că fișierele sunt gestionate corect și în siguranță.
- Performanţă : Operațiunile de gestionare a fișierelor în Python pot fi mai lente decât alte limbaje de programare, mai ales atunci când se ocupă cu fișiere mari sau se efectuează operațiuni complexe.
Pentru acest articol, vom lua în considerare următoarele geeks.txt fișier ca exemplu.
Hello world techcodeview.com 123 456
Deschideți fișierul Python
Înainte de a efectua orice operație asupra fișierului, cum ar fi citirea sau scrierea, mai întâi trebuie să deschidem acel fișier. Pentru aceasta, ar trebui să folosim funcția încorporată a lui Python deschis() dar la momentul deschiderii, trebuie sa specificam modul, care reprezinta scopul fisierului de deschidere.
f = open(filename, mode)
Unde este acceptat următorul mod:
- r: deschideți un fișier existent pentru o operație de citire.
- În: deschideți un fișier existent pentru o operație de scriere. Dacă fișierul conține deja unele date, atunci acesta va fi suprascris, dar dacă fișierul nu este prezent atunci creează și fișierul.
- A: deschideți un fișier existent pentru operația de adăugare. Nu va suprascrie datele existente.
- r+: Pentru a citi și scrie date în fișier. Datele anterioare din fișier vor fi suprascrise.
- w+: Pentru a scrie și a citi date. Va suprascrie datele existente.
- a+: Pentru a adăuga și a citi date din fișier. Nu va suprascrie datele existente.
Lucrează în modul Citire
Există mai mult de o modalitate de a Cum se citește dintr-un fișier în Python . Să vedem cum putem citi conținutul unui fișier în modul citire.
Exemplul 1: Comanda de deschidere va deschide fișierul Python în modul de citire și bucla for va imprima fiecare linie prezentă în fișier.
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)> |
Ieșire:
Hello world techcodeview.com 123 456
Exemplul 2: În acest exemplu, vom extrage un șir care conține toate caracterele din fișierul Python și apoi îl putem folosi file.read() .
Python3
# Python code to illustrate read() mode> file> => open> (> 'geeks.txt'> ,> 'r'> )> print> (> file> .read())> |
Ieșire:
Hello world techcodeview.com 123 456
Exemplul 3: În acest exemplu, vom vedea cum putem citi un fișier folosind cu afirmație în Python.
Python3
# Python code to illustrate with()> with> open> (> 'geeks.txt'> ) as> file> :> > data> => file> .read()> print> (data)> |
Ieșire:
Hello world techcodeview.com 123 456
Exemplul 4: O altă modalitate de a citi un fișier este să apelați un anumit număr de caractere, ca în următorul cod, interpretul va citi primele cinci caractere ale datelor stocate și le va returna ca șir:
Python3
# Python code to illustrate read() mode character wise> file> => open> (> 'geeks.txt'> ,> 'r'> )> print> (> file> .read(> 5> ))> |
Ieșire:
Hello
Exemplul 5: De asemenea, putem împărți linii în timp ce citim fișiere în Python. Funcția split() împarte variabila atunci când se întâlnește spațiu. De asemenea, puteți împărți folosind orice caractere după cum doriți.
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)> |
Ieșire:
['Hello', 'world'] ['techcodeview.com'] ['123', '456']
Crearea unui fișier folosind funcția write().
La fel ca citirea unui fișier în Python, există o serie de moduri de a Se scrie în fișier în Python . Să vedem cum putem scrie conținutul unui fișier folosind funcția write() în Python.
Lucrul în modul de scriere
Să vedem cum se creează un fișier și cum funcționează modul de scriere.
Exemplul 1: În acest exemplu, vom vedea cum se utilizează modul de scriere și funcția write() pentru a scrie într-un fișier. Comanda close() termină toate resursele utilizate și eliberează sistemul acestui program special.
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()> |
Ieșire:
This is the write commandIt allows us to write in a particular file
Exemplul 2: De asemenea, putem folosi declarația scrisă împreună cu funcția with().
Python3
# Python code to illustrate with() alongwith write()> with> open> (> 'file.txt'> ,> 'w'> ) as f:> > f.write(> 'Hello World!!!'> )> |
Ieșire:
Hello World!!!
Funcționarea modului Adăugare
Să vedem cum funcționează modul de adăugare.
Exemplu: Pentru acest exemplu, vom folosi fișierul Python creat în exemplul anterior.
Python3
# Python code to illustrate append() mode> file> => open> (> 'geek.txt'> ,> 'a'> )> file> .write(> 'This will add this line'> )> file> .close()> |
Ieșire:
This is the write commandIt allows us to write in a particular fileThis will add this line
Există, de asemenea, diverse alte comenzi în gestionarea fișierelor Python care sunt utilizate pentru a gestiona diverse sarcini:
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.
Este conceput pentru a oferi o sintaxă mult mai curată și o gestionare a excepțiilor atunci când lucrați cu cod. Aceasta explică de ce este o bună practică să le folosiți cu o declarație, acolo unde este cazul. Acest lucru este util deoarece folosind această metodă orice fișiere deschise vor fi închise automat după ce unul este finalizat, deci curățarea automată.
Implementarea tuturor funcțiilor din File Handling
În acest exemplu, vom acoperi toate conceptele pe care le-am văzut mai sus. În afară de acestea, vom vedea și cum putem șterge un fișier folosind funcția remove() din Python modulul os .
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)> |
Ieșire:
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.