Ver Mensaje Individual
  #12 (permalink)  
Antiguo 01/07/2010, 12:50
programadornoob
 
Fecha de Ingreso: junio-2010
Mensajes: 13
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Ayuda con una Class y una Lista

Mira este es mi trabajo se trata de ingresar calles y al ingresar te pide la calle q esta al norte, sur, este y oeste, bueno eso sera en un futuro jajajaja tiene dos problemas ingreso la primera calle y me la guarda 2 veces y al querer guardar una tercera me tira error de:

Código consola:
Ver original
  1. Traceback (most recent call last):
  2.   File "calles.py", line 86, in <module>
  3.     menu()
  4.   File "calles.py", line 71, in menu
  5.     ingresarCalle()
  6.   File "calles.py", line 31, in ingresarCalle
  7.     guardar()
  8.   File "calles.py", line 83, in guardar
  9.     f.write("%s\n" % calle)
  10. IOError: [Errno 9] Bad file descriptor

Y el otro error al cerrar el programa y volverlo abrir me borra el contenido del archivo, aca dejo el codigo completo:

Código Python:
Ver original
  1. class Calle:
  2.     def __init__(self, nombre, norte, sur, este, oeste, estado):
  3.         self.nombre = nombre
  4.         self.norte = norte
  5.         self.sur = sur
  6.         self.este = este
  7.         self.oeste = oeste
  8.         self.estado = estado
  9.        
  10.     def __str__(self):
  11.         return "%s %s %s %s %s %s " % (self.nombre, self.norte, self.sur, self.este, self.oeste, self.estado)
  12.        
  13.  
  14. filename = 'calles.txt'
  15. f = open(filename, 'w')
  16.  
  17. listaCalles = []
  18.  
  19.  
  20. def ingresarCalle():
  21.    
  22.     nombre      = raw_input("Nombre: ")
  23.     norte       = raw_input("Calle al Norte: ")
  24.     sur         = raw_input("Calle al Sur: ")
  25.     este        = raw_input("Calle al Este: ")
  26.     oeste       = raw_input("Calle al Oeste: ")
  27.     estado      = False
  28.     calle = Calle(nombre, norte, sur, este, oeste, estado)
  29.  
  30.     listaCalles.append(calle)
  31.     guardar()
  32.  
  33. def listarCalles():
  34.    
  35.     print ""
  36.     print "Listado de Calles".center(79, "*")
  37.  
  38.     for calle in listaCalles:
  39.         print "Nombre de la Calle: %s\nCalle al Norte: %s\nCalle al Sur: %s" % (calle.nombre, calle.norte, calle.sur)
  40.         print "Calle al Este: %s\nCalle al Oeste: %s" % (calle.este, calle.oeste)
  41.        
  42.         if calle.estado == True:
  43.             print "Calle visitada"
  44.         else:
  45.             print "Calle sin visitar"
  46.        
  47.         print ""
  48.  
  49. def buscarCalle():
  50.     buscar = raw_input("Ingrese el nombre de la calle a buscar: ")
  51.     for nombre in listaCalles:
  52.         if buscar == nombre.nombre:
  53.             print ""
  54.             listarCalles()
  55.         else:
  56.             print "La Calle no existe\n"
  57.  
  58.  
  59. def menu():
  60.  
  61.     while True:
  62.         print 'MENU'.center(32, '=')
  63.         print '1.- Ingresar una Calle'
  64.         print '2.- Buscar Calle'
  65.         print '3.- Mostrar todas las Calles'
  66.         print '6.- Salir'
  67.        
  68.         op = input('Ingrese una Opcion: ')
  69.        
  70.         if op == 1:
  71.             ingresarCalle()
  72.         if op == 2:
  73.             buscarCalle()
  74.         if op == 3:
  75.             listarCalles()
  76.         if op == 6:
  77.             f.close()
  78.             break
  79.  
  80. def guardar():
  81.  
  82.     for calle in listaCalles:
  83.         f.write("%s\n" % calle)
  84.        
  85.        
  86. menu()

Última edición por programadornoob; 01/07/2010 a las 12:57