Hola bueno les dejo el codigo de la agenda:
Código: python
me parece que esta completo pero cualquier cosa avisenme
#-------------------------------------------------------------------------------------------------------------------------------------------#
#Fecha de creacion: martes 1 de novoembre del 2011 Fecha de modificacion: Lunes 7 de noviembre del 2011 #
#Archivo: Agenda # de modificaciones: 1 #
#Version:1.0.0 #
#Autor: Marco Yuquilima Observaciones: Terminado #
#-------------------------------------------------------------------------------------------------------------------------------------------#
class Elemento:
def __init__(self,nombre,apellido,*otros):# inicializamos con 2 o mas parametros xq guardar necesita 5 parametros y buscar 2
self.nombre=nombre
self.apellido=apellido
self.otros=otros
self.f=open('/home/cencalada/Escritorio/python/Ejercicios marco/nombres.txt','a+')
def guardar(self):
nuevo=True #variable que nos indica si existe el contacto para que los datos el txt no se repitan
hoja=open('/home/cencalada/Escritorio/python/Ejercicios marco/nombres.txt','r')
for linea in hoja:
if linea.find(self.nombre+"\t"+self.apellido)>=0:
nuevo=False
break
hoja.close()
if nuevo:
valor=(self.nombre+"\t"+self.apellido+"\t"+self.otros[0]+"\t"+self.otros[1]+"\t"+self.otros[2])
self.f.write("\n%s" %valor) #escribimos los datos en el archivo
self.f.close()
else:
print "#####################\nYa existe el contacto \n"
def listar(self):#metodo que nos lista todos los contactos
self.f=open('/home/cencalada/Escritorio/python/Ejercicios marco/nombres.txt','r')
print self.f.read()
self.f.close()
def buscar (self):#metodo que nos muestra un contacto en caso de existir
hoja=open('/home/cencalada/Escritorio/python/Ejercicios marco/nombres.txt','r')
for linea in hoja:
if linea.find(self.nombre+"\t"+self.apellido)>=0:
print linea
hoja.close()
def modificar(self):#metodo con el cual podemos modificar un contacto
hoja=open('/home/cencalada/Escritorio/python/Ejercicios marco/nombres.txt','r')
cadena="cadena vacia"
for linea in hoja:
if linea.find(self.nombre+"\t"+self.apellido)>=0:
print linea
cadena=linea#buscamos nombre y apellido del contacto y almacenamos todos los datos para reemplazarlos
break
hoja.close()
hoja=open('/home/cencalada/Escritorio/python/Ejercicios marco/nombres.txt','r')
original=hoja.read()#creamos una "copia" del archivo
hoja.close
if original.find(self.nombre+"\t"+self.apellido)>=0:#buscamos al contacto para ingresar nuevos datos
print"INGRESAR NUEVOS DATOS:"
n=raw_input(u'Ingresar nombre: ')
a1=raw_input(u'Ingresar apellido paterno : ')
a2=raw_input(u'Ingresar apellido materno : ')
d=raw_input(u'Ingresar direccion : ')
t=raw_input(u'Ingresar telefono : ')
txt=original.replace(cadena,n+"\t"+a1+"\t"+a2+"\t"+d+"\t"+t+"\n")#modificamos los datos en una "copia" del archivo
hoja=open('/home/cencalada/Escritorio/python/Ejercicios marco/nombres.txt','w')#abrimos el archivo para escribir
hoja.writelines(txt)#reemplazamos linea a linea la "copia" del archivo al archivo original
hoja.close()
def eliminar(self):
hoja=open('/home/cencalada/Escritorio/python/Ejercicios marco/nombres.txt','r')
cadena="cadena vacia"
for linea in hoja:
if linea.find(self.nombre+"\t"+self.apellido)>=0:
print linea
cadena=linea#buscamos nombre y apellido del contacto y almacenamos todos los datos para reemplazarlos
break
hoja.close()
hoja=open('/home/cencalada/Escritorio/python/Ejercicios marco/nombres.txt','r')
original=hoja.read()#creamos una "copia" del archivo
hoja.close
if original.find(self.nombre+"\t"+self.apellido)>=0:#buscamos al contacto para ingresar nuevos datos
txt=original.replace(cadena,"")#modificamos los datos en una "copia" del archivo
hoja=open('/home/cencalada/Escritorio/python/Ejercicios marco/nombres.txt','w')#abrimos el archivo para escribir
hoja.writelines(txt)#reemplazamos linea a linea la "copia" del archivo al archivo original
hoja.close()
def __del__(self):
print "Destruyendo...."#eliminamos de memoria lo que ya no necesitamos
while True:#menu de opciones para interactuar correctamente la clase que manipula el archivo
print "***************************************************************************************"
print "MENU DE OPCIONES:"
print "(1)- Ingresar contacto..."
print "(2)- Lista de contactos..."
print "(3)- Buscar contacto..."
print "(4)- Modificar contacto..."
print "(5)- Eliminar contacto..."
print "(6)- Salir..."
opcion=raw_input(u'Digitar opcion: ')
print "***************************************************************************************"
try:
opcion=int(opcion)
except:
print "#################\nPor favor ingresar numero"
continue
if opcion==1:
n=raw_input(u'Ingresar nombre: ')
a1=raw_input(u'Ingresar apellido paterno : ')
a2=raw_input(u'Ingresar apellido materno : ')
d=raw_input(u'Ingresar direccion : ')
t=raw_input(u'Ingresar telefono : ')
f=Elemento(n,a1,a2,d,t)
f.guardar()
elif opcion==2:
f.listar()
elif opcion==3:
nombre=raw_input("Nombre de contacto: ")
apellido=raw_input("Apellido de contacto: ")
f=Elemento(nombre,apellido)
f.buscar()
elif opcion==4:
nombre=raw_input("Nombre de contacto: ")
apellido=raw_input("Apellido de contacto: ")
f=Elemento(nombre,apellido)
f.modificar()
elif opcion==5:
nombre=raw_input("Nombre de contacto: ")
apellido=raw_input("Apellido de contacto: ")
f=Elemento(nombre,apellido)
f.eliminar()
elif opcion==6:
break
else:
print "#############################\nIngresar numeros entre el 1 y 6"
me parece que esta completo pero cualquier cosa avisenme