Ver Mensaje Individual
  #7 (permalink)  
Antiguo 21/01/2011, 08:48
Avatar de razpeitia
razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: necesito ayuda leyendo archivo txt

Cita:
Iniciado por poeta3d Ver Mensaje
tengo este archivo con estos datos :

v -10.0000 0.0000 10.0000
v -10.0000 0.0000 -10.0000
v 10.0000 0.0000 -10.0000
v 10.0000 0.0000 10.0000
v -10.0000 20.0000 10.0000
v 10.0000 20.0000 10.0000
v 10.0000 20.0000 -10.0000
v -10.0000 20.0000 -10.0000
# 8 vertices


y este es mi programa
Código Python:
Ver original
  1. import string
  2.  
  3. class Mallaobj:
  4.     def __init__(self):
  5.         self.vertices=[]
  6.         self.vertices2=[]
  7.         self.normales=[]
  8.         self.coortex=[]
  9.         self.caras=[]
  10.     def Abrirobj(self, filename):
  11.    
  12.         f=open(filename,"r")
  13.         lineas=f.readlines()
  14.        
  15.         f.close()
  16.         for line in lineas:
  17.           valores=string.split(line)              
  18.           if len(valores) < 1:
  19.                  continue
  20.        
  21.           if valores[0] == 'v':
  22.                     x = float (valores[1])
  23.                     y = float(valores[2])
  24.                     z = float(valores[3])
  25.                     self.vertices.append([x,y,z])
  26.                     print "los valores de vertices:",x,y,z  
  27.          
  28.  
  29. a=Mallaobj()
  30. a.Abrirobj("CUBO.obj")

el problemas es que me lee de esta forma:


los valores de vertices: -10.0 0.0 10.0
los valores de vertices: -10.0 0.0 -10.0
los valores de vertices: 10.0 0.0 -10.0
los valores de vertices: 10.0 0.0 10.0
los valores de vertices: -10.0 20.0 10.0
los valores de vertices: 10.0 20.0 10.0
los valores de vertices: 10.0 20.0 -10.0
los valores de vertices: -10.0 20.0 -10.0

y lo ke keria es leer una sola fila como por ejemplo -10 0.0 y 10.0 para poder asignarle una variable y no se como hacer para leer cada linea en vez de todas las lineas. tendre que quietar el for? gracias espero alguna respuesta
Has intentado:
Código Python:
Ver original
  1. print self.vertices
después del for.

Aquí tu código. (Modificado por mi)
Código Python:
Ver original
  1. class Mallaobj:
  2.     def __init__(self):
  3.         self.vertices = []
  4.         self.vertices2 = []
  5.         self.normales = []
  6.         self.coortex = []
  7.         self.caras = []
  8.        
  9.     def Abrirobj(self, filename):
  10.         f = open(filename, "r")
  11.         lineas = f.readlines()
  12.        
  13.         f.close()
  14.         for line in lineas:
  15.             valores = line.split()              
  16.             if len(valores) < 1 or valores[0] != 'v':
  17.                 continue
  18.             x = float(valores[1])
  19.             y = float(valores[2])
  20.             z = float(valores[3])
  21.             self.vertices.append((x,y,z))
  22.             print "los valores de vertices:", x, y, z
  23.         print "la lista de todos los vertices:", self.vertices  
  24.          
  25.  
  26. a = Mallaobj()
  27. a.Abrirobj("CUBO.obj")

No estaría de mas que te le leyeras el PEP8 o mejor conocido como "Style Guide for Python"