Clase 04 · 12 minGratis

Así lees (y así rompes) archivos en Python: open() con r, w, a y x

Clase 4 del curso gratis de Python para Análisis de Datos: leer, escribir, acumular y crear archivos con open(), y qué pasa si abres un Excel como texto.

Casi toda la información de trabajo vive en archivos: TXT, CSV, Excel. Antes de llegar a herramientas como Pandas, conviene entender cómo Python abre un archivo por dentro. El comando es uno solo: open.

La estructura

python
with open("gastos.txt", "r", encoding="utf-8") as archivo:
    contenido = archivo.read()

print(contenido)
  • open("gastos.txt", ...): el archivo que quieres abrir. Si está dentro de carpetas, escribes la ruta (el path): "carpeta_a/carpeta_b/gastos.txt".
  • "r": el modo, cómo lo quieres abrir.
  • with ... as archivo: le da un nombre al archivo mientras trabajas y lo cierra solo al terminar.

Los cuatro modos

  • "r" (leer): solo lectura. Es el modo por defecto: si no lo escribes, Python asume "r". Aun así, escribirlo hace el código más claro.
  • "w" (escribir): sobreescribe todo lo que había. Cuidado: un solo modo mal puesto y borras el archivo.
  • "a" (acumular): agrega al final sin tocar lo que ya existía.
  • "x" (crear): crea el archivo, y falla si ya existe.
python
with open("notas.txt", "w", encoding="utf-8") as archivo:
    archivo.write("Hola, mundo\n")          # reemplaza todo

with open("notas.txt", "a", encoding="utf-8") as archivo:
    archivo.write("Datos Dinámicos\n")      # se suma al final

En Google Colab, los archivos que subes al panel de la izquierda son temporales: se borran cuando cierras la sesión.

¿Y si abro un Excel como texto?

python
with open("gastos.xlsx", "r", encoding="utf-8") as archivo:
    archivo.read()
# UnicodeDecodeError: 'utf-8' codec can't decode byte...

Aparecen símbolos rarísimos o un error. UTF-8 es el estándar de texto plano (las letras y símbolos de tu teclado), y un Excel no es texto plano: tiene celdas, formato y está comprimido por dentro. Es como abrir un Excel con el bloc de notas.

¿Cómo se lee un Excel, entonces? Con Pandas, que lo resuelve en una línea (pd.read_excel). Lo vemos más adelante en el curso.

El reto de esta clase

Lee gastos.txt línea por línea, suma todo lo que se gastó en café y escribe un reporte.txt con el total (modo "w") y la cantidad de cafés (modo "a"). Enunciado y solución en el material de la clase.

Te avisamos de cada clase nueva

Un correo el día del estreno, con el video y sus apuntes. Gratis, y te das de baja cuando quieras.

Gratis y sin tarjeta. Te escribimos para avisarte de cada clase y puedes darte de baja cuando quieras.

Seguir el canal de WhatsApp