Els fitxers CSV (Comma-Separated Values) són un format comú per emmagatzemar dades tabulars en text pla. Python proporciona diverses maneres de treballar amb fitxers CSV, incloent-hi el mòdul csv
de la biblioteca estàndard.
Continguts
Introducció als Fitxers CSV
Els fitxers CSV són fitxers de text on cada línia representa un registre de dades, i cada camp dins del registre està separat per una coma (o un altre delimitador). Aquests fitxers són àmpliament utilitzats per la seva simplicitat i compatibilitat amb moltes aplicacions.
Exemple de Fitxer CSV
Lectura de Fitxers CSV
Per llegir fitxers CSV en Python, utilitzarem el mòdul csv
. A continuació es mostra un exemple bàsic de com llegir un fitxer CSV.
Exemple de Lectura de Fitxer CSV
import csv with open('exemple.csv', mode='r', newline='') as file: reader = csv.reader(file) for row in reader: print(row)
Explicació del Codi
- Importació del Mòdul: Importem el mòdul
csv
. - Obrir el Fitxer: Utilitzem la funció
open
per obrir el fitxer en mode lectura ('r'
). - Crear un Reader: Utilitzem
csv.reader
per crear un objecte reader que iterarà sobre les línies del fitxer. - Iterar sobre les Línies: Utilitzem un bucle
for
per iterar sobre cada línia del fitxer i imprimir-la.
Lectura de Fitxers CSV amb DictReader
csv.DictReader
llegeix les línies del fitxer CSV com a diccionaris, on les claus són els noms de les columnes.
import csv with open('exemple.csv', mode='r', newline='') as file: reader = csv.DictReader(file) for row in reader: print(row)
Explicació del Codi
- Crear un DictReader: Utilitzem
csv.DictReader
per crear un objecte reader que retorna cada línia com un diccionari.
Escriptura de Fitxers CSV
Per escriure fitxers CSV, també utilitzarem el mòdul csv
. A continuació es mostra un exemple bàsic de com escriure un fitxer CSV.
Exemple d'Escriptura de Fitxer CSV
import csv dades = [ ['nom', 'edat', 'ciutat'], ['Joan', 25, 'Barcelona'], ['Maria', 30, 'Madrid'], ['Pere', 22, 'València'] ] with open('exemple_escriptura.csv', mode='w', newline='') as file: writer = csv.writer(file) writer.writerows(dades)
Explicació del Codi
- Dades: Definim una llista de llistes que conté les dades que volem escriure.
- Obrir el Fitxer: Utilitzem la funció
open
per obrir el fitxer en mode escriptura ('w'
). - Crear un Writer: Utilitzem
csv.writer
per crear un objecte writer. - Escriure les Dades: Utilitzem
writer.writerows
per escriure totes les files de dades al fitxer.
Escriptura de Fitxers CSV amb DictWriter
csv.DictWriter
permet escriure diccionaris en un fitxer CSV.
import csv dades = [ {'nom': 'Joan', 'edat': 25, 'ciutat': 'Barcelona'}, {'nom': 'Maria', 'edat': 30, 'ciutat': 'Madrid'}, {'nom': 'Pere', 'edat': 22, 'ciutat': 'València'} ] with open('exemple_dict_escriptura.csv', mode='w', newline='') as file: fieldnames = ['nom', 'edat', 'ciutat'] writer = csv.DictWriter(file, fieldnames=fieldnames) writer.writeheader() writer.writerows(dades)
Explicació del Codi
- Dades: Definim una llista de diccionaris que conté les dades que volem escriure.
- Fieldnames: Definim els noms dels camps (columnes).
- Crear un DictWriter: Utilitzem
csv.DictWriter
per crear un objecte writer. - Escriure l'Encapçalament: Utilitzem
writer.writeheader
per escriure l'encapçalament. - Escriure les Dades: Utilitzem
writer.writerows
per escriure totes les files de dades al fitxer.
Exercicis Pràctics
Exercici 1: Lectura de Fitxer CSV
Llegeix el fitxer dades.csv
i imprimeix només les persones que tenen més de 25 anys.
Solució
import csv with open('dades.csv', mode='r', newline='') as file: reader = csv.DictReader(file) for row in reader: if int(row['edat']) > 25: print(row)
Exercici 2: Escriptura de Fitxer CSV
Crea un fitxer CSV anomenat resultats.csv
que contingui les dades següents:
nom | puntuació |
---|---|
Anna | 85 |
Marc | 90 |
Laura | 78 |
Solució
import csv dades = [ {'nom': 'Anna', 'puntuació': 85}, {'nom': 'Marc', 'puntuació': 90}, {'nom': 'Laura', 'puntuació': 78} ] with open('resultats.csv', mode='w', newline='') as file: fieldnames = ['nom', 'puntuació'] writer = csv.DictWriter(file, fieldnames=fieldnames) writer.writeheader() writer.writerows(dades)
Conclusió
En aquesta secció, hem après a treballar amb fitxers CSV en Python utilitzant el mòdul csv
. Hem vist com llegir i escriure fitxers CSV tant amb csv.reader
i csv.writer
com amb csv.DictReader
i csv.DictWriter
. A més, hem practicat amb alguns exercicis per reforçar els conceptes apresos. Ara estàs preparat per gestionar fitxers CSV en els teus projectes Python.
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