logo

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.

els millors cotxes del món

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

>

>

com convertir un nombre enter en una cadena java

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