Cómo leer y escribir archivos CSV en Python: Guía completa
Cómo leer y escribir archivos CSV en Python: Guía completa
¿Qué es un archivo CSV?
Un archivo CSV (Valores Separados por Comas) almacena datos tabulares en texto plano. Cada línea representa una fila, y los campos individuales están separados por una coma, punto y coma u otro delimitador. Los archivos CSV son ligeros, ampliamente compatibles con hojas de cálculo, bases de datos y herramientas de análisis de datos, lo que los convierte en un formato preferido para intercambio de datos.
Archivo CSV de ejemplo
A continuación se muestra una representación CSV típica de una pequeña base de datos de lenguajes de programación. La primera fila contiene encabezados de columna, seguidos por filas de datos.
Datos de tabla
| Lenguaje de programación | Diseñado por | Apareció | Extensión |
|---|---|---|---|
| Python | Guido van Rossum | 1991 | .py |
| Java | James Gosling | 1995 | .java |
| C++ | Bjarne Stroustrup | 1983 | .cpp |
Datos CSV
Lenguaje de programación,Diseñado por,Apareció,Extensión Python,Guido van Rossum,1991,.py Java,James Gosling,1995,.java C++,Bjarne Stroustrup,1983,.cpp
Módulo csv integrado de Python
El módulo csv proporciona herramientas de bajo nivel para leer y escribir archivos CSV. Maneja automáticamente comillas, delimitadores y terminadores de línea, reduciendo la necesidad de manipulación manual de cadenas.
Funciones clave
csv.reader()– Iterar sobre filas como listas.csv.DictReader()– Convertir filas en diccionarios claveados por nombres de columna.csv.writer()– Escribir filas en un archivo CSV.csv.DictWriter()– Escribir diccionarios en un archivo CSV.- Ayudantes de dialecto:
csv.get_dialect(),csv.list_dialects(),csv.register_dialect(),csv.unregister_dialect().
Lectura de un archivo CSV
A continuación se muestra un ejemplo mínimo, listo para producción, que lee un archivo CSV e imprime cada fila como lista de Python.
import csv
with open('datos.csv', mode='r', newline='', encoding='utf-8') as archivo:
lector = csv.reader(archivo)
for fila in lector:
print(fila)
La salida será:
["Lenguaje de programación", "Diseñado por", "Apareció", "Extensión"] ["Python", "Guido van Rossum", "1991", ".py"] ["Java", "James Gosling", "1995", ".java"] ["C++", "Bjarne Stroustrup", "1983", ".cpp"]
Lectura de CSV en un diccionario
Usando csv.DictReader mapea automáticamente la fila de encabezado a claves de diccionario, simplificando el manejo de datos.
import csv
with open('datos.csv', mode='r', newline='', encoding='utf-8') as archivo:
lector = csv.DictReader(archivo)
for fila in lector:
print(fila)
Diccionarios resultantes:
{"Lenguaje de programación": "Python", "Diseñado por": "Guido van Rossum", "Apareció": "1991", "Extensión": ".py"}
{"Lenguaje de programación": "Java", "Diseñado por": "James Gosling", "Apareció": "1995", "Extensión": ".java"}
{"Lenguaje de programación": "C++", "Diseñado por": "Bjarne Stroustrup", "Apareció": "1983", "Extensión": ".cpp"}
Escritura de un archivo CSV
Las clases csv.writer y csv.DictWriter te permiten escribir datos eficientemente.
import csv
filas = [
["Lenguaje de programación", "Diseñado por", "Apareció", "Extensión"],
["Python", "Guido van Rossum", "1991", ".py"],
["Java", "James Gosling", "1995", ".java"],
["C++", "Bjarne Stroustrup", "1983", ".cpp"],
]
with open('escribirDatos.csv', mode='w', newline='', encoding='utf-8') as archivo:
escritor = csv.writer(archivo, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
escritor.writerows(filas)
El escribirDatos.csv generado coincidirá con la muestra original.
Usando Pandas para operaciones CSV
Pandas simplifica el manejo de CSV cargando datos en un DataFrame, permitiendo manipulación potente de datos con código mínimo. Instala con pip install pandas si no está disponible.
Lectura con Pandas
import pandas as pd
df = pd.read_csv('datos.csv')
print(df)
Salida:
Lenguaje de programación Diseñado por Apareció Extensión 0 Python Guido van Rossum 1991 .py 1 Java James Gosling 1995 .java 2 C++ Bjarne Stroustrup 1983 .cpp
Escritura con Pandas
import pandas as pd
datos = {
'Lenguaje de programación': ['Python', 'Java', 'C++'],
'Diseñado por': ['Guido van Rossum', 'James Gosling', 'Bjarne Stroustrup'],
'Apareció': ['1991', '1995', '1983'],
'Extensión': ['.py', '.java', '.cpp'],
}
df = pd.DataFrame(datos)
df.to_csv('resultado_pandas.csv', index=False)
print(df)
El CSV resultante es idéntico al original, pero el DataFrame ofrece capacidades avanzadas de análisis.
Conclusión
El módulo csv de Python y Pandas proporcionan herramientas robustas y fáciles de usar para leer, escribir y manipular archivos CSV. Dominar estas librerías desbloquea flujos de trabajo de datos eficientes en servicios web, pipelines ETL e investigación científica. ¡Comienza a experimentar hoy e integra el manejo de CSV en tus proyectos con confianza!
python
- Inicialización de RAM de bloques FPGA desde archivos de texto usando la biblioteca TEXTIO de VHDL
- Palabras clave e identificadores en Python: Dominando palabras reservadas y convenciones de nomenclatura
- Sentencias, indentación y comentarios en Python: Guía clara
- Variables, constantes y literales en Python – Guía completa
- Dominando conversión y casting de tipos en Python: Guía completa
- Dominando E/S e importación de módulos en Python: Guía práctica
- Entendiendo variables globales, locales y nonlocal en Python
- Entrada/Salida de Archivos en Python: Dominando Operaciones de Lectura, Escritura y Gestión
- Dominando Operaciones de Directorios y Archivos en Python
- Dominando Errores y Excepciones Integradas en Python
- Obtener la Fecha y Hora Actual en Python: Guía Práctica