Generar planos
Sebastian Andre Lara Menares
slara en udec.cl
Mie Feb 20 05:48:32 CET 2008
> Buenas:
>
> Recuerdo que inicie este hilo buscando la solución a la generación de
> archivos planos separados
> por espacio.
>
> Quiero volver a retormar este hilo porque aún no he hallado la solución y
> esperando que alguien me
> pueda colaborar con esto vuelvo y explico lo que busco:
>
> tengo una base de datos denominada prueba que contiene una tabla llamada
> ejm
> que esta compuesta
> por tres registros (apellido1,apellido2 y nombres).
>
> Lo que necesito es generar una consulta que me liste todos los registros y
> que a su vez los
> almacene en la unidad pero... (aquí es donde viene el rollo) al momento de
> ser almacenados
> éstos registro deben estar separados por espacios, por ejemplo el primer
> espacio que es para el
> campo APELLIDO1 no debe exceder de 12 caracteres, es decir, que por más
> largo que se el apellido1
> éste solo ubicara hasta un máximo de 12 caracteres; a partir de la
> "columna"
> 13 se ubicaría el
> apellido2 y éste ocuparía hasta la columna 25 y a partir de la 26 va el
> nombre.
>
> El formato sería más o menos así
> -------------------------------------------------
> Nombre Campo | Longitud | Posición | Tipo
> -------------------------------------------------
> APELLIDO1 | 12 | 01 a 12 | Alfanumerico
> APELLIDO2 | 12 | 13 a 25 | Alfanumerico
> NOMBRES | 12 | 26 a 50 | Alfanumerico
>
>
> Un amigo de la lista me envio esta solución
>
>>>> "%-20s %-10s %-5s" % ("hola", "don", "tu")
> 'hola don tu '
>
> Y de verdad que funciona bastante bien en modo consola, pero como lo
> pueden
> notar
> no he sido capaz de ajustarla a lo que necesito que es con base de datos.
> [...]
Hola,
Para este tipo de cosas yo uso un ORM como SQLObject o SQLAlchemy.
Por ejemplo, con SQLObject solo tendrías que hacer algo como:
class Ejems(SQLObject):
apellido1 = UnicodeCol()
apellido2 = UnicodeCol()
nombres = UnicodeCol()
ejems = Ejems.select()
for ejem in ejems:
print "%-20s %-10s %-5s" % (ejem.apellido1, ejem.apellido2, ejem.nombres)
Faltan detalles como el de la conección a la DB pero creo que se entiende
la idea. Saludos.
_______________________________________________
Lista de correo Python-es
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes
Más información sobre la lista de distribución Python-es