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.csven modo lectura ('r'). - Usa
csv.readerpara crear un objeto lector que permite recorrer cada fila del archivo. - Imprime cada fila como una lista de valores.
- Abre el archivo
- 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.csven modo escritura ('w'). - Usa
csv.writerpara 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.
- Abre (o crea si no existe) un archivo llamado
- 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.csven modo lectura. - Usa
csv.DictReaderpara 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.
- Abre el archivo
- 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.csven modo escritura. - Usa
csv.DictWriterpara 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.
- Abre (o crea) un archivo llamado
- 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...