import os  # Importa el módulo 'os' para trabajar con el sistema de archivos

ARCHIVO_CONTACTOS = "contactos.csv"  # Nombre del archivo que contiene los contactos

# Función para inicializar el archivo de contactos si no existe
def inicializar_archivo():
    if not os.path.exists(ARCHIVO_CONTACTOS):  # Si el archivo no existe
        # Crear el archivo y agregar la cabecera (nombre, telefono, email)
        with open(ARCHIVO_CONTACTOS, 'w') as archivo:
            archivo.write("nombre,telefono,email\n")

# Función para agregar un nuevo contacto al archivo
def agregar_contacto(nombre, telefono, email):
    # Abre el archivo en modo de 'append' (añadir al final)
    with open(ARCHIVO_CONTACTOS, 'a') as archivo:
        archivo.write(f"{nombre},{telefono},{email}\n")  # Escribe el nuevo contacto
    print("Contacto agregado correctamente.\n")  # Mensaje de confirmación

# Función para mostrar todos los contactos registrados
def mostrar_contactos():
    try:
        # Abre el archivo en modo de lectura
        with open(ARCHIVO_CONTACTOS, 'r') as archivo:
            lineas = archivo.readlines()  # Lee todas las líneas del archivo
            if len(lineas) <= 1:  # Si no hay contactos registrados
                print("No hay contactos registrados.\n")
                return
            print("Lista de contactos:")  # Muestra un encabezado
            # Muestra cada contacto en el archivo (ignorando la cabecera)
            for linea in lineas[1:]:
                nombre, telefono, email = linea.strip().split(',')  # Separa la línea en los componentes
                print(f"Nombre: {nombre}, Teléfono: {telefono}, Email: {email}")
            print()  # Salto de línea adicional al final
    except FileNotFoundError:  # Si el archivo no existe
        print("El archivo de contactos no existe.\n")

# Función para buscar un contacto por nombre
def buscar_contacto(nombre_buscado):
    encontrado = False  # Variable para verificar si se encuentra el contacto
    # Abre el archivo en modo de lectura
    with open(ARCHIVO_CONTACTOS, 'r') as archivo:
        lineas = archivo.readlines()  # Lee todas las líneas del archivo
        # Recorre cada línea, empezando desde la segunda (ignorando la cabecera)
        for linea in lineas[1:]:
            nombre, telefono, email = linea.strip().split(',')  # Separa la línea en los componentes
            if nombre.lower() == nombre_buscado.lower():  # Compara el nombre sin importar mayúsculas/minúsculas
                print("Contacto encontrado:")  # Mensaje de contacto encontrado
                print(f"Nombre: {nombre}, Teléfono: {telefono}, Email: {email}\n")
                encontrado = True  # Marca que se encontró el contacto
                break
    if not encontrado:  # Si no se encontró el contacto
        print("Contacto no encontrado.\n")

# Función para imprimir un nombre específico
def imprimir_nombre():
    print("Tabatha Samantha Zurita Millán\n")  # Muestra el nombre deseado

# Función principal que maneja el menú de opciones
def menu():
    inicializar_archivo()  # Inicializa el archivo de contactos si es necesario
    while True:  # Bucle que mantiene el menú en ejecución hasta que el usuario elija salir
        print("MENÚ\nGestor de Contactos")  # Título del menú
        print("1. Agregar contacto")  # Opción 1: Agregar un contacto
        print("2. Mostrar contactos")  # Opción 2: Mostrar todos los contactos
        print("3. Buscar contacto")  # Opción 3: Buscar un contacto por nombre
        print("4. Imprimir nombre")  # Opción 4: Imprimir el nombre "Tabatha Samantha Zurita Millán"
        print("5. Salir")  # Opción 5: Salir del programa
        opcion = input("Selecciona una opción (1-5): ")  # Solicita una opción al usuario

        if opcion == '1':  # Si el usuario elige la opción 1
            nombre = input("Nombre: ")  # Solicita el nombre del contacto
            telefono = input("Teléfono: ")  # Solicita el teléfono del contacto
            email = input("Email: ")  # Solicita el email del contacto
            if nombre and telefono and email:  # Verifica que todos los campos estén completos
                agregar_contacto(nombre, telefono, email)  # Llama a la función para agregar el contacto
            else:
                print("Todos los campos son obligatorios.\n")  # Si faltan datos

        elif opcion == '2':  # Si el usuario elige la opción 2
            mostrar_contactos()  # Llama a la función para mostrar los contactos

        elif opcion == '3':  # Si el usuario elige la opción 3
            nombre_buscado = input("Nombre a buscar: ")  # Solicita el nombre del contacto a buscar
            buscar_contacto(nombre_buscado)  # Llama a la función para buscar el contacto

        elif opcion == '4':  # Si el usuario elige la opción 4
            imprimir_nombre()  # Llama a la función para imprimir el nombre "Tabatha Samantha Zurita Millán"

        elif opcion == '5':  # Si el usuario elige la opción 5
            print("¡Hasta luego!")  # Mensaje de despedida
            break  # Sale del bucle y termina el programa

        else:  # Si el usuario elige una opción no válida
            print("Opción inválida. Intenta nuevamente.\n")  # Mensaje de error

# Punto de entrada del programa, se ejecuta al iniciar el script
if __name__ == "__main__":  # Si el archivo se ejecuta directamente (no importado)
    menu()  # Llama a la función del menú para iniciar el programa

Embed on website

To embed this program on your website, copy the following code and paste it into your website's HTML: