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

nom,edat,ciutat
Joan,25,Barcelona
Maria,30,Madrid
Pere,22,València

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

  1. Importació del Mòdul: Importem el mòdul csv.
  2. Obrir el Fitxer: Utilitzem la funció open per obrir el fitxer en mode lectura ('r').
  3. Crear un Reader: Utilitzem csv.reader per crear un objecte reader que iterarà sobre les línies del fitxer.
  4. 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

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

  1. Dades: Definim una llista de llistes que conté les dades que volem escriure.
  2. Obrir el Fitxer: Utilitzem la funció open per obrir el fitxer en mode escriptura ('w').
  3. Crear un Writer: Utilitzem csv.writer per crear un objecte writer.
  4. 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

  1. Dades: Definim una llista de diccionaris que conté les dades que volem escriure.
  2. Fieldnames: Definim els noms dels camps (columnes).
  3. Crear un DictWriter: Utilitzem csv.DictWriter per crear un objecte writer.
  4. Escriure l'Encapçalament: Utilitzem writer.writeheader per escriure l'encapçalament.
  5. 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

Mòdul 2: Estructures de Control

Mòdul 3: Funcions i Mòduls

Mòdul 4: Estructures de Dades

Mòdul 5: Programació Orientada a Objectes

Mòdul 6: Gestió de Fitxers

Mòdul 7: Gestió d'Errors i Excepcions

Mòdul 8: Temes Avançats

Mòdul 9: Proves i Depuració

Mòdul 10: Desenvolupament Web amb Python

Mòdul 11: Ciència de Dades amb Python

Mòdul 12: Projecte Final

© Copyright 2024. Tots els drets reservats