Gestor de Contactos en Python

Gestor de Contactos en Python

Gestor de Contactos en Python

Proyecto 14 de la guia 50 Proyectos de Programacion para Practicar y Aprender. Proyectos para Nivel intermedio

Enunciado del proyecto

Crea un programa para almacenar y administrar una lista de contactos con informaciรณn como nombre, nรบmero de telรฉfono y correo electrรณnico.

Gestor de Contactos en Python

Este programa permite almacenar y administrar una lista de contactos con nombre, nรบmero de telรฉfono y correo electrรณnico. Los datos se guardan en un archivo JSON para conservarse entre ejecuciones.

Cรณdigo fuente (gestor_contactos.py)

import json
import os

CONTACTOS_FILE = "contactos.json"

def cargar_contactos():
    if os.path.exists(CONTACTOS_FILE):
        with open(CONTACTOS_FILE, "r") as f:
            return json.load(f)
    return []

def guardar_contactos(contactos):
    with open(CONTACTOS_FILE, "w") as f:
        json.dump(contactos, f, indent=4)

def agregar_contacto(contactos):
    nombre = input("Nombre: ")
    telefono = input("Telรฉfono: ")
    email = input("Correo electrรณnico: ")
    contactos.append({"nombre": nombre, "telefono": telefono, "email": email})
    guardar_contactos(contactos)
    print("Contacto agregado correctamente.\n")

def listar_contactos(contactos):
    if not contactos:
        print("No hay contactos.\n")
        return
    for idx, c in enumerate(contactos, start=1):
        print(f"{idx}. {c['nombre']} - {c['telefono']} - {c['email']}")
    print()

def buscar_contacto(contactos):
    nombre = input("Nombre a buscar: ").lower()
    encontrados = [c for c in contactos if nombre in c['nombre'].lower()]
    if encontrados:
        for c in encontrados:
            print(f"{c['nombre']} - {c['telefono']} - {c['email']}")
    else:
        print("No se encontrรณ el contacto.")
    print()

def eliminar_contacto(contactos):
    nombre = input("Nombre del contacto a eliminar: ").lower()
    nuevos = [c for c in contactos if nombre not in c['nombre'].lower()]
    if len(nuevos) != len(contactos):
        guardar_contactos(nuevos)
        print("Contacto eliminado.\n")
    else:
        print("No se encontrรณ el contacto.\n")

def menu():
    contactos = cargar_contactos()
    while True:
        print("=== Gestor de Contactos ===")
        print("1. Agregar contacto")
        print("2. Listar contactos")
        print("3. Buscar contacto")
        print("4. Eliminar contacto")
        print("5. Salir")
        opcion = input("Opciรณn: ")

        if opcion == "1":
            agregar_contacto(contactos)
            contactos = cargar_contactos()
        elif opcion == "2":
            listar_contactos(contactos)
        elif opcion == "3":
            buscar_contacto(contactos)
        elif opcion == "4":
            eliminar_contacto(contactos)
            contactos = cargar_contactos()
        elif opcion == "5":
            print("ยกHasta luego!")
            break
        else:
            print("Opciรณn invรกlida.\n")

if __name__ == "__main__":
    menu()

Indice de la guia de proyectos

50 Proyectos de Programacion

Proyecto anterior

Juego de Ahorcado en Python