Mostrando entradas con la etiqueta AprenderPython. Mostrar todas las entradas
Mostrando entradas con la etiqueta AprenderPython. Mostrar todas las entradas

domingo, 9 de marzo de 2025

馃憠 Ejercicios Pr谩cticos con Flask y SQLite en Python

Ya aprendimos a conectar SQLite con Flask para crear aplicaciones web din谩micas. Ahora es momento de poner en pr谩ctica lo aprendido con ejercicios explicados paso a paso.

Hoy resolveremos ejercicios sobre:
✔️ Conectar Flask con una base de datos SQLite
✔️ Crear una API para insertar y consultar datos
✔️ Actualizar y eliminar registros desde la web
✔️ Ejemplo pr谩ctico con un sistema de gesti贸n de tareas

馃搶 Cada ejercicio incluye c贸digo, explicaci贸n y prueba de salida.


1️⃣ Ejercicio: Crear la Base de Datos SQLite y una Tabla de Tareas

馃搷 Objetivo: Crear una base de datos tareas.db y una tabla tareas.

馃敼 C贸digo:

import sqlite3 conexion = sqlite3.connect("tareas.db") cursor = conexion.cursor() cursor.execute(""" CREATE TABLE IF NOT EXISTS tareas ( id INTEGER PRIMARY KEY AUTOINCREMENT, descripcion TEXT, estado TEXT ) """) conexion.commit() conexion.close() print("Base de datos y tabla de tareas creadas exitosamente.")

馃搶 Salida esperada:

Base de datos y tabla de tareas creadas exitosamente.

Este c贸digo crea la base de datos SQLite con una tabla de tareas.


2️⃣ Ejercicio: Crear una API con Flask para Obtener las Tareas

馃搷 Objetivo: Crear una API con Flask para obtener todas las tareas almacenadas en SQLite.

馃敼 C贸digo:

from flask import Flask, jsonify import sqlite3 app = Flask(__name__) def get_db_connection(): conexion = sqlite3.connect("tareas.db") conexion.row_factory = sqlite3.Row return conexion @app.route("/tareas", methods=["GET"]) def obtener_tareas(): conexion = get_db_connection() cursor = conexion.cursor() cursor.execute("SELECT * FROM tareas") tareas = cursor.fetchall() conexion.close() tareas_json = [{"id": tarea["id"], "descripcion": tarea["descripcion"], "estado": tarea["estado"]} for tarea in tareas] return jsonify(tareas_json) if __name__ == "__main__": app.run(debug=True)

馃搶 Salida esperada en http://127.0.0.1:5000/tareas:

[ {"id": 1, "descripcion": "Terminar proyecto", "estado": "Pendiente"}, {"id": 2, "descripcion": "Enviar informe", "estado": "Completado"} ]

Esta API permite obtener todas las tareas almacenadas en la base de datos.


3️⃣ Ejercicio: Agregar Tareas a la Base de Datos Desde una API

馃搷 Objetivo: Permitir que los usuarios agreguen tareas mediante una API Flask.

馃敼 C贸digo:

from flask import request @app.route("/tareas", methods=["POST"]) def agregar_tarea(): nueva_tarea = request.json conexion = get_db_connection() cursor = conexion.cursor() cursor.execute("INSERT INTO tareas (descripcion, estado) VALUES (?, ?)", (nueva_tarea["descripcion"], nueva_tarea["estado"])) conexion.commit() conexion.close() return jsonify({"mensaje": "Tarea agregada correctamente"}), 201

馃搶 Ejemplo de JSON enviado en una petici贸n POST:

{ "descripcion": "Aprender Flask", "estado": "Pendiente" }

馃搶 Salida esperada:

{ "mensaje": "Tarea agregada correctamente" }

Este c贸digo permite que los usuarios a帽adan tareas a la base de datos.


4️⃣ Ejercicio: Actualizar el Estado de una Tarea

馃搷 Objetivo: Modificar el estado de una tarea en la base de datos.

馃敼 C贸digo:

@app.route("/tareas/<int:id>", methods=["PUT"]) def actualizar_tarea(id): datos = request.json conexion = get_db_connection() cursor = conexion.cursor() cursor.execute("UPDATE tareas SET estado = ? WHERE id = ?", (datos["estado"], id)) conexion.commit() conexion.close() return jsonify({"mensaje": "Tarea actualizada correctamente"})

馃搶 Ejemplo de JSON enviado en una petici贸n PUT:

{ "estado": "Completado" }

馃搶 Salida esperada:

{ "mensaje": "Tarea actualizada correctamente" }

Este c贸digo permite actualizar el estado de una tarea espec铆fica.


5️⃣ Ejercicio: Eliminar una Tarea de la Base de Datos

馃搷 Objetivo: Borrar una tarea de la base de datos SQLite.

馃敼 C贸digo:

@app.route("/tareas/<int:id>", methods=["DELETE"]) def eliminar_tarea(id): conexion = get_db_connection() cursor = conexion.cursor() cursor.execute("DELETE FROM tareas WHERE id = ?", (id,)) conexion.commit() conexion.close() return jsonify({"mensaje": "Tarea eliminada correctamente"})

馃搶 Salida esperada al eliminar una tarea:

{ "mensaje": "Tarea eliminada correctamente" }

脷til para eliminar registros innecesarios.


馃殌 Conclusi贸n

✅ Hoy hemos resuelto ejercicios con Flask y SQLite en Python.
✅ Estos ejercicios permiten crear APIs para gestionar tareas desde una base de datos.
✅ Practica modificando el c贸digo para entenderlo mejor.

馃搶 Pr贸ximo post: C贸mo desplegar una aplicaci贸n Flask con SQLite en la nube.

馃搨 Descarga los ejercicios en mi GitHub: github.com/josecodetech

馃帴 Aprende con mis videos en YouTube: https://www.youtube.com/@josecodetech

馃挰 ¿Te gustar铆a agregar nuevas funciones a este proyecto? ¡Com茅ntalo!



viernes, 7 de marzo de 2025

馃憠 Conectando SQLite con una Aplicaci贸n Web en Python: Flask y Bases de Datos

 

Hemos aprendido a manejar bases de datos SQLite en Python. Ahora daremos un paso m谩s: conectar SQLite con una aplicaci贸n web usando Flask.

Hoy aprender谩s:
✔️ ¿Qu茅 es Flask y por qu茅 usarlo?
✔️ C贸mo conectar Flask con SQLite
✔️ Crear una API para interactuar con la base de datos
✔️ Consultar y mostrar datos en una p谩gina web
✔️ Ejemplo pr谩ctico paso a paso

馃搶 Con este tutorial, podr谩s construir aplicaciones web din谩micas con bases de datos.


1️⃣ ¿Qu茅 es Flask y por qu茅 usarlo?

Flask es un framework ligero para crear aplicaciones web en Python.

馃搶 Ventajas de Flask:
✅ F谩cil de aprender y usar
✅ Permite crear APIs y p谩ginas web din谩micas
✅ Compatible con bases de datos como SQLite
✅ Ideal para proyectos peque帽os y medianos

Para instalar Flask, ejecuta:

pip install flask

2️⃣ Conectar Flask con SQLite

El primer paso es crear un archivo app.py y configurar la conexi贸n con SQLite.

馃搶 C贸digo para conectar Flask con SQLite:

from flask import Flask, g
import sqlite3 app = Flask(__name__) DATABASE = "mi_base.db" def get_db(): db = getattr(g, "_database", None) if db is None: db = g._database = sqlite3.connect(DATABASE) return db @app.teardown_appcontext def close_connection(exception): db = getattr(g, "_database", None) if db is not None: db.close()

馃搶 Explicaci贸n:
sqlite3.connect(DATABASE) → Conecta SQLite con Flask.
get_db() → Obtiene la conexi贸n a la base de datos.
@app.teardown_appcontext → Cierra la conexi贸n cuando termina la petici贸n.


3️⃣ Crear una API con Flask y SQLite

Vamos a crear una API REST que devuelva los datos almacenados en SQLite.

馃搶 C贸digo para obtener todos los registros de una tabla productos:

from flask import jsonify
@app.route("/productos", methods=["GET"]) def get_productos(): db = get_db() cursor = db.cursor() cursor.execute("SELECT * FROM productos") productos = cursor.fetchall() productos_json = [ {"id": p[0], "nombre": p[1], "precio": p[2], "stock": p[3]} for p in productos ] return jsonify(productos_json)

馃搶 Explicaci贸n:
@app.route("/productos") → Define una ruta para obtener los productos.
jsonify(productos_json) → Devuelve los datos en formato JSON.

馃搶 Salida esperada al visitar http://127.0.0.1:5000/productos en el navegador:

[
{"id": 1, "nombre": "Laptop", "precio": 1200.5, "stock": 10}, {"id": 2, "nombre": "Mouse", "precio": 25.99, "stock": 50} ]

4️⃣ Insertar Datos desde una API Flask

Tambi茅n podemos permitir que los usuarios env铆en datos a la base de datos.

馃搶 C贸digo para insertar productos en la base de datos:

from flask import request
@app.route("/productos", methods=["POST"]) def add_producto(): nuevo_producto = request.json db = get_db() cursor = db.cursor() cursor.execute("INSERT INTO productos (nombre, precio, stock) VALUES (?, ?, ?)", (nuevo_producto["nombre"], nuevo_producto["precio"], nuevo_producto["stock"])) db.commit() return jsonify({"mensaje": "Producto agregado correctamente"}), 201

馃搶 Explicaci贸n:
request.json → Recibe los datos enviados en formato JSON.
INSERT INTO productos (...) VALUES (...) → Inserta un nuevo registro en la base de datos.

馃搶 Ejemplo de JSON enviado en una petici贸n POST:

{
"nombre": "Teclado", "precio": 45.75, "stock": 30 }

El producto se agregar谩 a la base de datos y la API responder谩 con un mensaje de 茅xito.


5️⃣ Mostrar los Datos en una P谩gina Web con Flask y SQLite

Flask tambi茅n nos permite mostrar los datos en una p谩gina HTML en lugar de JSON.

馃搶 C贸digo para mostrar los productos en una plantilla HTML:

from flask import render_template
@app.route("/") def index(): db = get_db() cursor = db.cursor() cursor.execute("SELECT * FROM productos") productos = cursor.fetchall() return render_template("index.html", productos=productos)

馃搶 Plantilla templates/index.html:

<!DOCTYPE html>
<html> <head> <title>Lista de Productos</title> </head> <body> <h1>Productos Disponibles</h1> <ul> {% for producto in productos %} <li>{{ producto[1] }} - Precio: {{ producto[2] }} USD - Stock: {{ producto[3] }}</li> {% endfor %} </ul> </body> </html>

馃搶 Explicaci贸n:
render_template("index.html") → Carga una plantilla HTML.
{% for producto in productos %} → Muestra cada producto en la p谩gina.

馃搶 Salida esperada en el navegador:

Productos Disponibles
- Laptop - Precio: 1200.5 USD - Stock: 10 - Mouse - Precio: 25.99 USD - Stock: 50

Esta p谩gina muestra los productos almacenados en SQLite.


馃殌 Conclusi贸n

Flask permite conectar aplicaciones web con SQLite en Python.
Podemos crear APIs REST para interactuar con la base de datos.
Los datos pueden mostrarse en formato JSON o en una p谩gina HTML.

馃搶 Pr贸ximo post: Ejercicios pr谩cticos con Flask y SQLite en Python.

馃搨 C贸digo disponible en mi GitHub: github.com/josecodetech

馃帴 Aprende con mis videos en YouTube: https://www.youtube.com/@josecodetech

馃挰 ¿Has trabajado con bases de datos en aplicaciones web? Cu茅ntamelo.



mi茅rcoles, 5 de marzo de 2025

馃憠 Ejercicios Pr谩cticos con Bases de Datos SQLite en Python

Ya aprendimos a crear, insertar y consultar datos en bases de datos SQLite en Python. Ahora es momento de poner en pr谩ctica lo aprendido con ejercicios explicados paso a paso.

Hoy resolveremos ejercicios sobre:
✔️ Conectar y crear una base de datos SQLite
✔️ Insertar m煤ltiples registros en una tabla
✔️ Consultar, actualizar y eliminar datos
✔️ Ejemplo pr谩ctico con una base de datos de productos

馃搶 Cada ejercicio incluye el c贸digo, explicaci贸n y prueba de salida.


1️⃣ Ejercicio: Crear una Base de Datos SQLite y una Tabla

馃搷 Objetivo: Crear una base de datos llamada tienda.db y una tabla productos.

馃敼 C贸digo:

import sqlite3 conexion = sqlite3.connect("tienda.db") cursor = conexion.cursor() cursor.execute(""" CREATE TABLE IF NOT EXISTS productos ( id INTEGER PRIMARY KEY AUTOINCREMENT, nombre TEXT, precio REAL, stock INTEGER ) """) conexion.commit() conexion.close() print("Base de datos y tabla creadas exitosamente.")

Este c贸digo crea una base de datos SQLite con una tabla productos.

馃搶 Salida esperada:

Base de datos y tabla creadas exitosamente.

2️⃣ Ejercicio: Insertar Productos en la Base de Datos

馃搷 Objetivo: Insertar varios productos en la tabla productos.

馃敼 C贸digo:

conexion = sqlite3.connect("tienda.db") cursor = conexion.cursor() productos = [ ("Laptop", 1200.50, 10), ("Mouse", 25.99, 50), ("Teclado", 45.75, 30), ("Monitor", 300.00, 15) ] cursor.executemany("INSERT INTO productos (nombre, precio, stock) VALUES (?, ?, ?)", productos) conexion.commit() conexion.close() print("Productos agregados correctamente.")

馃搶 Salida esperada:

Productos agregados correctamente.

Este c贸digo inserta m煤ltiples registros en la tabla de productos.


3️⃣ Ejercicio: Consultar los Productos Disponibles

馃搷 Objetivo: Obtener todos los productos almacenados en la base de datos.

馃敼 C贸digo:

conexion = sqlite3.connect("tienda.db") cursor = conexion.cursor() cursor.execute("SELECT * FROM productos") productos = cursor.fetchall() for producto in productos: print(producto) conexion.close()

馃搶 Salida esperada:

(1, 'Laptop', 1200.5, 10) (2, 'Mouse', 25.99, 50) (3, 'Teclado', 45.75, 30) (4, 'Monitor', 300.0, 15)

Ideal para visualizar los datos almacenados en SQLite.


4️⃣ Ejercicio: Actualizar el Stock de un Producto

馃搷 Objetivo: Modificar la cantidad de stock de un producto en la base de datos.

馃敼 C贸digo:

conexion = sqlite3.connect("tienda.db") cursor = conexion.cursor() cursor.execute("UPDATE productos SET stock = ? WHERE nombre = ?", (20, "Laptop")) conexion.commit() conexion.close() print("Stock actualizado correctamente.")

馃搶 Salida esperada:

Stock actualizado correctamente.

Permite actualizar datos en la base de datos.


5️⃣ Ejercicio: Eliminar un Producto de la Base de Datos

馃搷 Objetivo: Borrar un producto de la base de datos SQLite.

馃敼 C贸digo:

conexion = sqlite3.connect("tienda.db") cursor = conexion.cursor() cursor.execute("DELETE FROM productos WHERE nombre = ?", ("Mouse",)) conexion.commit() conexion.close() print("Producto eliminado correctamente.")

馃搶 Salida esperada:

Producto eliminado correctamente.

脷til para eliminar registros innecesarios.


馃殌 Conclusi贸n

✅ Hoy hemos resuelto ejercicios con bases de datos SQLite en Python.
✅ Estos ejercicios permiten gestionar informaci贸n almacenada en una base de datos.
✅ Practica modificando el c贸digo para entenderlo mejor.

馃搶 Pr贸ximo post: C贸mo conectar SQLite con una aplicaci贸n web en Python.

馃搨 Descarga los ejercicios en mi GitHub: github.com/josecodetech

馃帴 Aprende con mis videos en YouTube: https://www.youtube.com/@josecodetech

馃挰 ¿Qu茅 tipo de datos te gustar铆a gestionar en SQLite? Com茅ntamelo.



lunes, 3 de marzo de 2025

馃憠 Bases de Datos en Python con SQLite: C贸mo Almacenar y Consultar Datos

Cuando trabajamos con datos en Python, los archivos TXT, CSV o JSON pueden ser 煤tiles, pero no siempre son la mejor opci贸n. Para almacenar informaci贸n de forma estructurada y eficiente, utilizamos bases de datos.

Hoy aprender谩s:
✔️ ¿Qu茅 es SQLite y por qu茅 usarlo en Python?
✔️ Crear y conectar una base de datos SQLite
✔️ Crear, insertar y consultar datos en una tabla
✔️ Actualizar y eliminar registros
✔️ Ejemplo pr谩ctico paso a paso

馃搶 Al final del post, podr谩s manejar bases de datos en Python como un profesional.


1️⃣ ¿Qu茅 es SQLite y por qu茅 usarlo en Python?

SQLite es un gestor de bases de datos ligero, integrado en Python, que permite almacenar datos en un archivo .db sin necesidad de un servidor.

馃搶 Ventajas de SQLite:
✅ No necesita configuraci贸n extra, ya viene con Python.
✅ Almacena datos en un solo archivo .db.
✅ Soporta SQL para manejar datos de forma eficiente.
✅ Es ideal para peque帽as aplicaciones y pruebas.

Para usar SQLite en Python, solo necesitamos importar sqlite3.


2️⃣ Crear y Conectar una Base de Datos SQLite

El primer paso es crear o conectar una base de datos SQLite.

馃搶 C贸digo para conectar o crear una base de datos:

import sqlite3 conexion = sqlite3.connect("mi_base_de_datos.db") # Crea o abre el archivo de la BD cursor = conexion.cursor() # Permite ejecutar comandos SQL print("Base de datos conectada correctamente.") conexion.close() # Cierra la conexi贸n

馃搶 Explicaci贸n:
sqlite3.connect("mi_base_de_datos.db") → Crea un archivo de base de datos si no existe.
cursor = conexion.cursor() → Permite ejecutar consultas SQL.
conexion.close() → Cierra la conexi贸n cuando terminamos.


3️⃣ Crear una Tabla en SQLite

Para guardar datos en la base de datos, necesitamos crear una tabla.

馃搶 Ejemplo: Crear una tabla usuarios en la base de datos:

import sqlite3 conexion = sqlite3.connect("mi_base_de_datos.db") cursor = conexion.cursor() cursor.execute(""" CREATE TABLE IF NOT EXISTS usuarios ( id INTEGER PRIMARY KEY AUTOINCREMENT, nombre TEXT, edad INTEGER, email TEXT ) """) conexion.commit() # Guarda los cambios conexion.close() print("Tabla creada exitosamente.")

馃搶 Explicaci贸n:
CREATE TABLE IF NOT EXISTS usuarios → Crea la tabla si no existe.
id INTEGER PRIMARY KEY AUTOINCREMENT → Identificador 煤nico que se incrementa autom谩ticamente.
nombre TEXT → Almacena texto.
edad INTEGER → Almacena n煤meros enteros.
email TEXT → Almacena correos electr贸nicos.
commit() → Guarda los cambios en la base de datos.


4️⃣ Insertar Datos en una Base de Datos SQLite

Ahora que tenemos la tabla, podemos insertar registros.

馃搶 Ejemplo: Insertar un usuario en la base de datos:

conexion = sqlite3.connect("mi_base_de_datos.db") cursor = conexion.cursor() cursor.execute("INSERT INTO usuarios (nombre, edad, email) VALUES (?, ?, ?)", ("Jos茅", 25, "jose@example.com")) conexion.commit() conexion.close() print("Usuario agregado exitosamente.")

馃搶 Explicaci贸n:
INSERT INTO usuarios (...) VALUES (?, ?, ?) → Inserta datos en la tabla.
✅ Los signos ? evitan ataques SQL Injection.
conexion.commit() → Guarda los cambios.

馃搶 Para insertar m煤ltiples registros:

datos = [ ("Ana", 30, "ana@example.com"), ("Carlos", 28, "carlos@example.com"), ("Laura", 22, "laura@example.com") ] cursor.executemany("INSERT INTO usuarios (nombre, edad, email) VALUES (?, ?, ?)", datos) conexion.commit() print("Usuarios agregados.")

Ideal para insertar muchos datos al mismo tiempo.


5️⃣ Consultar Datos en SQLite

馃搶 Ejemplo: Leer y mostrar todos los usuarios de la base de datos:

conexion = sqlite3.connect("mi_base_de_datos.db") cursor = conexion.cursor() cursor.execute("SELECT * FROM usuarios") usuarios = cursor.fetchall() for usuario in usuarios: print(usuario) conexion.close()

馃搶 Salida esperada:

(1, 'Jos茅', 25, 'jose@example.com') (2, 'Ana', 30, 'ana@example.com') (3, 'Carlos', 28, 'carlos@example.com')

fetchall() recupera todos los registros.
✅ El resultado es una lista de tuplas con los datos.

馃搶 Para buscar un usuario espec铆fico:

cursor.execute("SELECT * FROM usuarios WHERE nombre = ?", ("Carlos",)) usuario = cursor.fetchone() print(usuario)

fetchone() devuelve un solo resultado.


6️⃣ Actualizar y Eliminar Datos en SQLite

馃搶 Ejemplo: Actualizar la edad de un usuario:

cursor.execute("UPDATE usuarios SET edad = ? WHERE nombre = ?", (26, "Jos茅")) conexion.commit() print("Edad actualizada.")

馃搶 Ejemplo: Eliminar un usuario:

cursor.execute("DELETE FROM usuarios WHERE nombre = ?", ("Ana",)) conexion.commit() print("Usuario eliminado.")

Siempre usa commit() despu茅s de UPDATE o DELETE.


馃殌 Conclusi贸n

SQLite permite almacenar datos de forma estructurada en Python.
Podemos crear, insertar, actualizar y eliminar registros usando SQL.
Ideal para proyectos peque帽os y medianos sin necesidad de un servidor externo.

馃搶 Pr贸ximo post: Ejercicios pr谩cticos con bases de datos SQLite en Python.

馃搨 C贸digo disponible en mi GitHub: github.com/josecodetech

馃帴 Aprende con mis videos en YouTube: https://www.youtube.com/@josecodetech

馃挰 ¿Ya has trabajado con bases de datos en Python? ¿Cu谩l ha sido tu experiencia? Com茅ntamelo.



domingo, 2 de marzo de 2025

馃憠 Ejercicios Pr谩cticos de Python: Manejo de Archivos y Datos

Despu茅s de aprender c贸mo leer, escribir y modificar archivos en Python, es hora de practicar con ejercicios reales y 煤tiles.

Hoy resolveremos ejercicios sobre:
✔️ Leer y escribir archivos de texto (.txt)
✔️ Leer y escribir archivos CSV
✔️ Trabajar con JSON para almacenar datos estructurados
✔️ Ejemplo pr谩ctico explicado paso a paso

馃搶 Cada ejercicio incluye c贸digo, explicaci贸n y prueba de salida.


1️⃣ Ejercicio: Contar las Palabras en un Archivo de Texto

馃搷 Objetivo: Leer un archivo de texto y contar cu谩ntas palabras tiene.

馃敼 C贸digo:

def contar_palabras(nombre_archivo): try: with open(nombre_archivo, "r") as archivo: contenido = archivo.read() palabras = contenido.split() print(f"El archivo tiene {len(palabras)} palabras.") except FileNotFoundError: print("❌ Error: El archivo no existe.") # Prueba la funci贸n contar_palabras("archivo.txt")

馃搶 Salida esperada (si el archivo tiene texto):

El archivo tiene 56 palabras.

Se usa split() para dividir el texto en palabras.
try-except evita que el programa se bloquee si el archivo no existe.


2️⃣ Ejercicio: Guardar una Lista en un Archivo CSV

馃搷 Objetivo: Escribir una lista de datos en un archivo CSV y luego leerlo.

馃敼 C贸digo:

import csv datos = [ ["Nombre", "Edad", "Ciudad"], ["Jos茅", 25, "Madrid"], ["Ana", 30, "Barcelona"], ["Carlos", 22, "Sevilla"] ] # Guardar datos en CSV with open("datos.csv", "w", newline="") as archivo: escritor = csv.writer(archivo) escritor.writerows(datos) # Leer el archivo CSV with open("datos.csv", "r") as archivo: lector = csv.reader(archivo) for fila in lector: print(fila)

馃搶 Salida esperada:

['Nombre', 'Edad', 'Ciudad'] ['Jos茅', '25', 'Madrid'] ['Ana', '30', 'Barcelona'] ['Carlos', '22', 'Sevilla']

Ideal para trabajar con datos tabulares en Python.


3️⃣ Ejercicio: Guardar y Leer Datos en un Archivo JSON

馃搷 Objetivo: Guardar informaci贸n de usuarios en un archivo JSON y luego leerla.

馃敼 C贸digo:

import json usuarios = [ {"nombre": "Jos茅", "edad": 25, "ciudad": "Madrid"}, {"nombre": "Ana", "edad": 30, "ciudad": "Barcelona"}, {"nombre": "Carlos", "edad": 22, "ciudad": "Sevilla"} ] # Guardar en JSON with open("usuarios.json", "w") as archivo: json.dump(usuarios, archivo, indent=4) # Leer el JSON with open("usuarios.json", "r") as archivo: datos = json.load(archivo) print(datos)

馃搶 Salida esperada:

[ {"nombre": "Jos茅", "edad": 25, "ciudad": "Madrid"}, {"nombre": "Ana", "edad": 30, "ciudad": "Barcelona"}, {"nombre": "Carlos", "edad": 22, "ciudad": "Sevilla"} ]

JSON es ideal para trabajar con datos estructurados en Python.


4️⃣ Ejercicio: Buscar una Palabra en un Archivo

馃搷 Objetivo: Leer un archivo de texto y contar cu谩ntas veces aparece una palabra espec铆fica.

馃敼 C贸digo:

def contar_ocurrencias(nombre_archivo, palabra): try: with open(nombre_archivo, "r") as archivo: contenido = archivo.read() cantidad = contenido.lower().count(palabra.lower()) print(f"La palabra '{palabra}' aparece {cantidad} veces en el archivo.") except FileNotFoundError: print("❌ Error: El archivo no existe.") # Prueba la funci贸n contar_ocurrencias("archivo.txt", "Python")

馃搶 Salida esperada:

La palabra 'Python' aparece 3 veces en el archivo.

count() cuenta la cantidad de veces que aparece una palabra en el texto.


5️⃣ Ejercicio: Registrar y Leer Notas de Estudiantes

馃搷 Objetivo: Escribir y leer registros de estudiantes en un archivo de texto.

馃敼 C贸digo:

def guardar_estudiante(nombre, nota): with open("estudiantes.txt", "a") as archivo: archivo.write(f"{nombre}, {nota}\n") def leer_estudiantes(): try: with open("estudiantes.txt", "r") as archivo: for linea in archivo: print(linea.strip()) except FileNotFoundError: print("❌ Error: El archivo no existe.") # Agregar estudiantes guardar_estudiante("Carlos", 8.5) guardar_estudiante("Ana", 9.0) # Leer los datos leer_estudiantes()

馃搶 Salida esperada:

Carlos, 8.5 Ana, 9.0

Ejemplo 煤til para registrar datos y consultarlos despu茅s.


馃殌 Conclusi贸n

✅ Hoy hemos resuelto ejercicios con manejo de archivos en Python.
✅ Estos ejercicios ayudan a leer, escribir y manipular datos de forma eficiente.
✅ Practica modificando el c贸digo para entenderlo mejor.

馃搶 Pr贸ximo post: M谩s ejercicios avanzados con bases de datos en Python (SQLite).

馃搨 Descarga los ejercicios en mi GitHub: github.com/josecodetech

馃帴 Aprende con mis videos en YouTube: [Tu canal aqu铆]

馃挰 ¿Qu茅 tipo de archivos sueles manejar en Python? Cu茅ntamelo en los comentarios.



s谩bado, 1 de marzo de 2025

馃憠 Manejo de Archivos en Python: Leer, Escribir y Modificar Informaci贸n

El manejo de archivos en Python es fundamental para guardar y recuperar informaci贸n de manera persistente. En este post, aprenderemos a:

✔️ Abrir y leer archivos en Python
✔️ Escribir y modificar archivos de texto
✔️ Diferencias entre modos de apertura (r, w, a)
✔️ Trabajar con archivos CSV y JSON
✔️ Ejemplo pr谩ctico explicado paso a paso

馃搶 Con estas t茅cnicas, podr谩s almacenar y manipular datos de manera eficiente en Python.


1️⃣ Abrir y Leer un Archivo en Python

Para leer un archivo en Python, usamos la funci贸n open().

馃搶 Ejemplo: Leer todo el contenido de un archivo

with open("archivo.txt", "r") as archivo: contenido = archivo.read() print(contenido)

馃搶 Explicaci贸n:
"archivo.txt" → Nombre del archivo que queremos leer.
"r" → Indica que abrimos el archivo en modo lectura.
with open(...) as archivo: → Asegura que el archivo se cierre autom谩ticamente despu茅s de su uso.

馃搶 Ejemplo de salida (si el archivo contiene texto):

Hola, este es un archivo de prueba.

馃搷 Leer un Archivo L铆nea por L铆nea

Si queremos leer un archivo l铆nea por l铆nea, usamos .readlines().

with open("archivo.txt", "r") as archivo: for linea in archivo.readlines(): print(linea.strip()) # strip() elimina espacios en blanco y saltos de l铆nea

馃搶 Salida esperada:

L铆nea 1 del archivo L铆nea 2 del archivo L铆nea 3 del archivo

Ideal para procesar archivos grandes l铆nea por l铆nea.


2️⃣ Escribir en un Archivo en Python

Para escribir en un archivo, usamos el modo "w" o "a".

馃搶 Diferencias entre modos de apertura:
✔️ "w" (write) → Sobrescribe el contenido del archivo.
✔️ "a" (append) → Agrega contenido sin borrar lo anterior.

馃搶 Ejemplo: Escribir en un archivo (sobreescribe el contenido anterior)

with open("archivo.txt", "w") as archivo: archivo.write("Este es un nuevo contenido.\n") archivo.write("Se sobrescribi贸 el archivo.\n")

馃搶 Ejemplo: Agregar texto a un archivo sin borrar lo anterior

with open("archivo.txt", "a") as archivo: archivo.write("Esta es una l铆nea nueva.\n")

馃搶 Explicaci贸n:
Modo "w" sobrescribe el contenido existente.
Modo "a" agrega nuevas l铆neas al archivo sin eliminar lo anterior.


3️⃣ Leer y Escribir Archivos CSV en Python

Los archivos CSV (Comma-Separated Values) son muy usados para almacenar datos estructurados.

馃搶 Ejemplo: Escribir un archivo CSV

import csv with open("datos.csv", "w", newline="") as archivo: escritor = csv.writer(archivo) escritor.writerow(["Nombre", "Edad", "Ciudad"]) escritor.writerow(["Jos茅", 25, "Madrid"]) escritor.writerow(["Mar铆a", 30, "Barcelona"])

馃搶 Ejemplo: Leer un archivo CSV

import csv with open("datos.csv", "r") as archivo: lector = csv.reader(archivo) for fila in lector: print(fila)

馃搶 Salida esperada:

['Nombre', 'Edad', 'Ciudad'] ['Jos茅', '25', 'Madrid'] ['Mar铆a', '30', 'Barcelona']

Ideal para trabajar con datos estructurados en Python.


4️⃣ Trabajar con Archivos JSON en Python

Los archivos JSON (JavaScript Object Notation) permiten almacenar y compartir datos en formato estructurado.

馃搶 Ejemplo: Escribir un archivo JSON

import json datos = { "nombre": "Jos茅", "edad": 25, "ciudad": "Madrid" } with open("datos.json", "w") as archivo: json.dump(datos, archivo, indent=4)

馃搶 Ejemplo: Leer un archivo JSON

import json with open("datos.json", "r") as archivo: datos = json.load(archivo) print(datos)

馃搶 Salida esperada:

{'nombre': 'Jos茅', 'edad': 25, 'ciudad': 'Madrid'}

JSON es ampliamente utilizado en APIs y bases de datos.


5️⃣ Ejemplo Completo: Registrar y Leer Notas de Estudiantes

馃搶 Guardar informaci贸n de estudiantes en un archivo de texto:

def guardar_estudiante(nombre, nota): with open("estudiantes.txt", "a") as archivo: archivo.write(f"{nombre}, {nota}\n") def leer_estudiantes(): with open("estudiantes.txt", "r") as archivo: for linea in archivo: print(linea.strip()) # Agregar estudiantes guardar_estudiante("Carlos", 8.5) guardar_estudiante("Ana", 9.0) # Leer los datos leer_estudiantes()

馃搶 Salida esperada:

Carlos, 8.5 Ana, 9.0

Ejemplo 煤til para registrar datos y consultarlos despu茅s.


馃殌 Conclusi贸n

open() permite leer y escribir archivos de texto.
CSV y JSON son formatos clave para almacenar datos estructurados.
Modo "r", "w" y "a" determinan c贸mo se manipula un archivo.
Manejar archivos es clave para cualquier aplicaci贸n real en Python.

馃搶 Pr贸ximo post: Ejercicios pr谩cticos sobre manejo de archivos en Python.

馃搨 C贸digo disponible en mi GitHub: github.com/josecodetech

馃帴 Aprende con mis videos en YouTube: https://www.youtube.com/@josecodetech

馃挰 ¿Has trabajado con archivos en Python? ¿Qu茅 datos sueles almacenar? Cu茅ntamelo en los comentarios.