Los archivos CSV (Comma Separated Values) son una de las formas más comunes de almacenar y compartir datos tabulares. Python ofrece múltiples herramientas para trabajar con archivos CSV de manera eficiente. En este artículo, aprenderás cómo leer, escribir y manipular archivos CSV en Python utilizando el módulo csv
y otras técnicas.
1. Leer un archivo CSV
El módulo csv
de Python proporciona una manera sencilla de leer archivos CSV. A continuación, te mostramos cómo hacerlo.
import csv
# Leer un archivo CSV
with open('datos.csv', mode='r') as archivo:
lector_csv = csv.reader(archivo)
for fila in lector_csv:
print(fila)
En este ejemplo, abrimos el archivo datos.csv
en modo de lectura y utilizamos csv.reader
para leerlo fila por fila, imprimiendo cada fila como una lista.
2. Leer un archivo CSV con encabezados
Si tu archivo CSV tiene una fila de encabezados, puedes utilizar csv.DictReader
para leer cada fila como un diccionario, donde las claves son los nombres de las columnas.
import csv
# Leer un archivo CSV con encabezados
with open('datos.csv', mode='r') as archivo:
lector_csv = csv.DictReader(archivo)
for fila in lector_csv:
print(fila)
Este código lee cada fila del archivo datos.csv
como un diccionario, facilitando el acceso a los datos por nombre de columna.
3. Escribir en un archivo CSV
Para escribir en un archivo CSV, puedes usar csv.writer
. A continuación, se muestra cómo crear un nuevo archivo CSV y escribir en él.
import csv
# Datos para escribir
datos = [
['Nombre', 'Edad', 'Ciudad'],
['Juan', '28', 'Madrid'],
['Ana', '22', 'Barcelona'],
['Pedro', '35', 'Valencia']
]
# Escribir en un archivo CSV
with open('salida.csv', mode='w', newline='') as archivo:
escritor_csv = csv.writer(archivo)
escritor_csv.writerows(datos)
En este ejemplo, creamos un archivo salida.csv
y escribimos una lista de listas en él, donde cada sublista representa una fila del archivo.
4. Escribir en un archivo CSV con encabezados
Si deseas escribir un archivo CSV donde las filas se representen como diccionarios, puedes usar csv.DictWriter
.
import csv
# Datos para escribir
datos = [
{'Nombre': 'Juan', 'Edad': 28, 'Ciudad': 'Madrid'},
{'Nombre': 'Ana', 'Edad': 22, 'Ciudad': 'Barcelona'},
{'Nombre': 'Pedro', 'Edad': 35, 'Ciudad': 'Valencia'}
]
# Escribir en un archivo CSV con encabezados
with open('salida.csv', mode='w', newline='') as archivo:
encabezados = ['Nombre', 'Edad', 'Ciudad']
escritor_csv = csv.DictWriter(archivo, fieldnames=encabezados)
escritor_csv.writeheader()
escritor_csv.writerows(datos)
Este código crea un archivo salida.csv
y escribe los datos utilizando un DictWriter
, lo que permite escribir cada fila como un diccionario.
5. Manipular datos de un archivo CSV
Además de leer y escribir, también puedes manipular datos mientras trabajas con archivos CSV. Por ejemplo, puedes filtrar filas o modificar datos antes de escribirlos en un nuevo archivo.
import csv
# Leer y filtrar datos de un archivo CSV
with open('datos.csv', mode='r') as archivo_entrada:
lector_csv = csv.DictReader(archivo_entrada)
filas_filtradas = [fila for fila in lector_csv if int(fila['Edad']) > 25]
# Escribir las filas filtradas en un nuevo archivo CSV
with open('filtrado.csv', mode='w', newline='') as archivo_salida:
encabezados = ['Nombre', 'Edad', 'Ciudad']
escritor_csv = csv.DictWriter(archivo_salida, fieldnames=encabezados)
escritor_csv.writeheader()
escritor_csv.writerows(filas_filtradas)
En este ejemplo, leemos un archivo CSV, filtramos las filas donde la edad es mayor que 25, y luego escribimos las filas filtradas en un nuevo archivo.
Conclusión
Trabajar con archivos CSV en Python es sencillo y flexible gracias al módulo csv
. Ya sea que necesites leer, escribir o manipular datos, Python ofrece herramientas que facilitan el manejo de archivos CSV de manera eficiente. Con estas técnicas, puedes integrar archivos CSV en tus aplicaciones de manera efectiva.