Skip to content

Instantly share code, notes, and snippets.

@fjsanti
Created April 23, 2020 21:40
Show Gist options
  • Save fjsanti/a0128271f4f11eb0ea6b9176b05ec127 to your computer and use it in GitHub Desktop.
Save fjsanti/a0128271f4f11eb0ea6b9176b05ec127 to your computer and use it in GitHub Desktop.
#!/usr/bin/python3
import csv #Importamos el modulo csv para manejo de archivos CSV
import os
'''
Este programa administra una agenda simple con tres opciones 1) mostrar los contactos
2) agregar contactos 3) cerrar la agenda. Para ello se definen las tres opciones como funciones.
'''
#Creamos un archivo csv vacio
archivo = csv.writer(open("datos_agenda.csv", "a", newline = ''))
def mostrar_contactos():
#Abrimos el archivo en modo lectura y texto
archivo = csv.reader(open("datos_agenda.csv", "rt"))
file_path= 'datos_agenda.csv'
if os.stat(file_path).st_size == 0:
print('Aun no tienes contactos!')
else:
for index,row in enumerate(archivo):
# Muestrar las columnas del csv en orde de contacto, numero e email
print("contacto: " + str(index+1))
print("-------------------")
print("nombre: " + row[0] + " || numero: " + row[1] + " || email: " + row[2])
print("\n")
# Funcion para agregar un contacto abriendo el archivo
# en modo "append" o agregar linea al final del archivo.
def agregar_contacto(nombre, numero, email):
archivo = csv.writer(open("datos_agenda.csv", "a", newline = ''))
archivo.writerow([nombre, numero, email])
def mostrar_menu(): #Un menu guia simple
print("gestion de contactos")
print("[1] mostrar contactos.")
print("[2] agregar contacto.")
print("[3] salir.")
opcion=True
# El objeto "opcion" recopila que quieres hacer mediante el comando input
while opcion:
mostrar_menu()
opcion=input("==> opcion: ")
if opcion == "1":
mostrar_contactos()
#Creamos el menu de opciones con sentencias de control if y elseif (else if).
elif opcion == "2":
nombre = input("==> nombre: ")
numero = input("==> numero: ")
email = input("==> email: ")
agregar_contacto(nombre, numero, email)
elif opcion == "3":
print("Adios UwU")
break # Terminamos la ejecucion con la estructura de control break
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment