Opcion eliminar contacto de agenda.csv
Publicado por Kenin (2 intervenciones) el 04/12/2020 12:20:13
Buenas, estoy haciendo una agenda de teléfonos. Se me pide que en el menú me de la opción de borrar a 1 contacto. No consigo que me salga bien. Soy novel, así que puede que sea un fallo garrafal muy obvio y no me estoy dando cuenta:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
import csv
import re
import itertools
class Contacto:
nuevoId=itertools.count()
def __init__(self,nombre,apellido,movil):
self.codigo=next(self.nuevoId)
self.nombre=nombre
self.apellido=apellido
self.movil=movil
class Agenda:
def __init__(self):
self.contactos=[]
def añadir(self,nombre,apellido,movil):
contacto=Contacto(nombre,apellido,movil)
self.contactos.append(contacto)
def mostrarTodos(self):
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.apellido)):
self.imprimeContacto(contacto)
encontrado=encontrado+1
if encontrado==0:
self.noEncontrado()
def grabar(self):
with open('agenda.csv','w') as fichero:
escribir=csv.writer(fichero)
escribir.writerow(('codigo', 'nombre', 'apellido', 'movil'))
for contacto in self.contactos:
escribir.writerow((contacto.codigo,contacto.nombre,contacto.apellido,contacto.movil))
def imprimeContacto(self,contacto):
print()
print('-----------------------------------')
print('Codigo: {}'.format(contacto.codigo))
print('Nombre:{}'.format(contacto.nombre))
print('Apellido:{}'.format(contacto.apellido))
print('Movil:{}'.format(contacto.movil))
print('-----------------------------------')
def noEncontrado(self):
print()
print('-----------------------------------')
print('Contacto no encontrado')
print('-----------------------------------')
def ejecutar():
global movil
agenda=Agenda()
try:
with open('agenda.csv','r') as fichero:
lector=csv.DictReader(fichero,delimiter=',')
for fila in lector:
agenda.añadir(fila['nombre'],fila['apellido'],fila['movil'])
while True:
Menu=str(input("""
1. Mostrar lista de contactos \n
2. Buscar contacto \n
3. Añadir contacto \n
4. Eliminar contacto \n
5. Salir \n
Elija una opción escribiendo el número:
"""))
if Menu=='1':
agenda.mostrarTodos()
elif Menu=='2':
texto=str(input('Escribe el nombre o apellido del contacto: '))
agenda.buscar(texto.capitalize())
elif Menu=='3':
nombre=str(input('Escribe el nombre: '))
apellido=str(input('Escribe el apellido: '))
movil=str(input('Escribe el movil: '))
agenda.añadir(nombre,apellido,movil)
agenda.grabar()
elif Menu=='4':
texto=str(input('Escriba codigo de contacto: '))
for contacto in self.contactos:
if contacto.codigo==codigo
del self.contactos[codigo]
agenda.grabar()
elif Menu=='5':
print('Ha finalizado')
agenda.grabar()
break
else:
print('Debe marcar una opcion del Menu')
if __name__=='__main__':
ejecutar()
Valora esta pregunta


0