En aquest tema, aprendrem com treballar amb fitxers en Python. La gestió de fitxers és una habilitat essencial per a qualsevol programador, ja que permet llegir dades d'arxius externs i escriure resultats en fitxers per a emmagatzematge o anàlisi posterior.
Continguts
- Introducció a la Gestió de Fitxers
- Obrir i Tancar Fitxers
- Modes d'Accés a Fitxers
- Llegir Fitxers
- Escriure Fitxers
- Gestió d'Errors en la Lectura i Escriptura de Fitxers
- Exercicis Pràctics
- Introducció a la Gestió de Fitxers
Python proporciona diverses funcions i mètodes per treballar amb fitxers. Els fitxers poden ser de text o binaris, i Python pot gestionar ambdós tipus de fitxers de manera eficient.
- Obrir i Tancar Fitxers
Obrir Fitxers
Per obrir un fitxer en Python, utilitzem la funció open()
. Aquesta funció retorna un objecte fitxer, que podem utilitzar per llegir o escriure dades.
Tancar Fitxers
És important tancar els fitxers després d'haver acabat de treballar amb ells per alliberar recursos del sistema. Utilitzem el mètode close()
per fer-ho.
- Modes d'Accés a Fitxers
Quan obrim un fitxer, podem especificar diferents modes d'accés:
Mode | Descripció |
---|---|
'r' |
Mode lectura (per defecte). El fitxer ha d'existir. |
'w' |
Mode escriptura. Si el fitxer existeix, es sobreescriu. Si no, es crea un nou fitxer. |
'a' |
Mode afegir. Les dades s'afegeixen al final del fitxer. Si no existeix, es crea un nou fitxer. |
'b' |
Mode binari. Utilitzat amb altres modes ('rb' , 'wb' , 'ab' ). |
'+' |
Mode lectura i escriptura. Utilitzat amb altres modes ('r+' , 'w+' , 'a+' ). |
- Llegir Fitxers
Llegir Tot el Contingut
Podem utilitzar el mètode read()
per llegir tot el contingut d'un fitxer.
Llegir Línia per Línia
El mètode readline()
llegeix una línia del fitxer a la vegada.
fitxer = open('exemple.txt', 'r') linia = fitxer.readline() while linia: print(linia, end='') linia = fitxer.readline() fitxer.close()
Llegir Totes les Línies
El mètode readlines()
retorna una llista amb totes les línies del fitxer.
fitxer = open('exemple.txt', 'r') linies = fitxer.readlines() for linia in linies: print(linia, end='') fitxer.close()
- Escriure Fitxers
Escriure una Cadena
Podem utilitzar el mètode write()
per escriure una cadena en un fitxer.
fitxer = open('exemple.txt', 'w') fitxer.write('Hola, món!\n') fitxer.write('Aquesta és una altra línia.\n') fitxer.close()
Escriure una Llista de Línies
El mètode writelines()
escriu una llista de línies en un fitxer.
linies = ['Primera línia\n', 'Segona línia\n', 'Tercera línia\n'] fitxer = open('exemple.txt', 'w') fitxer.writelines(linies) fitxer.close()
- Gestió d'Errors en la Lectura i Escriptura de Fitxers
És important gestionar els errors que poden ocórrer durant la lectura i escriptura de fitxers. Utilitzem blocs try-except
per capturar i gestionar excepcions.
try: fitxer = open('exemple.txt', 'r') contingut = fitxer.read() print(contingut) except FileNotFoundError: print("El fitxer no existeix.") finally: fitxer.close()
- Exercicis Pràctics
Exercici 1: Llegir un Fitxer de Text
Crea un fitxer de text anomenat poema.txt
amb el següent contingut:
Escriu un programa que llegeixi i imprimeixi el contingut del fitxer.
Solució
try: fitxer = open('poema.txt', 'r') contingut = fitxer.read() print(contingut) except FileNotFoundError: print("El fitxer no existeix.") finally: fitxer.close()
Exercici 2: Escriure en un Fitxer
Escriu un programa que demani a l'usuari que introdueixi diverses línies de text i les escrigui en un fitxer anomenat usuari.txt
. El programa ha de continuar demanant línies fins que l'usuari introdueixi una línia buida.
Solució
fitxer = open('usuari.txt', 'w') while True: linia = input("Introdueix una línia de text (o deixa en blanc per acabar): ") if linia == "": break fitxer.write(linia + '\n') fitxer.close()
Resum
En aquesta secció, hem après com obrir, llegir i escriure fitxers en Python. També hem vist com gestionar errors durant la lectura i escriptura de fitxers. Aquests coneixements són fonamentals per treballar amb dades emmagatzemades en fitxers i per desenvolupar aplicacions que necessiten llegir o escriure informació persistent.
Curs de Programació en Python
Mòdul 1: Introducció a Python
- Introducció a Python
- Configuració de l'Entorn de Desenvolupament
- Sintaxi de Python i Tipus de Dades Bàsics
- Variables i Constants
- Entrada i Sortida Bàsiques
Mòdul 2: Estructures de Control
Mòdul 3: Funcions i Mòduls
- Definició de Funcions
- Arguments de Funció
- Funcions Lambda
- Mòduls i Paquets
- Visió General de la Biblioteca Estàndard
Mòdul 4: Estructures de Dades
Mòdul 5: Programació Orientada a Objectes
Mòdul 6: Gestió de Fitxers
- Lectura i Escriptura de Fitxers
- Treballant amb Fitxers CSV
- Gestió de Dades JSON
- Operacions amb Fitxers i Directoris
Mòdul 7: Gestió d'Errors i Excepcions
Mòdul 8: Temes Avançats
- Decoradors
- Generadors
- Gestors de Context
- Concurrència: Fils i Processos
- Asyncio per a Programació Asíncrona
Mòdul 9: Proves i Depuració
- Introducció a les Proves
- Proves Unitàries amb unittest
- Desenvolupament Guiat per Proves
- Tècniques de Depuració
- Ús de pdb per a la Depuració
Mòdul 10: Desenvolupament Web amb Python
- Introducció al Desenvolupament Web
- Conceptes Bàsics del Framework Flask
- Construcció d'APIs REST amb Flask
- Introducció a Django
- Construcció d'Aplicacions Web amb Django
Mòdul 11: Ciència de Dades amb Python
- Introducció a la Ciència de Dades
- NumPy per al Càlcul Numèric
- Pandas per a la Manipulació de Dades
- Matplotlib per a la Visualització de Dades
- Introducció al Machine Learning amb scikit-learn