0Pricing
Python Academy · Lección

Escritura de CSV con csv.DictWriter

Escriba datos estructurados en CSV utilizando DictReader y DictWriter.

Escritura de CSV con csv.DictWriter es una lección gratuita de Python Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Python Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Python Academy incluye 4 lecciones en total.

Introducción

csv.writer y csv.DictWriter escriben datos de Python en formato CSV y gestionan automáticamente las comillas y los delimitadores.

Conceptos básicos de csv.writer

csv.writer(f).writerow(row) escribe una sola fila. writerows(rows) escribe varias.
import csv, io
buf = io.StringIO()
writer = csv.writer(buf)
writer.writerow(['name', 'age'])
writer.writerow(['Alice', 30])
print(buf.getvalue())

Comportamiento de las comillas

De forma predeterminada, los campos que contienen comas o comillas se entrecomillan automáticamente. quoting=csv.QUOTE_ALL entrecomilla todos los campos.
import csv, io
buf = io.StringIO()
writer = csv.writer(buf, quoting=csv.QUOTE_ALL)
writer.writerow(['Alice', 'NYC, NY', 30])
print(buf.getvalue())

csv.DictWriter

DictWriter escribe diccionarios como filas. Especifique fieldnames. writeheader() escribe las cabeceras de las columnas.
import csv, io
buf = io.StringIO()
fields = ['name', 'age']
writer = csv.DictWriter(buf, fieldnames=fields)
writer.writeheader()
writer.writerow({'name': 'Alice', 'age': 30})
print(buf.getvalue())

writerows() para varias filas

writer.writerows(list_of_rows) es más eficiente que llamar a writerow() dentro de un bucle.
import csv, io
buf = io.StringIO()
writer = csv.DictWriter(buf, fieldnames=['x','y'])
writer.writeheader()
writer.writerows([{'x':1,'y':2},{'x':3,'y':4}])
print(buf.getvalue())

Delimitador personalizado

csv.writer(f, delimiter='\t') escribe valores separados por tabulaciones (TSV).
import csv, io
buf = io.StringIO()
writer = csv.writer(buf, delimiter='\t')
writer.writerow(['a', 'b', 'c'])
print(repr(buf.getvalue()))

Parámetro extrasaction

DictWriter(f, fieldnames, extrasaction='ignore') ignora silenciosamente las claves adicionales del diccionario en lugar de generar ValueError.
import csv, io
buf = io.StringIO()
w = csv.DictWriter(buf, fieldnames=['name'], extrasaction='ignore')
w.writeheader()
w.writerow({'name': 'Alice', 'extra': 'ignored'})
print(buf.getvalue())

Escribir en un archivo real

with open('out.csv','w',newline='',encoding='utf-8') as f: ; utilice siempre newline='' y especifique la codificación.
import csv, tempfile, os
tmp = tempfile.mktemp(suffix='.csv')
with open(tmp, 'w', newline='') as f:
    csv.writer(f).writerows([[1,2],[3,4]])
print(open(tmp).read())
os.unlink(tmp)

Añadir datos a un CSV

open(file, 'a') añade datos. Tenga cuidado de no volver a escribir la cabecera al añadir contenido.
import csv, io
buf = io.StringIO()
w = csv.writer(buf)
w.writerow(['x', 'y'])
print(buf.getvalue())

Escrituras grandes en streaming

Escriba fila por fila; no acumule todas las filas en memoria antes de escribirlas.
import csv, io
buf = io.StringIO()
writer = csv.writer(buf)
for i in range(5):
    writer.writerow([i, i**2])
print(buf.getvalue())

Prueba de ida y vuelta

Escriba los datos en un CSV y, después, vuelva a leerlos para comprobar que son correctos.
import csv, io
original = [{'name':'Alice','age':'30'},{'name':'Bob','age':'25'}]
buf = io.StringIO()
w = csv.DictWriter(buf, fieldnames=['name','age'])
w.writeheader()
w.writerows(original)
buf.seek(0)
read_back = list(csv.DictReader(buf))
print(read_back == original)

Comprobación rápida

¿Qué método de DictWriter escribe los nombres de las columnas como primera fila?

Resumen

csv.writer: writerow/writerows. DictWriter: writeheader + writerow/writerows. Abra siempre con newline=''. Use extrasaction='ignore' para diccionarios flexibles.

Continúe

¡Siga así! Pase a la lección siguiente.

Preguntas frecuentes

¿La lección «Escritura de CSV con csv.DictWriter» es gratis?

Sí — el texto completo de «Escritura de CSV con csv.DictWriter» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Python Academy, actualiza a CoddyKit PRO. El curso de Python Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Escritura de CSV con csv.DictWriter»?

Escriba datos estructurados en CSV utilizando DictReader y DictWriter. Practicas Python Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Python Academy?

No se requiere experiencia previa. Python Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Escritura de CSV con csv.DictWriter»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Python Academy?

Sí. Cada lección de Python Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Codificación y decodificación de JSON
  2. Gestión de estructuras JSON anidadas
  3. Lectura de CSV con csv.reader
  4. Escritura de CSV con csv.DictWriter
← Volver a Python Academy