<div><div class="gmail_quote"><font color="#000099">Muchas gracias por la respuesta (y por la velocidad en ella)</font></div><div class="gmail_quote"><br></div><div class="gmail_quote">Aprovecha el for para aplicar tus filtros directamente ahí a medida que vas leyendo. Mete un par de ifs para tratar si es el principio o fin del fichero para comparar con el dato anterior (en fecha).</div>
<div class="gmail_quote"><br></div><div class="gmail_quote"><font color="#000099">Sí, pensaba aprovechar el for para poner los filtros. Lo de los ifs es buena idea para saber si es primera o última fila, pero lo que no se es comparar entre 2 filas cualquiera (p.ej la fila 11 y la 12).</font></div>
<div class="gmail_quote"><font color="#000099">Por cierto, ¿es necesario pasar a listas las filas? es que se me duplica el peso de los archivos que ya de por si son bastante pesados.</font><br><br>¿Te has planteado usar numpy para esto o no es posible y debes usar python puro? Numpy te podría facilitar mucho las cosas y librarte de algún for que te ralentice el programa.<br>
</div></div><div><br></div><div><font color="#000099">No he usado nunca numpy, es más, ni siquiera sabía de su existencia. Soy bastante novato y el tratamiento de los datos es para un tema de la universidad, por lo que puedo usar lo que quiera, sólo que pensé que python era lo mejor y por eso me puse a aprenderlo por libre. Me voy a bajar numpy y matplotlib porque luego tendré que ponerme a hacer gráficos con los resultados.</font></div>
<font color="#000099"><br>Un saludo</font><br><br><div class="gmail_quote">El 17 de enero de 2013 10:56, Kiko <span dir="ltr"><<a href="mailto:kikocorreoso@gmail.com" target="_blank">kikocorreoso@gmail.com</a>></span> escribió:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br><br><div class="gmail_quote">El 17 de enero de 2013 10:46, Carlos Agulló Calvo <span dir="ltr"><<a href="mailto:cm.agullo@gmail.com" target="_blank">cm.agullo@gmail.com</a>></span> escribió:<div>
<div class="h5"><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
hola<div><br></div><div>Hace ya tiempo pregunté varias dudas sobre el tratamiento de datos que están en un .txt desde entonces, he conseguido varios progresos, pero ahora me he quedado estancado en un punto del que no se salir.</div>
<div><br></div><div>Mi duda consiste en lo siguiente: </div><div><br></div><div>tengo los datos de la siguiente manera:</div><div><br></div><div><div><font color="#003300">"0303201";1/4/2009 0:01:00;2;0;0;0;0;117;44;163;2;0;0;0;-127;2;-127;-127;-127;-127;0</font></div>
<div><font color="#003300">"0303201";1/4/2009 0:02:00;2;1;0;0;0;104;92;255;1;0;1;1;-127;1;-127;-127;-127;-127;0</font></div><div>(Es un extracto)</div></div><div><br></div><div>y querría poder compararlos entre las filas para aplicar una serie de filtros y en función de si cumplen o no los filtros que vayan a archivos separados.</div>
<div><br></div><div>He pensado que debería hacer que cada fila fuera una lista y por eso he hecho este programa:</div><div><div><br></div><div><font color="#000099">leer=open("datos.txt","r")</font></div>
<div><font color="#000099">lista=open("datos_lista.txt","a")</font></div><div><font color="#000099">validos=open("est_0303201_VAL.txt","a")</font></div><div><font color="#000099">no_validos=open("est_0303201_ERR.txt","a")</font></div>
<div><font color="#000099"><br></font></div><div><font color="#000099">for i in leer.readlines(): #con esto lee cada línea</font></div><div><font color="#000099"> datos=i.strip().split(";") #guarda cada linea como una lista</font></div>
<div><font color="#000099"> lista.write(str(datos)+"\n") #escribe en VALIDOS (datos_lista.txt) las lineas como listas [,]</font></div><div><font color="#000099"> </font></div><div><font color="#000099"><br>
</font></div><div><font color="#000099"><br></font></div><div><font color="#000099">leer.close()</font></div><div><font color="#000099">validos.close()</font></div></div><div><br></div><div>que me crea 2 archivos vacíos y uno con los datos en forma de listas así:</div>
<div><br></div><div><div><font color="#003300">['"0303201"', '1/4/2005 0:01:00', <b>'2', '0'</b>, '0', '0', '0', '143', '-127', '-127', '2', '0', '0', '0', '-127', '2', '-127', '-127', '-127', '-127', '0']</font></div>
<div><font color="#003300">['"0303201"', '1/4/2005 0:02:00', <b>'0', '100'</b>, '0', '0', '0', '106', '-127', '-127', '1', '0', '1', '1', '-127', '1', '-127', '-127', '-127', '-127', '0']</font></div>
</div><div>(es un extracto)</div><div><br></div><div>El problema es que no sé cómo poner los filtros.</div><div><br></div><div>Por ejemplo, quiero que si la columna en negrita 1 es cero y la columna en negrita 2 es 100 se considere error.</div>
<div><br></div><div>o que en el siguiente ejemplo:</div><div><br></div><div><div><div><font color="#003300">['"0303201"', '1/4/2005 0:01:00', '2', '0', '0', '0', '0', <b>'143'</b>, '-127', '-127', '2', '0', '0', '0', '-127', '2', '-127', '-127', '-127', '-127', '0']</font></div>
<div><font color="#003300">['"0303201"', '1/4/2005 0:02:00', '0', '100', '0', '0', '0', <b>'106'</b>, '-127', '-127', '1', '0', '1', '1', '-127', '1', '-127', '-127', '-127', '-127', '0']</font></div>
</div><div>(es un extracto)</div></div><div><br></div><div>si en la fila 2 la columna en negrita es menor que en la fila 1 también de error.</div><div><br></div><div>(luego pondría yo que me diga el filtro que no cumple, pero eso creo que lo sé hacer).</div>
<div><br></div><div>¿Podríais ayudarme?</div><div><br></div><div>Muchas gracias</div><div><br></div><br></blockquote></div></div><div><br>Aprovecha el for para aplicar tus filtros directamente ahí a medida que vas leyendo. Mete un par de ifs para tratar si es el principio o fin del fichero para comparar con el dato anterior (en fecha).<br>
<br>¿Te has planteado usar numpy para esto o no es posible y debes usar python puro? Numpy te podría facilitar mucho las cosas y librarte de algún for que te ralentice el programa.<br></div></div>
<br>_______________________________________________<br>
Python-es mailing list<br>
<a href="mailto:Python-es@python.org">Python-es@python.org</a><br>
<a href="http://mail.python.org/mailman/listinfo/python-es" target="_blank">http://mail.python.org/mailman/listinfo/python-es</a><br>
FAQ: <a href="http://python-es-faq.wikidot.com/" target="_blank">http://python-es-faq.wikidot.com/</a><br>
<br></blockquote></div><br>