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
To embed this program on your website, copy the following code and paste it into your website's HTML: