Comprender los conceptos básicos de los archivos CSV en Python
CSV (Comma-Separated Values, Valores Separados por Comas) es un formato de archivo popular utilizado para almacenar e intercambiar datos tabulares. En Python, el módulo incorporado csv proporciona una forma sencilla de trabajar con archivos CSV.
¿Qué es un archivo CSV?
Un archivo CSV es un archivo de texto plano que almacena datos en un formato tabular, donde cada fila representa un registro y cada columna representa un campo o atributo. Los valores en cada fila están separados por un delimitador, normalmente una coma (,), pero también se pueden utilizar otros delimitadores como punto y coma (;) o tabulaciones (\t).
A continuación, se muestra un ejemplo de un archivo CSV simple:
Name,Age,City
John,25,New York
Jane,30,London
Bob,35,Paris
Leer archivos CSV en Python
Para leer un archivo CSV en Python, puede utilizar la función csv.reader() del módulo csv. Esta función toma un iterable (como un objeto de archivo) y devuelve un objeto lector sobre el que puede iterar para acceder a los datos.
import csv
with open('data.csv', 'r') as file:
reader = csv.reader(file)
for row in reader:
print(row)
Este código mostrará cada fila del archivo CSV como una lista de valores.
Escribir archivos CSV en Python
Para escribir datos en un archivo CSV, puede utilizar la función csv.writer(). Esta función toma un iterable (como un objeto de archivo) y devuelve un objeto escritor que puede utilizar para escribir filas de datos en el archivo.
import csv
data = [['Name', 'Age', 'City'],
['John', 25, 'New York'],
['Jane', 30, 'London'],
['Bob', 35, 'Paris']]
with open('output.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerows(data)
Este código creará un nuevo archivo CSV llamado output.csv con los datos proporcionados en la lista data.
Manejar las codificaciones de archivos CSV
De forma predeterminada, el módulo csv en Python asume que el archivo CSV está codificado en UTF-8. Sin embargo, si el archivo está codificado en un formato diferente, es posible que deba especificar la codificación al abrir el archivo.
import csv
with open('data.csv', 'r', encoding='latin-1') as file:
reader = csv.reader(file)
for row in reader:
print(row)
En este ejemplo, el archivo se abre con la codificación 'latin-1'.