Título: Python ordenamiento a la hora de impresion Publicado por: metalost en 21 Mayo 2017, 04:53 am Código
El programa como se puede apreciar, recolecta una serie de datos, y las añade a un archivo .txt pero... tengo un problema y es que se supone que cada dato, debe estar bajo una columna de su respectiva sección... Ejemplo "Nombre" deberia mostrarse asi como Nombre Apellido Telefono 1) pepe castellano 999912 2) felipe manriquefortiquepalacios 92399123123 como pueden ver, si ejecutamos el programa suponiendo que coloquemos de manera manual en el txt la parte de nombre, apellido y telefono, de manera que ya el codigo coloque los datos, existe el problema de que pase como en el ejemplo la parte 2) que, los caracteres exceden su campo, dezplasando asi al siguiente y descuadrando la tabla del .txt ... necesito solucionar especificamente este problema con el .txt Mi pregunta es si hay algun comando que diga que si se hay tantos caracteres haga un salto de linea, de manera que, no invada al campo siguiente o algo asi... ¿Que solucion me recomiendan? (Como pueden ver, esta en Python 2) Título: Re: Python ordenamiento a la hora de impresion Publicado por: Once en 21 Mayo 2017, 05:43 am Así por encima, loq ue se me ocurre que puedes hacer es, no guardar los datos en el archivo de texto sino hasta que ya los tengas todos recolectados, éstos los vas guardando (puede ser en listas) y una vez tienes los datos guardados, buscas en las listas los que tienen mayor longitud y usas ese dato para generar la cantidad de espacios que separen cada columna.
Edit: No creo que me explicara muy bien, así que te dejo este ejemplo (fue lo primero que se me ocurió) sólo adáptalo a tu necesidad. Código
El resultado es algo así: (http://imgur.com/AMIbin5l.png) (http://i.imgur.com/AMIbin5.png) Saludos. Título: Re: Python ordenamiento a la hora de impresion Publicado por: metalost en 21 Mayo 2017, 16:23 pm Gracias por tu solucion once, pero creo que no me sirve del todo, porque lo necesito añadir todo a un .txt, y ese .txt, deberi apoder añadir mas informacion... es decir, cerrarlo, abrirlo, que mantenga la informacion que ya tenia, y agregar mas sin que se descuadre nuestro "Cuadro" Alguna otra solucion? Muchas gracias por su ayuda ;D ;D ;D
Estaba pensando en algo que usara el Código
Pero con una condicion, que si excede x numero de caracteres, haga un salto de linea, ¿Eso se podria hacer? :huh: Título: Re: Python ordenamiento a la hora de impresion Publicado por: tincopasan en 22 Mayo 2017, 12:22 pm partamos de la base que desde el inicio ya está incompleto, deberías haber asignado el espacio que quieres que ocupe cada item(nombre,apellido,etc).
Imagina que creas una tabla, le asignas el tamaño justamente para que no se pisen los datos. en resumen podrías agregar la línea: Código
de esta simple forma quedan ordenados con un espacio asignado. Título: Re: Python ordenamiento a la hora de impresion Publicado por: Once en 23 Mayo 2017, 06:55 am En ese caso, no te sirve formatear antes de agregar la información al archivo, ya que no sabes que información va a ir a continuación. (Por eso en el ejemplo que te puse arriba, necesitabas la lista con la info [bcompleta[/b])
Para solucionarlo en tu caso, tendrías que, cada tanto, estar abriendo el archivo, leer la información que está ahí, formatearla y guardar de nuevo la información ya formateada en el archivo. Ahora, para saber si la cadena se pasa de una cantidad de caracteres específica, usa la función len(cadena) y un condicional, para agregar una nueva línea, lo puedes hacer imprimiendo: "\r\n" Saludos. Título: Re: Python ordenamiento a la hora de impresion Publicado por: LaThortilla (Effort) en 28 Mayo 2017, 02:19 am Fácil compañero....
A mi forma de ver lo que quieres en si.... es almacenar información de manera estructurada? si es así, la solución más apropiada seria la que te ofrecio Once... aun que yo agregaría un separador más complejo o filtraria lo que ingresa el usuario :silbar:.... por que esto puede modificar la estructura de tu base... algo asi como el SQL injection. Código
pero si lo que quieres es solo que se vea chulo en tu archivo pues usa como separador el caracter de tabulador Código
|