Formato archivo txt:
Código:
Con el siguiente algoritmo leo las líneas del txt y separo en listas de tipo string:Periodo|Ajuste Cierre 1|388.39 2|385.39 3|376.84 7|392.46 23|416.11
Código Python:
Ver original
def cargar_txt(self): #Abre un archivo, lee y regresa un arreglo archivo = open( self.path ) renglones = archivo.readlines() renglones = [a.replace('\n', '') for a in renglones] arreglo = map( lambda x: x.split('|'), renglones ) return arreglo archivo.close()
Código Python:
Ver original
print arreglo --> [ ['5|345.76'],['3|322.56'],['8|344.23'],['1|234.45'] ]
El problema es que aquí no puedo ordenar la lista arreglo por periodo, ya que los datos guardados son tipo string, y quiero que ordene como entero ascendentemente.
- Luego convierto los campos guardados en la lista a entero(periodo) y float ( ajuste de cierre), el problema que tengo es que no puedo ordenarlos de manera ascendente por periodo.
Es para la creación de un sistema de proyección lineal, necesito tener estos valores ordenados.
Código Python:
--->Ver original
def on_btn_semana_clicked(self, widget, data=None): self.path = str(self.b.get_object('path_entry').get_text()) matriz = self.cargar_txt() print matriz for periodo, ajuste_cierre in matriz: periodo = int(periodo) ajuste_cierre = float(ajuste_cierre) self.campos = [periodo, ajuste_cierre] print 'Periodo: %d Ajuste de Cierre: %f ' % (periodo,ajuste_cierre)
Código:
Muchas gracias por su atención y agradesco mucho su ayuda, saludos! Periodo: 1 Ajuste de Cierre: 388.390000 Periodo: 2 Ajuste de Cierre: 385.390000 Periodo: 3 Ajuste de Cierre: 376.840000 Periodo: 7 Ajuste de Cierre: 392.460000 Periodo: 23 Ajuste de Cierre: 416.110000