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

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.



viernes, 14 de febrero de 2025

馃憠 Manejo de Archivos y Bases de Datos en Python: Guarda y Recupera Informaci贸n

Hasta ahora hemos aprendido a manejar estructuras de datos y a escribir c贸digo organizado con funciones, m贸dulos y programaci贸n orientada a objetos. Ahora vamos a explorar c贸mo guardar y recuperar informaci贸n en archivos y bases de datos con Python.

Hoy aprender谩s:
✔️ C贸mo leer y escribir archivos en Python
✔️ Manejo de archivos CSV y JSON
✔️ Introducci贸n a bases de datos con SQLite
✔️ Ejemplo pr谩ctico explicado paso a paso


1️⃣ Lectura y Escritura de Archivos en Python

Python permite leer y escribir archivos de texto (.txt) usando la funci贸n open().

馃敼 Ejemplo: Escribir en un archivo

with open("archivo.txt", "w") as archivo: archivo.write("Hola, este es un archivo de texto en Python.")

馃搶 Explicaci贸n:
"w" → Modo escritura (borra el contenido anterior)
with open(...) → Abre el archivo y lo cierra autom谩ticamente al terminar


馃敼 Ejemplo: Leer un archivo

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

馃搶 Explicaci贸n:
"r" → Modo lectura
.read() → Lee todo el contenido del archivo

馃搶 Salida esperada:

Hola, este es un archivo de texto en Python.

2️⃣ Manejo de Archivos CSV y JSON en Python

馃搷 Trabajar con CSV (valores separados por comas)

Python ofrece la librer铆a csv para manejar archivos .csv usados en hojas de c谩lculo y bases de datos.

馃敼 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"])

馃搶 Explicaci贸n:
csv.writer() → Crea un escritor CSV
writerow([...]) → Agrega una fila de datos


馃敼 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']

馃搷 Trabajar con JSON (JavaScript Object Notation)

Los archivos JSON son ideales para almacenar datos estructurados.

馃敼 Ejemplo: Guardar datos en 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)

馃搶 Explicaci贸n:
json.dump() → Guarda los datos en un archivo JSON
indent=4 → Formatea el archivo con espacios para mejor lectura


馃敼 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.load() → Carga los datos desde un archivo JSON


3️⃣ Bases de Datos con SQLite en Python

SQLite es una base de datos liviana integrada en Python.

馃敼 Ejemplo: Crear una Base de Datos SQLite y una Tabla

import sqlite3 conexion = sqlite3.connect("base_datos.db") cursor = conexion.cursor() cursor.execute(""" CREATE TABLE IF NOT EXISTS usuarios ( id INTEGER PRIMARY KEY AUTOINCREMENT, nombre TEXT, edad INTEGER ) """) conexion.commit() conexion.close()

馃搶 Explicaci贸n:
sqlite3.connect() → Crea o abre una base de datos
cursor.execute() → Ejecuta comandos SQL
commit() → Guarda los cambios


馃敼 Ejemplo: Insertar Datos en SQLite

conexion = sqlite3.connect("base_datos.db") cursor = conexion.cursor() cursor.execute("INSERT INTO usuarios (nombre, edad) VALUES (?, ?)", ("Jos茅", 25)) conexion.commit() conexion.close()

馃搶 Explicaci贸n:
INSERT INTO → Agrega un nuevo usuario a la base de datos


馃敼 Ejemplo: Leer Datos desde SQLite

conexion = sqlite3.connect("base_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)

fetchall() → Recupera todos los registros de la tabla


馃殌 Conclusi贸n

Hoy aprendimos a manejar archivos y bases de datos en Python.

Archivos .txt → Leer y escribir informaci贸n b谩sica
Archivos .csv y .json → Manejo de datos estructurados
Bases de Datos SQLite → Almacenar informaci贸n de manera eficiente

En el pr贸ximo post, veremos c贸mo crear una API con Python para conectar aplicaciones web y bases de datos. ¡No te lo pierdas!

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

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

馃挰 D茅jame un comentario si tienes dudas o quieres que cubra alg煤n tema en detalle.



domingo, 8 de agosto de 2021

viernes, 6 de diciembre de 2019

97 Python. Agenda contactos

Crea una agenda de contactos con Python.
Incluimos menu de opciones y grabaremos los datos en archivo csv.
Usaremos clases, funciones, metodos, archivos.


El codigo utilizado es el siguiente:
# -*-coding:utf-8 -*-

"""
Created on Fri Dic 06 07:48:08 2019

@author: Jose
"""

#modulos
import csv
import itertools
import re

#clases
class Contacto:
    nuevoId=itertools.count()
    def __init__(self,nombre,apellidos,empresa,fijo,movil):
        self.codigo=next(self.nuevoId)
        self.nombre=nombre
        self.apellidos=apellidos
        self.empresa=empresa
        self.fijo=fijo
        self.movil=movil
class Agenda:
    def __init__(self):
        self.contactos=[]
    def ordenarNombre(self):
        self.contactos.sort(key=lambda contacto: contacto.nombre)
    def ordenarApellidos(self):
        self.contactos.sort(key=lambda contacto: contacto.apellidos)
    def a帽adir(self,nombre,apellidos,empresa,fijo,movil):
        contacto=Contacto(nombre,apellidos,empresa,fijo,movil)
        self.contactos.append(contacto)
    def mostrarTodos(self):
        self.submenuOrden()
        for contacto in self.contactos:
            self.imprimeContacto(contacto)
    def buscar(self,textoBuscar):
        encontrado=0
        for contacto in self.contactos:
            if(re.findall(textoBuscar,contacto.nombre)) or (re.findall(textoBuscar,contacto.apellidos)):
                self.imprimeContacto(contacto)
                encontrado=encontrado+1
                self.submenuBuscar(contacto.codigo)
        if encontrado==0:
            self.noEncontrado()
    def borrar(self,codigo):
        for contacto in self.contactos:
            if contacto.codigo==codigo:
                print('---*---*---*---*---*---*---*---*')
                print('Quieres borrarlo? (s/n)')
                print('---*---*---*---*---*---*---*---*')
                opcion=str(input(""))
                if opcion=='s' or opcion=='S':
                    print('Borrando contacto!!!')
                    del self.contactos[codigo]
                elif opcion=='n' or opcion=='N':
                    break
    def modificar(self,codigo):
        for contacto in self.contactos:
            if contacto.codigo==codigo:
                del self.contactos[codigo]
                nombre=str(input('Escribe el nombre: '))
                apellidos=str(input('Escribe los apellidos: '))
                empresa=str(input('Escribe la empresa: '))
                fijo=str(input('Escribe el fijo: '))
                movil=str(input('Escribe el movil: '))
                contacto=Contacto(nombre.capitalize(),apellidos.capitalize(),empresa.capitalize(),fijo,movil)
                self.contactos.append(contacto)
                break
    def submenuBuscar(self,codigo):
        print('---*---*---*---*---*---*---*---*')
        print('Quieres (m)odificarlo o (b)orrarlo? ')
        print('---*---*---*---*---*---*---*---*')
        opcion=str(input(""))
        if opcion=='m' or opcion=='M':
            self.modificar(codigo)
        elif opcion=='b' or opcion=='B':
            self.borrar(codigo)
        else:
            print('Continuamos sin realizar modificacion alguna')
    def submenuOrden(self):
        print('---*---*---*---*---*---*---*---*')
        print('Quieres ordenar por (n)ombre o por (a)pellidos?')
        print('---*---*---*---*---*---*---*---*')
        opcion=str(input(""))
        if opcion=='n' or opcion=='N':
            self.ordenarNombre()
        elif opcion=='a' or opcion=='A':
            self.ordenarApellidos()

    def grabar(self):
        with open('agenda.csv','w') as fichero:
            escribir=csv.writer(fichero)
            escribir.writerow(('codigo','nombre','apellidos','empresa','fijo','movil'))
            for contacto in self.contactos:
                escribir.writerow((contacto.codigo,contacto.nombre,contacto.apellidos,contacto.empresa,contacto.fijo,contacto.movil))
    def imprimeContacto(self,contacto):
        print('---*---*---*---*---*---*---*---*')
        print('---*---*---*---*---*---*---*---*')
        print('Codigo: {}'.format(contacto.codigo))
        print('Nombre: {}'.format(contacto.nombre))
        print('Apellidos: {}'.format(contacto.apellidos))
        print('Empresa: {}'.format(contacto.empresa))
        print('Fijo: {}'.format(contacto.fijo))
        print('Movil: {}'.format(contacto.movil))        
        print('---*---*---*---*---*---*---*---*')
        print('---*---*---*---*---*---*---*---*')
    def noEncontrado(self):
        print('---*---*---*---*---*---*---*---*')
        print('---*---*---*---*---*---*---*---*')
        print('Contacto no encontrado')
        print('---*---*---*---*---*---*---*---*')
        print('---*---*---*---*---*---*---*---*')
def ejecutar():
    agenda=Agenda()
    try:
        with open('agenda.csv','r') as fichero:
            lector=csv.DictReader(fichero,delimiter=',')
            for fila in lector:
                agenda.a帽adir(fila['nombre'].capitalize(),fila['apellidos'].capitalize(),fila['empresa'].capitalize(),fila['fijo'].capitalize(),fila['movil'].capitalize())
    except:
        print('Error al abrir fichero o que no existe aun')
    while True:
        menu=str(input("""
        \nSelecciona una opcion\n
        1 Mostrar lista de contactos
        2 Buscar contacto
        3 A帽adir contacto
        0 Salir \n\n               
        """))
        if menu=='1':
            agenda.mostrarTodos()
        elif menu=='2':
            texto=str(input('Escribe el texto a buscar en contactos: '))
            agenda.buscar(texto.capitalize())
            agenda.grabar()
        elif menu=='3':
            nombre=str(input('Escribe el nombre: '))
            apellidos=str(input('Escribe los apellidos: '))
            empresa=str(input('Escribe la empresa: '))
            fijo=str(input('Escribe el fijo: '))
            movil=str(input('Escribe el movil: ')) 
            agenda.a帽adir(nombre.capitalize(),apellidos.capitalize(),empresa.capitalize(),fijo,movil)
            agenda.grabar()
        elif menu=='0':
            print('Hasta pronto!!!')
            agenda.grabar()
            break
        else:
            print('Opcion no valida!!!')
if __name__=='__main__':
    ejecutar()