Curso de python nivel medio

¿Qué es un archivo CSV?

Un CSV (Comma-Separated Values) es un archivo de texto plano que utiliza comas para separar valores. Cada línea del archivo representa una fila de datos, y cada valor separado por comas representa una columna. Los archivos CSV son una manera común de almacenar datos tabulares, como una hoja de cálculo o una tabla de base de datos, en un formato simple y fácil de leer.

Manejo de archivos CSV en Python

Python facilita el trabajo con archivos CSV gracias al módulo csv, que viene incluido en la biblioteca estándar.

Leer un archivo CSV

Supongamos que tienes un archivo CSV llamado datos.csv con el siguiente contenido:

nombre,edad,ciudad
Ana,28,Madrid
Luis,34,Barcelona
Eva,22,Sevilla

Vamos a leer este archivo y mostrar su contenido en pantalla.

Ejemplo: Leer un archivo CSV

1import csv
2
3# Abrir el archivo CSV en modo lectura
4with open('datos.csv', mode='r') as archivo:
5    lector_csv = csv.reader(archivo)
6    
7    # Recorrer las filas del archivo
8    for fila in lector_csv:
9        print(fila)
  • ¿Qué hace este código?:
    • Abre el archivo datos.csv en modo lectura ('r').
    • Usa csv.reader para crear un objeto lector que permite recorrer cada fila del archivo.
    • Imprime cada fila como una lista de valores.
  • Resultado en pantalla:
    ['nombre', 'edad', 'ciudad']
    ['Ana', '28', 'Madrid']
    ['Luis', '34', 'Barcelona']
    ['Eva', '22', 'Sevilla']

Escribir en un archivo CSV

Ahora supongamos que quieres crear un archivo CSV nuevo con algunos datos.

Ejemplo: Escribir en un archivo CSV

1import csv
2
3# Datos que queremos escribir
4datos = [
5    ["nombre", "edad", "ciudad"],
6    ["Carlos", "30", "Valencia"],
7    ["María", "25", "Bilbao"],
8    ["Pedro", "35", "Málaga"]
9]
10
11# Abrir el archivo CSV en modo escritura
12with open('nuevos_datos.csv', mode='w', newline='') as archivo:
13    escritor_csv = csv.writer(archivo)
14    
15    # Escribir las filas en el archivo
16    escritor_csv.writerows(datos)
17
18print("Archivo CSV creado con éxito.")
  • ¿Qué hace este código?:
    • Abre (o crea si no existe) un archivo llamado nuevos_datos.csv en modo escritura ('w').
    • Usa csv.writer para crear un objeto escritor que permite escribir filas en el archivo.
    • Escribe las filas de datos en el archivo usando writerows.
    • Imprime un mensaje confirmando que el archivo se creó con éxito.
  • Resultado en pantalla:
    Archivo CSV creado con éxito.

Si abres el archivo nuevos_datos.csv, verás el siguiente contenido:

nombre,edad,ciudad
Carlos,30,Valencia
María,25,Bilbao
Pedro,35,Málaga

Leer un archivo CSV usando un diccionario

En lugar de trabajar con listas, también puedes leer un archivo CSV en forma de diccionarios, donde cada fila del archivo se convierte en un diccionario con los nombres de las columnas como claves.

Ejemplo: Leer un archivo CSV como diccionario

1import csv
2
3# Abrir el archivo CSV en modo lectura
4with open('datos.csv', mode='r') as archivo:
5    lector_csv = csv.DictReader(archivo)
6    
7    # Recorrer las filas del archivo
8    for fila in lector_csv:
9        print(fila)
  • ¿Qué hace este código?:
    • Abre el archivo datos.csv en modo lectura.
    • Usa csv.DictReader para leer el archivo y convertir cada fila en un diccionario.
    • Imprime cada fila como un diccionario, donde las claves son los nombres de las columnas.
  • Resultado en pantalla:
    {'nombre': 'Ana', 'edad': '28', 'ciudad': 'Madrid'}
    {'nombre': 'Luis', 'edad': '34', 'ciudad': 'Barcelona'}
    {'nombre': 'Eva', 'edad': '22', 'ciudad': 'Sevilla'}

Escribir en un archivo CSV usando un diccionario

También puedes escribir datos en un archivo CSV utilizando diccionarios, lo que puede ser más intuitivo cuando trabajas con datos estructurados.

Ejemplo: Escribir en un archivo CSV usando un diccionario

1import csv
2
3# Datos que queremos escribir
4datos = [
5    {"nombre": "Carlos", "edad": 30, "ciudad": "Valencia"},
6    {"nombre": "María", "edad": 25, "ciudad": "Bilbao"},
7    {"nombre": "Pedro", "edad": 35, "ciudad": "Málaga"}
8]
9
10# Nombres de las columnas
11campos = ["nombre", "edad", "ciudad"]
12
13# Abrir el archivo CSV en modo escritura
14with open('datos_diccionario.csv', mode='w', newline='') as archivo:
15    escritor_csv = csv.DictWriter(archivo, fieldnames=campos)
16    
17    # Escribir los nombres de las columnas
18    escritor_csv.writeheader()
19    
20    # Escribir las filas en el archivo
21    escritor_csv.writerows(datos)
22
23print("Archivo CSV con diccionarios creado con éxito.")
  • ¿Qué hace este código?:
    • Abre (o crea) un archivo llamado datos_diccionario.csv en modo escritura.
    • Usa csv.DictWriter para escribir filas en el archivo como diccionarios.
    • Escribe las filas de datos en el archivo usando writerows.
    • Imprime un mensaje confirmando que el archivo se creó con éxito.
  • Resultado en pantalla:
    Archivo CSV con diccionarios creado con éxito.

Si abres el archivo datos_diccionario.csv, verás el siguiente contenido:

nombre,edad,ciudad
Carlos,30,Valencia
María,25,Bilbao
Pedro,35,Málaga

Conclusión

Manejar archivos CSV en Python es una tarea común y fácil de realizar gracias al módulo csv. Puedes leer y escribir datos en archivos CSV de forma eficiente, lo que es útil para trabajar con datos tabulares en muchas aplicaciones, desde análisis de datos hasta el intercambio de información entre sistemas. ¡Practica con tus propios archivos CSV para familiarizarte con estas técnicas!

  • Loading...