Gestió de fitxers en Python

Gestió de fitxers en Python és una eina potent i versàtil que es pot utilitzar per realitzar una àmplia gamma d'operacions. Tanmateix, és important tenir en compte els avantatges i els desavantatges del maneig de fitxers en escriure programes Python, per assegurar-se que el codi és segur, fiable i funciona bé.

En aquest article explorarem Gestió de fitxers Python, avantatges, desavantatges i com funcionen les funcions d'obrir, escriure i afegir al fitxer Python.

Gestió de fitxers Python

Python admet el maneig de fitxers i permet als usuaris gestionar fitxers, és a dir, llegir i escriure fitxers, juntament amb moltes altres opcions de gestió de fitxers, per operar amb fitxers. El concepte de gestió de fitxers s'ha estès a diversos altres llenguatges, però la implementació és complicada o llarga, com altres conceptes de Python, aquest concepte també és fàcil i breu. Python tracta els fitxers de manera diferent com a text o binari i això és important. Cada línia de codi inclou una seqüència de caràcters i formen un fitxer de text. Cada línia d'un fitxer s'acaba amb un caràcter especial, anomenat EOL o Final de línia personatges com coma {,} o caràcter de nova línia. Acaba la línia actual i diu a l'intèrpret que n'ha començat una de nova. Comencem amb els fitxers de lectura i escriptura.

Avantatges de la gestió de fitxers en Python

  • Versatilitat : El maneig de fitxers a Python us permet realitzar una àmplia gamma d'operacions, com ara crear, llegir, escriure, afegir, canviar el nom i suprimir fitxers.
  • Flexibilitat : El maneig de fitxers a Python és molt flexible, ja que us permet treballar amb diferents tipus de fitxers (per exemple, fitxers de text, fitxers binaris, etc.). Fitxers CSV , etc.), i per realitzar diferents operacions sobre fitxers (per exemple, llegir, escriure, afegir, etc.).
  • Usuari amigable : Python proporciona una interfície fàcil d'utilitzar per al maneig de fitxers, cosa que facilita la creació, la lectura i la manipulació de fitxers.
  • Multiplataforma : Les funcions de gestió de fitxers de Python funcionen en diferents plataformes (per exemple, Windows, Mac, Linux), permetent una integració i compatibilitat perfecta.

Desavantatges del maneig de fitxers en Python

  • Propens a errors: Les operacions de gestió de fitxers a Python poden ser propenses a errors, especialment si el codi no està escrit amb cura o si hi ha problemes amb el sistema de fitxers (per exemple, permisos de fitxers, bloquejos de fitxers, etc.).
  • Riscos de seguretat : El maneig de fitxers a Python també pot suposar riscos de seguretat, especialment si el programa accepta l'entrada de l'usuari que es pot utilitzar per accedir o modificar fitxers sensibles del sistema.
  • Complexitat : El maneig de fitxers a Python pot ser complex, especialment quan es treballa amb formats de fitxer o operacions més avançades. Cal prestar molta atenció al codi per garantir que els fitxers es gestionen correctament i de manera segura.
  • Rendiment : Les operacions de gestió de fitxers a Python poden ser més lentes que altres llenguatges de programació, especialment quan es tracten fitxers grans o es realitzen operacions complexes.

Per a aquest article, tindrem en compte el següent geeks.txt fitxer com a exemple.

Hello world techcodeview.com 123 456 

Fitxer Python obert

Abans de realitzar qualsevol operació sobre el fitxer com llegir o escriure, primer hem d'obrir aquest fitxer. Per a això, hauríem d'utilitzar la funció integrada de Python obert() però en el moment d'obrir, hem d'especificar el mode, que representa la finalitat del fitxer d'obertura.

f = open(filename, mode) 

Quan s'admet el mode següent:

  1. r: obrir un fitxer existent per a una operació de lectura.
  2. En: obrir un fitxer existent per a una operació d'escriptura. Si el fitxer ja conté algunes dades, es substituirà, però si el fitxer no està present, també el crearà.
  3. a: obre un fitxer existent per a l'operació d'afegir. No anul·larà les dades existents.
  4. r+: Per llegir i escriure dades al fitxer. Les dades anteriors del fitxer se substituiran.
  5. w+: Per escriure i llegir dades. Invalidarà les dades existents.
  6. a+: Per afegir i llegir dades del fitxer. No anul·larà les dades existents.

Treballant en mode de lectura

Hi ha més d'una manera de fer-ho Com llegir des d'un fitxer en Python . Vegem com podem llegir el contingut d'un fitxer en mode de lectura.

Exemple 1: L'ordre obert obrirà el fitxer Python en mode de lectura i el bucle for imprimirà cada línia present al fitxer.

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

Sortida:

Hello world techcodeview.com 123 456 

Exemple 2: En aquest exemple, extreurem una cadena que contingui tots els caràcters del fitxer Python i després podem utilitzar file.read() .

Python 3




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

Sortida:

Hello world techcodeview.com 123 456 

Exemple 3: En aquest exemple, veurem com podem llegir un fitxer utilitzant el amb declaració en Python.

Python 3




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

Sortida:

Hello world techcodeview.com 123 456 

Exemple 4: Una altra manera de llegir un fitxer és cridar a un nombre determinat de caràcters, com en el codi següent, l'intèrpret llegirà els primers cinc caràcters de les dades emmagatzemades i els retornarà com a cadena:

Python 3




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

Sortida:

Hello 

Exemple 5: També podem dividir línies mentre llegim fitxers en Python. La funció split() divideix la variable quan es troba espai. També podeu dividir utilitzant qualsevol caràcter com vulgueu.

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

Sortida:

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

Creació d'un fitxer mitjançant la funció write().

Igual que llegir un fitxer a Python, hi ha diverses maneres de fer-ho Escrivint al fitxer en Python . Vegem com podem escriure el contingut d'un fitxer mitjançant la funció write() a Python.

Treballant en mode d'escriptura

Vegem com es crea un fitxer i com funciona el mode d'escriptura.

Exemple 1: En aquest exemple, veurem com s'utilitza el mode d'escriptura i la funció write() per escriure en un fitxer. L'ordre close() finalitza tots els recursos en ús i allibera el sistema d'aquest programa en particular.

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

Sortida:

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

Exemple 2: També podem utilitzar la declaració escrita juntament amb la funció with().

Python 3




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

Sortida:

Hello World!!! 

Funcionament del mode Adjuntar

Vegem com funciona el mode d'adjuntar.

Exemple: Per a aquest exemple, utilitzarem el fitxer Python creat a l'exemple anterior.

Python 3




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

Sortida:

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

També hi ha altres ordres en el maneig de fitxers Python que s'utilitzen per gestionar diverses tasques:

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. 

Està dissenyat per proporcionar una sintaxi i un maneig d'excepcions molt més nets quan treballeu amb codi. Això explica per què és una bona pràctica utilitzar-los amb una declaració si escau. Això és útil perquè amb aquest mètode qualsevol fitxer obert es tancarà automàticament després de fer-ne un, per tant, neteja automàticament.

Implementació de totes les funcions de Gestió de fitxers

En aquest exemple, tractarem tots els conceptes que hem vist anteriorment. A part d'aquests, també veurem com podem eliminar un fitxer mitjançant la funció remove() de Python mòdul os .

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

Sortida:

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.