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ó
openper obrir el fitxer en mode lectura ('r'). - Crear un Reader: Utilitzem
csv.readerper crear un objecte reader que iterarà sobre les línies del fitxer. - Iterar sobre les Línies: Utilitzem un bucle
forper 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.DictReaderper 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ó
openper obrir el fitxer en mode escriptura ('w'). - Crear un Writer: Utilitzem
csv.writerper crear un objecte writer. - Escriure les Dades: Utilitzem
writer.writerowsper 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.DictWriterper crear un objecte writer. - Escriure l'Encapçalament: Utilitzem
writer.writeheaderper escriure l'encapçalament. - Escriure les Dades: Utilitzem
writer.writerowsper 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
