From pan_python en yahoo.com.ar Thu Feb 1 05:50:23 2007 From: pan_python en yahoo.com.ar (Ariel Nardelli) Date: Thu, 01 Feb 2007 01:50:23 -0300 Subject: Segundos a hora:minutos y segundos... In-Reply-To: <45C10F0E.4040103@jornada.com.mx> References: <45C0CE4B.1050203@yahoo.com.ar> <45C10F0E.4040103@jornada.com.mx> Message-ID: <45C1718F.3070305@yahoo.com.ar> Hola! Les contesto a los dos en el mismo mensaje porque los dos me han ayudado!. Por lo que vi me propusieron usar dos cosas pero por separados llegamos a lo mismo.. El GRAN problema que se me presenta en los 2 casos es que al pasarle los segundos me arranca la conversion desde la hora 21:00:00 y de una fecha que parece ser la fecha por defecto de donde comienza todo... miren.. si hago esto sale: >>> print datetime.datetime.fromtimestamp(0) 1969-12-31 21:00:00 o sea me arranca desde el 31 de enero del 69 y desde la hora 21 y al pasarle 120 segundos que serian 2 minutos me los pone "bien" o sea: >>> print datetime.datetime.fromtimestamp(120) 1969-12-31 21:02:00 Pero sigue apareciendo la hora 21 delante y si tengo segundos por mas de 1 hora en vez de salirme 1 hora xx minutos me sale 22 horas, o sea algo asi.. >>> print datetime.datetime.fromtimestamp(6000) 1969-12-31 22:40:00 le suma 1 hora a la hora 21 :) OJO esto mismo tambien me pasa con time.strftime porque al parecer la fecha para arrancar y hacer las operaciones es la misma, el 31/12/69 a las 21 horas :( No me importa la fecha porque la saco sino esa 21 horas!!! :) Ahora empece a hacer unas pruebas con esto que parece que si me lleva a lo que necesito... print datetime.datetime.utcfromtimestamp(6000) 1970-01-01 01:40:00 o sea saco el dia/mes/año y dejo la hora y me serviria asi que voy a hacer pruebas con eso a ver que tal anda, esto lo saque de http://pleac.sourceforge.net/pleac_python/datesandtimes.html Bueno Gracias a los dos por encaminarme!!!!!! gracias a ustedes pude buscar por donde investigar y aca les dejo a donde llegue. un abrazo!!!! Ariel Oscar de Anda escribió: > Tal vez este link te ayude > http://pleac.sourceforge.net/pleac_python/datesandtimes.html > > Saludos > > > Ariel Nardelli escribió: >> Hola! >> >> Tengo un tiempo en segundos y necesito pasarlos a hh:mm:ss pero no >> encuentro la funcion que lo hace... >> >> Alguien sabe cual puede ser? >> >> busque por time y timedate y no la encontre, estoy seguro de que esta >> delante de mis narices pero no la veooo grrrrrrrrrr >> >> Ariel >> >> _______________________________________________ >> Python-es mailing list >> Python-es en aditel.org >> http://listas.aditel.org/listinfo/python-es >> > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es From manuelmalo en gmail.com Thu Feb 1 08:25:08 2007 From: manuelmalo en gmail.com (Manuel Malo de Molina) Date: Thu, 1 Feb 2007 08:25:08 +0100 Subject: Segundos a hora:minutos y segundos... In-Reply-To: <45C1718F.3070305@yahoo.com.ar> References: <45C0CE4B.1050203@yahoo.com.ar> <45C10F0E.4040103@jornada.com.mx> <45C1718F.3070305@yahoo.com.ar> Message-ID: Asi es como lo hago yo, con date2num y num2date de matplotlib: 1 segundo: sec = date2num(datetime.datetime(1, 1, 1, 0, 0, 1))-1 Cualquier otra cantidad se calcula en numero de segundos respecto a esa (numhoras*3600*sec + numminutos*60*sec + numsegs*sec): Y luego la muestro asi: str(num2date(TiempoEnSegundos).strftime('%d-%m-%Y %H:%M:%S')) Saludos El 1/02/07, Ariel Nardelli escribió: > Hola! > Les contesto a los dos en el mismo mensaje porque los dos me han ayudado!. > > Por lo que vi me propusieron usar dos cosas pero por separados llegamos > a lo mismo.. > > El GRAN problema que se me presenta en los 2 casos es que al pasarle > los segundos me arranca la conversion desde la hora 21:00:00 y de una > fecha que parece ser la fecha por defecto de donde comienza todo... > > miren.. si hago esto sale: > > >>> print datetime.datetime.fromtimestamp(0) > 1969-12-31 21:00:00 > > o sea me arranca desde el 31 de enero del 69 y desde la hora 21 y al > pasarle 120 segundos que serian 2 minutos me los pone "bien" o sea: > > >>> print datetime.datetime.fromtimestamp(120) > 1969-12-31 21:02:00 > > Pero sigue apareciendo la hora 21 delante y si tengo segundos por mas de > 1 hora en vez de salirme 1 hora xx minutos me sale 22 horas, o sea algo > asi.. > > >>> print datetime.datetime.fromtimestamp(6000) > 1969-12-31 22:40:00 > > le suma 1 hora a la hora 21 :) > > OJO esto mismo tambien me pasa con time.strftime porque al parecer la > fecha para arrancar y hacer las operaciones es la misma, el 31/12/69 a > las 21 horas :( > > No me importa la fecha porque la saco sino esa 21 horas!!! :) > > Ahora empece a hacer unas pruebas con esto que parece que si me lleva a > lo que necesito... > > print datetime.datetime.utcfromtimestamp(6000) > 1970-01-01 01:40:00 > > o sea saco el dia/mes/año y dejo la hora y me serviria asi que voy a > hacer pruebas con eso a ver que tal anda, esto lo saque de > http://pleac.sourceforge.net/pleac_python/datesandtimes.html > > Bueno Gracias a los dos por encaminarme!!!!!! gracias a ustedes pude > buscar por donde investigar y aca les dejo a donde llegue. > > un abrazo!!!! > > Ariel > > > > Oscar de Anda escribió: > > Tal vez este link te ayude > > http://pleac.sourceforge.net/pleac_python/datesandtimes.html > > > > Saludos > > > > > > Ariel Nardelli escribió: > >> Hola! > >> > >> Tengo un tiempo en segundos y necesito pasarlos a hh:mm:ss pero no > >> encuentro la funcion que lo hace... > >> > >> Alguien sabe cual puede ser? > >> > >> busque por time y timedate y no la encontre, estoy seguro de que esta > >> delante de mis narices pero no la veooo grrrrrrrrrr > >> > >> Ariel > >> > >> _______________________________________________ > >> Python-es mailing list > >> Python-es en aditel.org > >> http://listas.aditel.org/listinfo/python-es > >> > > > > _______________________________________________ > > Python-es mailing list > > Python-es en aditel.org > > http://listas.aditel.org/listinfo/python-es > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From arnau en ehas.org Thu Feb 1 08:58:50 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Thu, 01 Feb 2007 08:58:50 +0100 Subject: Segundos a hora:minutos y segundos... In-Reply-To: <45C1718F.3070305@yahoo.com.ar> References: <45C0CE4B.1050203@yahoo.com.ar> <45C10F0E.4040103@jornada.com.mx> <45C1718F.3070305@yahoo.com.ar> Message-ID: <45C19DBA.8090703@ehas.org> Ariel Nardelli escribió: > Por lo que vi me propusieron usar dos cosas pero por separados llegamos > a lo mismo.. > > El GRAN problema que se me presenta en los 2 casos es que al pasarle > los segundos me arranca la conversion desde la hora 21:00:00 y de una > fecha que parece ser la fecha por defecto de donde comienza todo... > > miren.. si hago esto sale: > > >>> print datetime.datetime.fromtimestamp(0) > 1969-12-31 21:00:00 Hubiera jurado que te iba mejor time que datetime, quizá me he perdido algo: time.strftime("%H:%M:%S", time.localtime(secs)) ó time.strftime("%H:%M:%S", time.gmtime(secs)) según en qué este expresada la hora que tienes. arnau From pych3m4 en gmail.com Thu Feb 1 10:26:14 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Thu, 1 Feb 2007 10:26:14 +0100 Subject: Segundos a hora:minutos y segundos... In-Reply-To: <45C1718F.3070305@yahoo.com.ar> References: <45C0CE4B.1050203@yahoo.com.ar> <45C10F0E.4040103@jornada.com.mx> <45C1718F.3070305@yahoo.com.ar> Message-ID: <2c9fb0dd0702010126i125f50b7qd3a2fc0cf2362045@mail.gmail.com> El 1/02/07, Ariel Nardelli escribió: > El GRAN problema que se me presenta en los 2 casos es que al pasarle > los segundos me arranca la conversion desde la hora 21:00:00 y de una > fecha que parece ser la fecha por defecto de donde comienza todo... > > miren.. si hago esto sale: > > >>> print datetime.datetime.fromtimestamp(0) > 1969-12-31 21:00:00 Para no marearnos, hay que aclarar que el "origen" de tiempos es '00:00 01/01/1970 UTC'. La fecha la estás viendo en hora local, que, dependiendo de tu huso horario, de si es horario de verano o invierno, etc. habrá que sumarle o restarle algunas horas (en España UTC+1, en Argentina UTC-3,... http://es.wikipedia.org/wiki/Tiempo_Universal_Coordinado) Creo que así se explica el resto de tu mensaje. De todos modos, sigo sin conocer la naturaleza de tu problema. Cuando hablas de que tienes tantos segundos, no dices con respecto a qué momento. Aún así, puedes considerar usar 'time.gmtime' o 'time.localtime' para convertir esos segundos a una hora UTC o local, según prefieras: # Estoy en España UTC+1 >>> time.strftime("%c",time.gmtime()) '02/01/07 09:23:37' >>> time.strftime("%c",time.localtime()) '02/01/07 10:23:44' >>> time.strftime("%c") '02/01/07 10:23:49' >>> time.strftime("%X",time.gmtime()) '09:25:46' >>> time.strftime("%X",time.localtime()) '10:25:49' >>> time.strftime("%X") '10:25:53' >>> From kernel.no.found en gmail.com Thu Feb 1 14:53:43 2007 From: kernel.no.found en gmail.com (=?ISO-8859-1?Q?Juan_Jos=E9_Alonso.?=) Date: Thu, 1 Feb 2007 05:53:43 -0800 Subject: =?iso-8859-1?q?Juan_Jos=E9_Alonso=2E_desea_chatear?= Message-ID: <117d6e170702010553v3567dedch@mail.gmail.com> ----------------------------------------------------------------------- Juan José Alonso. desea mantener el contacto contigo a través de algunos de los mejores productos que Google ha lanzado recientemente. Si ya utilizas Gmail o Google Talk, visita: http://mail.google.com/mail/b-8d43db314d-c0073fcd9b-b6f5d77c8be5890d Haz clic en este vínculo para chatear con Juan José Alonso.. Si deseas obtener Gmail, la cuenta de correo gratuita de Google con más de 2.600 megabytes de almacenamiento, y chatear con Juan José Alonso., visita: http://mail.google.com/mail/a-8d43db314d-c0073fcd9b-b5cb530078 Gmail ofrece: - Protección eficaz contra el spam - Función de búsqueda integrada para localizar mensajes y un útil sistema para organizar los mensajes en "conversaciones" - No se muestran pop-ups ni anuncios banner no orientados, sólo anuncios de texto e información relevante respecto al contenido de tus mensajes - Funciones de mensajería instantánea en Gmail Todo ello gratuito. Espera. Todavía hay más. También puedes disfrutar de Google Talk: http://www.google.com/talk/intl/es/ Se trata de una pequeña aplicación descargable de Windows* para realizar llamadas gratuitas a tus amigos a través del equipo. Es una herramienta sencilla y fácil de usar, compatible con cualquier altavoz y micrófono instalados en el equipo informático. Gmail y Google Talk todavía se encuentran en fase de prueba. Trabajamos con esmero para mejorar y añadir nuevas funciones a estos servicios, por lo que es posible que solicitemos tus comentarios de vez en cuando. Gracias por ayudarnos a mejorar nuestros productos. Gracias por tu atención, El equipo de Google Para obtener más información acerca de Gmail y Google Talk, visita: http://mail.google.com/mail/help/intl/es/about.html http://www.google.com/talk/intl/es/about.html (Si las URL de este mensaje no funcionan al hacer clic en ellas, pégalas en la barra de direcciones del navegador). * ¿No eres usuario de Windows? Ningún problema. Podrás disfrutar del servicio Google Talk igualmente desde cualquier plataforma que emplee clientes de terceros (http://www.google.com/talk/intl/es/otherclients.html). From ferrero.mariaeugenia en gmail.com Thu Feb 1 15:26:32 2007 From: ferrero.mariaeugenia en gmail.com (Maria Eugenia Ferrero) Date: Thu, 1 Feb 2007 11:26:32 -0300 Subject: version de python In-Reply-To: References: <85f5e1fe0701300447v7da527bfhc92003ddbecbdf73@mail.gmail.com> Message-ID: <85f5e1fe0702010626u205e9b07ue1d47a725700d3d2@mail.gmail.com> Que tal Fransisco, como yo tengo Debian sarge, desisnstale Pytohn2.4 como me dijiste, pero se ve que bastantes cosas dependen también de esa versión porque se me armó bastante embrollo (lío). Despues de idas y vueltas he logrado instalar no mas todo de vuelta y solucionar algo de la malo que hice jeje. Ahora he vuelto a instalar (con apt-get) la librería matplotlib pero cuando corro el script me dice que no la tengo..... ¿Cómo puedo hacer para saber si al usar el apt-get me utiliza la versión 2.3o la 2.4? ¿Y cómo puedo hacer para trabajar solamente con una sola versión sin tener tantos conflictos? Gracias, saludos.- El día 30/01/07, Francisco Palm escribió: > > Si instalaste la versión para python 2.3, apt-get automáticamente te > instaló python 2.3 ya que sería una dependencia. > > Pero si tu sistema usa python 2.4 por defecto entonces hay conflictos. > > Podrías ejecutar tus scripts de la forma $python2.3 script.py > > O mejor aún, desinstalar por completo python 2.3 fijarte que paquetes > se desinstalan (dependientes de python 2.3) e instalar las versiones > respectivas para Python 2.4. > > Si tienes una distribución Linux basada en Python 2.3 como lo es > Debian Sarge entonces lo recomendable es desinstalar Python 2.4 y > reinstalar los paquetes respectivos para Python 2.3. > > Pues eso, > > Saludos > > F. Palm > > 2007/1/30, Maria Eugenia Ferrero : > > hola lista, les cuento mi problemilla: resulta que instalé la librería > > matplotlib > > con apt-get, pero se ve que me lo hizo en la versión 2.3, porque cuando > > pongo import pylab me tira una serie de errores entonces actualizo la > lista > > de paquetes y me tira que utilizo una verison vieja (la 2.3) y yo > trabajo > > con la 2.4 > > no sé si me estoy explicando bien la verdad jeje, espero me entiendan, > pero > > cómo podría hacer yo para instalar esa librería y trabajar con la > versión > > 2.4 ????? Muchas gracias desde ya, saludos..... > > _______________________________________________ > > Python-es mailing list > > Python-es en aditel.org > > http://listas.aditel.org/listinfo/python-es > > > > > -- > del Delirio al Limbo.... > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From marco.bustam en gmail.com Thu Feb 1 15:54:31 2007 From: marco.bustam en gmail.com (Marco Bustamante) Date: Thu, 1 Feb 2007 11:54:31 -0300 Subject: =?UTF-8?Q?Re:__Juan_Jos=C3=A9_Alonso._desea_chatear?= In-Reply-To: <117d6e170702010553v3567dedch@mail.gmail.com> References: <117d6e170702010553v3567dedch@mail.gmail.com> Message-ID: <73a726350702010654v379352d3v498d2de3b83a95eb@mail.gmail.com> te he agregado a mi lista de contactos. 2007/2/1, Juan José Alonso. : > > ----------------------------------------------------------------------- > Juan José Alonso. desea mantener el contacto contigo a través de > algunos de los mejores productos que Google ha lanzado recientemente. > > Si ya utilizas Gmail o Google Talk, visita: > http://mail.google.com/mail/b-8d43db314d-c0073fcd9b-b6f5d77c8be5890d > Haz clic en este vínculo para chatear con Juan José Alonso.. > > Si deseas obtener Gmail, la cuenta de correo gratuita de Google con > más de 2.600 megabytes de almacenamiento, y chatear con Juan José > Alonso., visita: > http://mail.google.com/mail/a-8d43db314d-c0073fcd9b-b5cb530078 > > Gmail ofrece: > - Protección eficaz contra el spam > - Función de búsqueda integrada para localizar mensajes y un útil > sistema para organizar los mensajes en "conversaciones" > - No se muestran pop-ups ni anuncios banner no orientados, sólo > anuncios de texto e información relevante respecto al contenido de tus > mensajes > - Funciones de mensajería instantánea en Gmail > > Todo ello gratuito. Espera. Todavía hay más. También puedes disfrutar > de Google Talk: > > http://www.google.com/talk/intl/es/ > > Se trata de una pequeña aplicación descargable de Windows* para > realizar llamadas gratuitas a tus amigos a través del equipo. Es una > herramienta sencilla y fácil de usar, compatible con cualquier altavoz > y micrófono instalados en el equipo informático. > > Gmail y Google Talk todavía se encuentran en fase de prueba. > Trabajamos con esmero para mejorar y añadir nuevas funciones a estos > servicios, por lo que es posible que solicitemos tus comentarios de > vez en cuando. Gracias por ayudarnos a mejorar nuestros productos. > > Gracias por tu atención, > El equipo de Google > > Para obtener más información acerca de Gmail y Google Talk, visita: > http://mail.google.com/mail/help/intl/es/about.html > http://www.google.com/talk/intl/es/about.html > > (Si las URL de este mensaje no funcionan al hacer clic en ellas, > pégalas en la barra de direcciones del navegador). > > * ¿No eres usuario de Windows? Ningún problema. Podrás disfrutar del > servicio Google Talk igualmente desde cualquier plataforma que emplee > clientes de terceros > (http://www.google.com/talk/intl/es/otherclients.html). > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > -- Marco Antonio Bustamante Ferrada Ingeniero (E) en Computación en Informática (c) Universidad Católica del Maule Usuario LINUX registrado #410407 ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From billguedes.python-y7mWNqJcIDpfJ/NunPodnw en public.gmane.org Thu Feb 1 16:26:09 2007 From: billguedes.python-y7mWNqJcIDpfJ/NunPodnw en public.gmane.org (Guedes) Date: Thu, 01 Feb 2007 13:26:09 -0200 Subject: [PyGtk] Desativar linha no comoboboxentry Message-ID: <1170343569.5584.3.camel@localhost.localdomain> Ola a todos, Como posso desativar uma linha no combobox? Segue abaixo um exemplo: modelo= gtk.ListStore(str) modelo.append(['Cartucho de Impressora']) modelo.append(['Computador 486 Semi-Novo']) modelo.append(['Computador Top de Linha']) modelo.append(['Monitor 21"']) Eu quero desativar o 'Monitor 21"'. Abraco, Guedes. From arnau en ehas.org Thu Feb 1 16:46:17 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Thu, 01 Feb 2007 16:46:17 +0100 Subject: [PyGtk] Desativar linha no comoboboxentry In-Reply-To: <1170343569.5584.3.camel@localhost.localdomain> References: <1170343569.5584.3.camel@localhost.localdomain> Message-ID: <45C20B49.4030600@ehas.org> Guedes escribió: > Como posso desativar uma linha no combobox? > Segue abaixo um exemplo: > modelo= gtk.ListStore(str) > modelo.append(['Cartucho de Impressora']) > modelo.append(['Computador 486 Semi-Novo']) > modelo.append(['Computador Top de Linha']) > modelo.append(['Monitor 21"']) > > Eu quero desativar o 'Monitor 21"'. Con la función "remove" del modelo: http://www.pygtk.org/docs/pygtk/class-gtkliststore.html#method-gtkliststore--remove Para ello, antes tienes que guardar el iterador (un identificador) que te devuelve la función "append": iter_hola = modelo.append(["hola"]) ... modelo.remove(iter_hola) Naturalmente, deberías hacerlo de una forma más elegante, guardando los iteradores en un diccionario, por ejemplo. From kh_alatar en telefonica.net Thu Feb 1 17:02:35 2007 From: kh_alatar en telefonica.net (Alatar) Date: Thu, 01 Feb 2007 17:02:35 +0100 Subject: Utilidad de correo Message-ID: <45C20F1B.6070907@telefonica.net> Salu2 a todos. Me encuentro en la necesidad de mandar unos cientos de correos al mes a lo que podría considerarse una lista de correos pero del tipo "anuncios" (para mandar notificaciones pero sin que el receptor tenga que interactuar con la lista), en la que el receptor no tiene por qué recibir información del resto de receptores. El caso es que estoy considerando la instalación de un servidor de correo en el ordenador que tiene que realizar el envío (que por cierto es un portátil con Ubuntu) y utilizar un gestor de listas tipo mailman. Mis preguntas son: dada la cantidad relativamente baja de correos a mandar, ¿es realmente práctico instalar servidor + gestor? ....o, en lugar de ello, ¿podría desarrollar alguna utilidad mediante python que me permita tomar por ejemplo un archivo de texto con todas las direcciones electrónicas a las que debo enviar el mensaje y enviarles a cada una de ellas el mismo? (yo desde luego preferiría esta última opción). Gracias de antemano a quien pueda orientarme. Alatar ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From rolandojtorres en gmail.com Thu Feb 1 18:01:12 2007 From: rolandojtorres en gmail.com (=?UTF-8?Q?Rolando_Jos=C3=A9_Torres_S=C3=A1nchez?=) Date: Thu, 1 Feb 2007 12:01:12 -0500 Subject: version de python In-Reply-To: <85f5e1fe0702010626u205e9b07ue1d47a725700d3d2@mail.gmail.com> References: <85f5e1fe0701300447v7da527bfhc92003ddbecbdf73@mail.gmail.com> <85f5e1fe0702010626u205e9b07ue1d47a725700d3d2@mail.gmail.com> Message-ID: <6a39a1d0702010901v40df4eb0o57b973cd8241fbc0@mail.gmail.com> El 1/02/07, Maria Eugenia Ferrero escribió: > Que tal Fransisco, como yo tengo Debian sarge, desisnstale Pytohn2.4 como me > dijiste, pero se ve que bastantes cosas dependen también de esa versión > porque se me armó bastante embrollo (lío). Despues de idas y vueltas he > logrado instalar no mas todo de vuelta y solucionar algo de la malo que hice > jeje. > Ahora he vuelto a instalar (con apt-get) la librería matplotlib pero cuando > corro el script me dice que no la tengo..... > ¿Cómo puedo hacer para saber si al usar el apt-get me utiliza la > versión 2.3o la > 2.4? > ¿Y cómo puedo hacer para trabajar solamente con una sola versión sin tener > tantos conflictos? > Gracias, saludos.- > > El día 30/01/07, Francisco Palm escribió: > > > > Si instalaste la versión para python 2.3, apt-get automáticamente te > > instaló python 2.3 ya que sería una dependencia. > > > > Pero si tu sistema usa python 2.4 por defecto entonces hay conflictos. > > > > Podrías ejecutar tus scripts de la forma $python2.3 script.py > > > > O mejor aún, desinstalar por completo python 2.3 fijarte que paquetes > > se desinstalan (dependientes de python 2.3) e instalar las versiones > > respectivas para Python 2.4. > > > > Si tienes una distribución Linux basada en Python 2.3 como lo es > > Debian Sarge entonces lo recomendable es desinstalar Python 2.4 y > > reinstalar los paquetes respectivos para Python 2.3. > > > > Pues eso, > > > > Saludos > > > > F. Palm > > > > 2007/1/30, Maria Eugenia Ferrero : > > > hola lista, les cuento mi problemilla: resulta que instalé la librería > > > matplotlib > > > con apt-get, pero se ve que me lo hizo en la versión 2.3, porque cuando > > > pongo import pylab me tira una serie de errores entonces actualizo la > > lista > > > de paquetes y me tira que utilizo una verison vieja (la 2.3) y yo > > trabajo > > > con la 2.4 > > > no sé si me estoy explicando bien la verdad jeje, espero me entiendan, > > pero > > > cómo podría hacer yo para instalar esa librería y trabajar con la > > versión > > > 2.4 ????? Muchas gracias desde ya, saludos..... > > > _______________________________________________ > > > Python-es mailing list > > > Python-es en aditel.org > > > http://listas.aditel.org/listinfo/python-es > > > > > > > > > -- > > del Delirio al Limbo.... > > _______________________________________________ > > Python-es mailing list > > Python-es en aditel.org > > http://listas.aditel.org/listinfo/python-es > > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > Hola maria Eugenia Matplotlib es una libreria muy completa que por su aspecto podria competir con scilab o matlab, pero realmente necesitas toda la libreria, o solo usarla para hacer unos cuantos graficos simples de barras? No seria mejor hacer una procedimiento sencillo que haga estos graficos de barras en un canvas dentro de un toplevel y que los exporte a gif o con pil que los pase a jpeg o pdf?? Por cierto como vas con tu Monitor de Sistema, seguiste perfeccionandolo?? estas graficas son para ese proyecto??. ---------- Rolando José Torres Sánchez TCL/TK inside Python MSN:rolandojtorres en hotmail.com ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From nachxs en gmail.com Thu Feb 1 18:49:35 2007 From: nachxs en gmail.com (NachXs) Date: Thu, 1 Feb 2007 12:49:35 -0500 Subject: Ayuda con gtk.VScrollbar Message-ID: <6e08b4840702010949s32f4a2bco9bb71691840abdf@mail.gmail.com> Saludos a todos los de la lista, una consulta, actualmente estoy trabajando en una pequeña aplicacion con python y glade y estoy intentando hacer interactuar el gtk.treeview y el gtk.vscrollbar, alguna referencia que me puedan brindar De antemano les agradesco la atencion -- NachXs http://nachxs.blogsome.com From ferrero.mariaeugenia en gmail.com Thu Feb 1 19:17:48 2007 From: ferrero.mariaeugenia en gmail.com (Maria Eugenia Ferrero) Date: Thu, 1 Feb 2007 15:17:48 -0300 Subject: version de python In-Reply-To: <6a39a1d0702010901v40df4eb0o57b973cd8241fbc0@mail.gmail.com> References: <85f5e1fe0701300447v7da527bfhc92003ddbecbdf73@mail.gmail.com> <85f5e1fe0702010626u205e9b07ue1d47a725700d3d2@mail.gmail.com> <6a39a1d0702010901v40df4eb0o57b973cd8241fbc0@mail.gmail.com> Message-ID: <85f5e1fe0702011017g7eac3fddyeccdd23690137b82@mail.gmail.com> La verdad que me aconsejaron esa librería y por eso la ocupé... y justamente porque no había podido utilizar bien PIL, pero ahora tampoco puedo matplotlib jajaja. Sí, los gráficos son justamente para mostrar en forma gráfica los resultados de mi monitor, la verdad es que me tomé unas vacaciones y recién ahora arranqué nuevamente así es que no he avanzado mucho de la última vez que nos comunicamos (:|) La verdad que no entiendo mucho tu pregunta... será que me conviene hacer más eso que me dices, lo del canvas...? El día 1/02/07, Rolando José Torres Sánchez escribió: > > El 1/02/07, Maria Eugenia Ferrero > escribió: > > Que tal Fransisco, como yo tengo Debian sarge, desisnstale Pytohn2.4como me > > dijiste, pero se ve que bastantes cosas dependen también de esa versión > > porque se me armó bastante embrollo (lío). Despues de idas y vueltas he > > logrado instalar no mas todo de vuelta y solucionar algo de la malo que > hice > > jeje. > > Ahora he vuelto a instalar (con apt-get) la librería matplotlib pero > cuando > > corro el script me dice que no la tengo..... > > ¿Cómo puedo hacer para saber si al usar el apt-get me utiliza la > > versión 2.3o la > > 2.4? > > ¿Y cómo puedo hacer para trabajar solamente con una sola versión sin > tener > > tantos conflictos? > > Gracias, saludos.- > > > > El día 30/01/07, Francisco Palm escribió: > > > > > > Si instalaste la versión para python 2.3, apt-get automáticamente te > > > instaló python 2.3 ya que sería una dependencia. > > > > > > Pero si tu sistema usa python 2.4 por defecto entonces hay conflictos. > > > > > > Podrías ejecutar tus scripts de la forma $python2.3 script.py > > > > > > O mejor aún, desinstalar por completo python 2.3 fijarte que paquetes > > > se desinstalan (dependientes de python 2.3) e instalar las versiones > > > respectivas para Python 2.4. > > > > > > Si tienes una distribución Linux basada en Python 2.3 como lo es > > > Debian Sarge entonces lo recomendable es desinstalar Python 2.4 y > > > reinstalar los paquetes respectivos para Python 2.3. > > > > > > Pues eso, > > > > > > Saludos > > > > > > F. Palm > > > > > > 2007/1/30, Maria Eugenia Ferrero : > > > > hola lista, les cuento mi problemilla: resulta que instalé la > librería > > > > matplotlib > > > > con apt-get, pero se ve que me lo hizo en la versión 2.3, porque > cuando > > > > pongo import pylab me tira una serie de errores entonces actualizo > la > > > lista > > > > de paquetes y me tira que utilizo una verison vieja (la 2.3) y yo > > > trabajo > > > > con la 2.4 > > > > no sé si me estoy explicando bien la verdad jeje, espero me > entiendan, > > > pero > > > > cómo podría hacer yo para instalar esa librería y trabajar con la > > > versión > > > > 2.4 ????? Muchas gracias desde ya, saludos..... > > > > _______________________________________________ > > > > Python-es mailing list > > > > Python-es en aditel.org > > > > http://listas.aditel.org/listinfo/python-es > > > > > > > > > > > > > -- > > > del Delirio al Limbo.... > > > _______________________________________________ > > > Python-es mailing list > > > Python-es en aditel.org > > > http://listas.aditel.org/listinfo/python-es > > > > > _______________________________________________ > > Python-es mailing list > > Python-es en aditel.org > > http://listas.aditel.org/listinfo/python-es > > > > > Hola maria Eugenia > > Matplotlib es una libreria muy completa que por su aspecto podria > competir con scilab o matlab, pero realmente necesitas toda la > libreria, o solo usarla para hacer unos cuantos graficos simples de > barras? > > No seria mejor hacer una procedimiento sencillo que haga estos > graficos de barras en un canvas dentro de un toplevel y que los > exporte a gif o con pil que los pase a jpeg o pdf?? > > Por cierto como vas con tu Monitor de Sistema, seguiste perfeccionandolo?? > estas graficas son para ese proyecto??. > > > ---------- > Rolando José Torres Sánchez > TCL/TK inside Python > MSN:rolandojtorres en hotmail.com > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > > From arnau en ehas.org Thu Feb 1 19:49:45 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Thu, 01 Feb 2007 19:49:45 +0100 Subject: Ayuda con gtk.VScrollbar In-Reply-To: <6e08b4840702010949s32f4a2bco9bb71691840abdf@mail.gmail.com> References: <6e08b4840702010949s32f4a2bco9bb71691840abdf@mail.gmail.com> Message-ID: <45C23649.1020806@ehas.org> NachXs escribió: > Saludos a todos los de la lista, una consulta, actualmente estoy trabajando > en una pequeña aplicacion con python y glade y estoy intentando hacer > interactuar el gtk.treeview y el gtk.vscrollbar, alguna referencia que me > puedan brindar Creo que te iría mejor un ScrolledWindow: http://www.pygtk.org/pygtk2reference/class-gtkscrolledwindow.html ejemplo para que sólo aparezca la barra vertical (cuando sea necesario): swindow = gtk.ScrolledWindow() swindow.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC) swindow.add(treeview) From david.abreu en iac.es Thu Feb 1 21:14:29 2007 From: david.abreu en iac.es (David Abreu Rodriguez) Date: Thu, 01 Feb 2007 20:14:29 +0000 Subject: pintar una tabla de datos In-Reply-To: <45A77BB3.9040506@ehas.org> References: <45A5AD15.3020403@iac.es> <45A6F043.3050602@ula.ve> <45A7774C.8030501@iac.es> <45A77BB3.9040506@ehas.org> Message-ID: <45C24A25.2080408@iac.es> Hola lista, que me recomendarían para pintar una tabla de datos en un fichero con formato imagen? Es decir, tener por ejemplo un fichero png que contenga un fondo blanco y una tabla con valores numéricos tipo: -------------- | 1 | 2 | 3 | -------------- pero mejor :) gracias de antemano From hugoruscitti en gmail.com Thu Feb 1 21:44:48 2007 From: hugoruscitti en gmail.com (Hugo Ruscitti) Date: Thu, 1 Feb 2007 21:44:48 +0100 Subject: Duda sobre como crear archivos setup.py con archivos adicionales .png Message-ID: <410d24d90702011244x6ff4073crc036273e86ffad35@mail.gmail.com> Saludos, hace varios días estoy intentando generar archivos setup.py para distribuir junto a mi programa pero aún no he podido reproducir lo que deseo a la hora de instalar el programa: Quisiera que mi programa cuente con un directorio donde reside el código fuente, y otros dos directorios donde residen archivos '.glade' y '.png'. El punto, es que puedo escribir el archivo 'setup.py' pero este excluye los archivos adicionales que no son código fuente al momento de realizar la instalación en un sistema. A continuación muestro una vista reducida del árbol de directorios con el que realizo pruebas al respecto: programa/ setup.py tiles/ __init__.py main.py glade/ main.glade pixmaps/ about.png bin/ tiles (script ejecutable) y mi archivo setup.py es similar al siguiente: from setuptools import find_packages from setuptools import setup setup( name="tiles", packages=find_packages(), package_data={"": ["*.glade", "*.png"]}, scripts=["bin/tiles"] ) al parecer 'python setup.py install' copia solamente los archivos de fuentes a '/usr/lib/python2.4/site-packages/tiles-0.0.0-py2.4.egg' pero no copia los archivos de recursos (.glade y .png) a ningún sitio. Realizando varias pruebas lo mas cercano fue incluir los archivos adicionales en el mismo directorio de los paquetes o "simular" que los directorios 'glade' y 'pixmaps' son paquetes, incluyendo un archivo "__init__.py" a cada uno. Luego el comando 'python setup.py sdist' genera un archivo en formato '.tar.gz' pero también excluye a los archivos '.glade' y '.png' ¿Podrían recomendarme ejemplos de archivos 'setup.py' o documentación al respecto?, insisto en que mi problema es a causa de los archivos adicionales, y como responde el sistema de instalación. Me agradaría tener un esquema mas similar al que podía utilizar mediante las 'autotools' de GNU, ¿se acostumbra a utilizar eso en Python? Desde ya, muchas gracias por su atención. -- Hugo Ruscitti www.losersjuegos.com.ar From cescd en yahoo.com.mx Thu Feb 1 22:02:05 2007 From: cescd en yahoo.com.mx (Cesar Cardenas Desales) Date: Thu, 1 Feb 2007 13:02:05 -0800 (PST) Subject: Duda sobre como crear archivos setup.py con archivos adicionales .png Message-ID: <296195.67042.qm@web50402.mail.yahoo.com> Un manual de py2exe en español que trata ese topico: http://pythonmexico.org/index_html/doc/py2exe/py2exe.html ----- Mensaje original ---- De: Hugo Ruscitti Para: python-es en aditel.org Enviado: jueves, 1 de febrero, 2007 14:44:48 Asunto: [Python-es] Duda sobre como crear archivos setup.py con archivos adicionales .png Saludos, hace varios días estoy intentando generar archivos setup.py para distribuir junto a mi programa pero aún no he podido reproducir lo que deseo a la hora de instalar el programa: Quisiera que mi programa cuente con un directorio donde reside el código fuente, y otros dos directorios donde residen archivos '.glade' y '.png'. El punto, es que puedo escribir el archivo 'setup.py' pero este excluye los archivos adicionales que no son código fuente al momento de realizar la instalación en un sistema. A continuación muestro una vista reducida del árbol de directorios con el que realizo pruebas al respecto: programa/ setup.py tiles/ __init__.py main.py glade/ main.glade pixmaps/ about.png bin/ tiles (script ejecutable) y mi archivo setup.py es similar al siguiente: from setuptools import find_packages from setuptools import setup setup( name="tiles", packages=find_packages(), package_data={"": ["*.glade", "*.png"]}, scripts=["bin/tiles"] ) al parecer 'python setup.py install' copia solamente los archivos de fuentes a '/usr/lib/python2.4/site-packages/tiles-0.0.0-py2.4.egg' pero no copia los archivos de recursos (.glade y .png) a ningún sitio. Realizando varias pruebas lo mas cercano fue incluir los archivos adicionales en el mismo directorio de los paquetes o "simular" que los directorios 'glade' y 'pixmaps' son paquetes, incluyendo un archivo "__init__.py" a cada uno. Luego el comando 'python setup.py sdist' genera un archivo en formato '.tar.gz' pero también excluye a los archivos '.glade' y '.png' ¿Podrían recomendarme ejemplos de archivos 'setup.py' o documentación al respecto?, insisto en que mi problema es a causa de los archivos adicionales, y como responde el sistema de instalación. Me agradaría tener un esquema mas similar al que podía utilizar mediante las 'autotools' de GNU, ¿se acostumbra a utilizar eso en Python? Desde ya, muchas gracias por su atención. -- Hugo Ruscitti www.losersjuegos.com.ar _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es ___________________________________________________________ Do You Yahoo!? La mejor conexión a Internet y 2GB extra a tu correo por $100 al mes. http://net.yahoo.com.mx From nachxs en gmail.com Fri Feb 2 04:30:50 2007 From: nachxs en gmail.com (NachXs) Date: Thu, 1 Feb 2007 22:30:50 -0500 Subject: Ayuda con gtk.VScrollbar In-Reply-To: <45C23649.1020806@ehas.org> References: <6e08b4840702010949s32f4a2bco9bb71691840abdf@mail.gmail.com> <45C23649.1020806@ehas.org> Message-ID: <6e08b4840702011930jf1c6a70q72c00e804b4e0e3f@mail.gmail.com> OK Arnau gracias por la atencion. Saludos Cordiales El día 1/02/07, Arnau Sanchez escribió: > > NachXs escribió: > > > Saludos a todos los de la lista, una consulta, actualmente estoy > trabajando > > en una pequeña aplicacion con python y glade y estoy intentando hacer > > interactuar el gtk.treeview y el gtk.vscrollbar, alguna referencia que > me > > puedan brindar > > Creo que te iría mejor un ScrolledWindow: > > http://www.pygtk.org/pygtk2reference/class-gtkscrolledwindow.html > > ejemplo para que sólo aparezca la barra vertical (cuando sea necesario): > > swindow = gtk.ScrolledWindow() > swindow.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC) > swindow.add(treeview) > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > -- NachXs http://nachxs.blogsome.com From arnau en ehas.org Fri Feb 2 09:36:02 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Fri, 02 Feb 2007 09:36:02 +0100 Subject: pintar una tabla de datos In-Reply-To: <45C24A25.2080408@iac.es> References: <45A5AD15.3020403@iac.es> <45A6F043.3050602@ula.ve> <45A7774C.8030501@iac.es> <45A77BB3.9040506@ehas.org> <45C24A25.2080408@iac.es> Message-ID: <45C2F7F2.4020703@ehas.org> David Abreu Rodriguez escribió: > que me recomendarían para pintar una tabla de datos en un fichero con > formato imagen? > > Es decir, tener por ejemplo un fichero png que contenga un fondo blanco > y una tabla con valores numéricos tipo: > -------------- > | 1 | 2 | 3 | > -------------- Como de momento no hay propuestas, ahí va una desde el atrevimiento que da la ignorancia: 1) crea un PDF con la tabla. 2) pasa el PDF a PNG/JPG/... 3) opcionalmente, recortas (crop) la parte interesante. Como ésta es una lista de Python, te diría que lo primero puedes hacerlo con Reportlab y lo segundo (y tercero) con PIL. Pero si fuera un script sólo para GNU/Linux, cada uno de esos pasos puedes hacerlos de cien formas distintas, según la experiencia que tengas. El PDF lo puedes, por ejemplo, crear a partir de un XML o algún otro formato intermedio (yo particularmente usaría asciidoc [1]), y lo segundo (y tercero) con el "convert" de las imagemagick. arnau referencias: [1] http://www.methods.co.nz/asciidoc/chunked/ar01s18.html From elizundia en fitbak.com Fri Feb 2 10:55:06 2007 From: elizundia en fitbak.com (Ekaitz Lizundia) Date: Fri, 2 Feb 2007 10:55:06 +0100 (CET) Subject: Duda sql Message-ID: <1518.87.218.133.76.1170410106.squirrel@mail.fitbak.com> Buenos dias, tengo una pequeña duda de SQL. Para poner una condicion de que el apellido empiece por una letra en sqlite, como deberia de poner??? where Apellido1 like '%s%'""" % (str(self.letra)) la letra va en una variable. Se supone que si pongo like 'A%'""" me saca todos los apellidos que empiezan con A. Pero mi problema es que no se que letra va a ser antes. Y poniendo '%s%'""" % (str(self.letra)) no me entiende. -- Ekaitz Lizundia Huete Fitbak SL Telf. 943 367098 elizundia en fitbak.com From joana_mendaro en hotmail.com Fri Feb 2 11:49:56 2007 From: joana_mendaro en hotmail.com (joana salgado gomez) Date: Fri, 02 Feb 2007 10:49:56 +0000 Subject: =?iso-8859-1?q?problema_con_tildes_y_=F1?= Message-ID: Hola listeros!!! El problema que tengo es muy comentado en diferentes sitios pero la verdad es que no he entendido muy bien las soluciones que dan. yo tendo un string con palabras que tiene tildes y Ñ-s: linea='Café pastelería Método eléctrica café estén ahí tamaño lasañas mínimo mía números paño tamaño tamaño máximo' y lo quiero separar en una lista por palabras para lo que hago: lista=linea.split(' ') Pero claro cuando hago visualizo la lista este es el resultado: [ 'Caf\xe9', 'pasteler\xeda', '', '', 'M\xe9todo', 'el\xe9ctrica', '', 'caf\xe9', 'est\xe9n', 'ah\xed', 'tama\xf1o', 'lasa\xf1as', 'm\xednimo', 'm\xeda', 'n\xfameros', 'pa\xf1o', 'tama\xf1o', 'tama\xf1o', 'm\xe1ximo'] Como lo hago para que las palabras se vean bien??? _________________________________________________________________ Ofertas y reservas para viajar por todo el mundo. [1]Organiza y contrata tus viajes aquí. References 1. http://g.msn.com/8HMBESES/2749??PS=47575 From aricalso en emcali.net.co Fri Feb 2 12:02:58 2007 From: aricalso en emcali.net.co (Ariel Calzada) Date: Fri, 02 Feb 2007 06:02:58 -0500 Subject: problema con tildes y =?ISO-8859-1?Q?=F1?= In-Reply-To: References: Message-ID: <45C31A62.40508@emcali.net.co> joana salgado gomez wrote: > > Hola listeros!!! > > El problema que tengo es muy comentado en diferentes sitios pero la > verdad es que no he entendido muy bien las soluciones que dan. > > yo tendo un string con palabras que tiene tildes y Ñ-s: > linea='Café pastelería Método eléctrica café estén ahí tamaño > lasañas mínimo mía números paño tamaño tamaño máximo' > y lo quiero separar en una lista por palabras para lo que hago: > > lista=linea.split(' ') > > Pero claro cuando hago visualizo la lista este es el resultado: > > [ 'Caf\xe9', 'pasteler\xeda', '', '', 'M\xe9todo', 'el\xe9ctrica', '', > 'caf\xe9', 'est\xe9n', 'ah\xed', 'tama\xf1o', 'lasa\xf1as', > 'm\xednimo', 'm\xeda', 'n\xfameros', 'pa\xf1o', 'tama\xf1o', > 'tama\xf1o', 'm\xe1ximo'] > Como lo hago para que las palabras se vean bien??? > _________________________________________________________________ > > Ofertas y reservas para viajar por todo el mundo. [1]Organiza y > contrata tus viajes aquí. > > References > > 1. http://g.msn.com/8HMBESES/2749??PS=47575 > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > > Hola! Lo que he visto es lo siguiente: Ejemplo: >>> x = [ 'Café' ] >>> print x ['Caf\xe9'] >>> print x [ 0 ] Café >>> Si imprimes la estructura directamente se muestran los caracteres extraños pero si accedes a los datos ya no tienes el problema. Espero esto sea ayuda. Saludos, Ariel Calzada Cali - Colombia From dani.berzas en gmail.com Fri Feb 2 12:47:34 2007 From: dani.berzas en gmail.com (Daniel Jimenez) Date: Fri, 02 Feb 2007 12:47:34 +0100 Subject: lista de atributos In-Reply-To: <45C2F7F2.4020703@ehas.org> References: <45A5AD15.3020403@iac.es> <45A6F043.3050602@ula.ve> <45A7774C.8030501@iac.es> <45A77BB3.9040506@ehas.org> <45C24A25.2080408@iac.es> <45C2F7F2.4020703@ehas.org> Message-ID: <45C324D6.5000703@gmail.com> Hola gente, una pregunta un poco chorras, ¿como se le pregunta a una instancia que atributos tiene?. Creo que una forma es dir(instancia), pero no se si hay otra. Gracias. Dani. From pych3m4 en gmail.com Fri Feb 2 13:49:08 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Fri, 2 Feb 2007 13:49:08 +0100 Subject: Duda sql In-Reply-To: <1518.87.218.133.76.1170410106.squirrel@mail.fitbak.com> References: <1518.87.218.133.76.1170410106.squirrel@mail.fitbak.com> Message-ID: <2c9fb0dd0702020449i35a8c12etbcbffe0d5e09d19b@mail.gmail.com> El 2/02/07, Ekaitz Lizundia escribió: > Buenos dias, tengo una pequeña duda de SQL. > > Para poner una condicion de que el apellido empiece por una letra en > sqlite, como deberia de poner??? > > where Apellido1 like '%s%'""" % (str(self.letra)) Cuando quieras poner el caracter % como tal, acuérdate que debes ponerlo doble where Apellido1 like '%s%%'""" % (str(self.letra)) From billguedes.python en terra.com.br Fri Feb 2 14:07:50 2007 From: billguedes.python en terra.com.br (Guedes) Date: Fri, 02 Feb 2007 11:07:50 -0200 Subject: Resumen de Python-es, Vol 298, =?iso-8859-1?q?Env=EDo?= 2 In-Reply-To: <20070201175031.89C62147E075@devnull.aditel.org> References: <20070201175031.89C62147E075@devnull.aditel.org> Message-ID: <1170421670.5391.6.camel@localhost.localdomain> Ola Arnau Sanchez, Eu nao quero remover a linha, preciso dela para exibicao, mas nao posso deixar sensivel ao usuario. Por exemplo, no combobox existe o metodo "set_sensitive(sensitive)" para desativar a bugiganga. Exemplo pratico: modelo= gtk.ListStore(str) modelo.append(['Cartucho de Impressora']) modelo.append(['Computador 486 Semi-Novo']) modelo.append(['Computador Top de Linha']) modelo.append(['Monitor 21"']) mCombo= gtk.ComboBoxEntry() mCombo.set_model(modelo) mCombo.set_sensitive(false) # Desativa a bugiganga combobox No exemplo pratico acima, desativo o combobox inteiro, porem, eu quero desativar apenas o 'Monitor 21"'. Abracos, Guedes. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From pych3m4 en gmail.com Fri Feb 2 14:15:48 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Fri, 2 Feb 2007 14:15:48 +0100 Subject: =?ISO-8859-1?Q?Re:__problema_con_tildes_y_=F1?= In-Reply-To: References: Message-ID: <2c9fb0dd0702020515lbe6f29ese1e146fccb050bc@mail.gmail.com> El 2/02/07, joana salgado gomez escribió: > > Hola listeros!!! > > El problema que tengo es muy comentado en diferentes sitios pero la > verdad es que no he entendido muy bien las soluciones que dan. > > yo tendo un string con palabras que tiene tildes y Ñ-s: > linea='Café pastelería Método eléctrica café estén ahí tamaño > lasañas mínimo mía números paño tamaño tamaño máximo' > y lo quiero separar en una lista por palabras para lo que hago: > > lista=linea.split(' ') > > Pero claro cuando hago visualizo la lista este es el resultado: > > [ 'Caf\xe9', 'pasteler\xeda', '', '', 'M\xe9todo', 'el\xe9ctrica', '', > 'caf\xe9', 'est\xe9n', 'ah\xed', 'tama\xf1o', 'lasa\xf1as', > 'm\xednimo', 'm\xeda', 'n\xfameros', 'pa\xf1o', 'tama\xf1o', > 'tama\xf1o', 'm\xe1ximo'] > Como lo hago para que las palabras se vean bien??? No es un "problema": estás visualizando la "representación" de la lista. Si quieres verla bien, tendrás que convertirla a texto, por ejemplo: print "','".join(lista) Si te preguntas el porqué, la cuestión es que una lista podría tener elementos que no fueran facil convertirlos en texto como son las "autoreferencias". From soporte en ialvear.com Fri Feb 2 16:37:48 2007 From: soporte en ialvear.com (Pablo Alvarez (IAlvear)) Date: Fri, 02 Feb 2007 12:37:48 -0300 Subject: profundizar conocimientos In-Reply-To: References: Message-ID: <45C35ACC.7060201@ialvear.com> hola, me gustaria saber si me pueden recomendar libros sobre python que me ayuden a profundizar sobre todo en el funcionamiento del lenguaje, y sobre todo para poder sacarle mas jugo a este lindo lenguaje. osea, serian libros avanzados no basicos. gracias! From rafaelrp en uci.cu Fri Feb 2 17:00:18 2007 From: rafaelrp en uci.cu (Rafael =?ISO-8859-1?Q?Rodr=EDguez?= Puente) Date: Fri, 02 Feb 2007 11:00:18 -0500 Subject: conectar a exchange Message-ID: <1170432018.10295.18.camel@localhost> Hola listeros, mi pregunta es si alguien sabe como conectarse a un servidor de correo exchange, para saber si hay algún correo nuevo en un determinado buzón. Gracias de antemano. "El software, al igual que el sexo, es mejor cuando es libre" From david.abreu en iac.es Fri Feb 2 20:00:13 2007 From: david.abreu en iac.es (David Abreu Rodriguez) Date: Fri, 02 Feb 2007 19:00:13 +0000 Subject: pintar una tabla de datos In-Reply-To: <45C2F7F2.4020703@ehas.org> References: <45A5AD15.3020403@iac.es> <45A6F043.3050602@ula.ve> <45A7774C.8030501@iac.es> <45A77BB3.9040506@ehas.org> <45C24A25.2080408@iac.es> <45C2F7F2.4020703@ehas.org> Message-ID: <45C38A3D.4040104@iac.es> voy a intentarlo con reportlab a ver que tal. gracias por la ayuda Arnau Sanchez wrote: > David Abreu Rodriguez escribió: > >> que me recomendarían para pintar una tabla de datos en un fichero con >> formato imagen? >> >> Es decir, tener por ejemplo un fichero png que contenga un fondo >> blanco y una tabla con valores numéricos tipo: >> -------------- >> | 1 | 2 | 3 | >> -------------- > > > Como de momento no hay propuestas, ahí va una desde el atrevimiento > que da la ignorancia: > > 1) crea un PDF con la tabla. > 2) pasa el PDF a PNG/JPG/... > 3) opcionalmente, recortas (crop) la parte interesante. > > Como ésta es una lista de Python, te diría que lo primero puedes > hacerlo con Reportlab y lo segundo (y tercero) con PIL. > > Pero si fuera un script sólo para GNU/Linux, cada uno de esos pasos > puedes hacerlos de cien formas distintas, según la experiencia que > tengas. El PDF lo puedes, por ejemplo, crear a partir de un XML o > algún otro formato intermedio (yo particularmente usaría asciidoc > [1]), y lo segundo (y tercero) con el "convert" de las imagemagick. > > arnau > > referencias: > > [1] http://www.methods.co.nz/asciidoc/chunked/ar01s18.html > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-e > s From cescd en yahoo.com.mx Fri Feb 2 21:12:33 2007 From: cescd en yahoo.com.mx (Cesar Cardenas Desales) Date: Fri, 2 Feb 2007 12:12:33 -0800 (PST) Subject: conectar a exchange Message-ID: <20070202201233.48976.qmail@web50404.mail.yahoo.com> Con la libreria imaplib, seria algo como lo siguiente: import imaplib M = imaplib.IMAP4(SERVER_NAME) M.login(LOGIN, PASSWORD) M.select('INBOX', readonly=1) msgList = M.search(None, '(BODY TEXTOABUSCAR)') for msg in msgList[1][0].split(): resp, data = server.fetch(msg, "(RFC822)") Aqui tienes unas pistas para buscar: http://aspn.activestate.com/ASPN/docs/PHP/function.imap-search.html ----- Mensaje original ---- De: Rafael Rodríguez Puente Para: La lista de python en castellano Enviado: viernes, 2 de febrero, 2007 10:00:18 Asunto: [Python-es] conectar a exchange Hola listeros, mi pregunta es si alguien sabe como conectarse a un servidor de correo exchange, para saber si hay algún correo nuevo en un determinado buzón. Gracias de antemano. "El software, al igual que el sexo, es mejor cuando es libre" _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es ___________________________________________________________ Do You Yahoo!? La mejor conexión a Internet y 2GB extra a tu correo por $100 al mes. http://net.yahoo.com.mx From pych3m4 en gmail.com Fri Feb 2 22:56:04 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Fri, 2 Feb 2007 22:56:04 +0100 Subject: lista de atributos In-Reply-To: <45C324D6.5000703@gmail.com> References: <45A5AD15.3020403@iac.es> <45A6F043.3050602@ula.ve> <45A7774C.8030501@iac.es> <45A77BB3.9040506@ehas.org> <45C24A25.2080408@iac.es> <45C2F7F2.4020703@ehas.org> <45C324D6.5000703@gmail.com> Message-ID: <2c9fb0dd0702021356i3c10b18dx5f250d045156e4a1@mail.gmail.com> El 2007/2/2, Daniel Jimenez escribió: > una pregunta un poco chorras, > ¿como se le pregunta a una instancia que atributos tiene?. > Creo que una forma es dir(instancia), pero no se si hay otra. No te creas, no es tan chorra la pregunta. Con dir() se obtiene lo que comúnmente se denomina "espacio de nombres" de un objeto. Normalmente, se obtiene el diccionario del objeto, el diccionario de su clase y, recursivamente, los diccionarios del resto de clases base. Pero el problema está en que no se debería considerar los atributos de un objeto como un simple diccionario estático: - es posible que los atributos de un objeto no estén declarados explícitamente por delegar en __getattr__ o __getattribute__ para acceder a ellos. - es posible que el atributo esté definido como una "propiedad" (property), o sea, por un descriptor de datos (data-descriptor), y que diga que no existe tal atributo hasta que no se inicializa. (Basta con devolver una excepción AttributeError cuando se accede a él). Lo único que se puede hacer con certeza es preguntar al objeto si tiene un atributo con la función hasattr(). Es similar a como en ruby y otros lenguajes orientados a objetos se accede a los atributos, mediante mensajes enviados al objeto, sin consideraciones sobre quién responderá finalmente el mensaje. Si quiere profundizar más, te aconsejo que eches un vistazo a ésto: From pych3m4 en gmail.com Fri Feb 2 23:47:07 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Fri, 2 Feb 2007 23:47:07 +0100 Subject: profundizar conocimientos In-Reply-To: <45C35ACC.7060201@ialvear.com> References: <45C35ACC.7060201@ialvear.com> Message-ID: <2c9fb0dd0702021447v69fd01ev54ad286447f6944e@mail.gmail.com> El 2/02/07, Pablo Alvarez (IAlvear) escribió: > hola, me gustaria saber si me pueden recomendar libros sobre python que > me ayuden a profundizar sobre todo en el funcionamiento del lenguaje, y > sobre todo para poder sacarle mas jugo a este lindo lenguaje. > > osea, serian libros avanzados no basicos. Deberías ser más explícito sobre tus intenciones. En la web oficial de python tienes una relación de libros: http://wiki.python.org/moin/PythonBooks El más lógico para seguir ahora sería el "Dive into Python": http://diveintopython.org/ que lo tienes traducido en http://almacen.gulic.org Por libros "avanzados", en la web oficial tienes éstos: http://wiki.python.org/moin/AdvancedBooks "Think in Python" y el de algoritmos los tienes en-línea, y están bastante bien para profundizar. Quizás estén demasiado centrados en programación orientada a objetos y prefieras otras temáticas diferentes o más específicas. Por comentar algunos de los libros que tengo de python (): "Text Processing in Python" - by David Mertz (http://gnosis.cx/TPiP/): es un libro funcamentalmente práctico que aporta diversos mecanismos de procesado de texto. "Foundations of Python Network Programming (Foundations)": un paseo por la librería estándar, y sus posibilidades para crear clientes y servidores en una red. "Programming Python" de Mark Lutz: es una guía fundamental, con de todo un poco. Es una buena referencia para Tkinter. "Rapid Web Applications with TurboGears: Using Python to Create Ajax-Powered Sites" (http://turbogearsbook.com/): sobre cómo crear aplicaciones web con turbogears. Hay otros frameworks, pero éste integra módulos externos cuyo conocimiento se puede aplicar fuera de turbogears, por lo que es un buen lugar para empezar con estos temas. "Jython Essentials": conocer jython no está de más. Este libro incluye la construcción de GUIs con swing, acceso a base de datos con JDBC y la creación de pyservlets para tomcat. Una forma de conocer lo que puede dar de sí python en entornos java. "wxPython in Action": el libro oficial de wxpython. Muy aconsejable si se quiere profundizar en creación de GUIs. "Web Programming in Python: Techniques for Integrating Linux, Apache and MySQL": es un libro ya obsoleto, pero que aún sirve como tutorial introductorio. Seguramente, habrá otros libros que lo superan. "Web Component Development with Zope 3": no está muy claro que el zope3 consiga tanto éxito como el zope2; pero es, definitivamente, una buena guía para aprender de qué va éso de la "Programación por Contrato". etc etc Por aquí otra valoración de libros de python que incluye reseñas: http://www.awaretek.com/book.html From rolandojtorres en gmail.com Sat Feb 3 05:08:54 2007 From: rolandojtorres en gmail.com (=?UTF-8?Q?Rolando_Jos=C3=A9_Torres_S=C3=A1nchez?=) Date: Fri, 2 Feb 2007 23:08:54 -0500 Subject: pintar una tabla de datos In-Reply-To: <45C38A3D.4040104@iac.es> References: <45A5AD15.3020403@iac.es> <45A6F043.3050602@ula.ve> <45A7774C.8030501@iac.es> <45A77BB3.9040506@ehas.org> <45C24A25.2080408@iac.es> <45C2F7F2.4020703@ehas.org> <45C38A3D.4040104@iac.es> Message-ID: <6a39a1d0702022008k7a96158ev3f41b2d172dbf1e@mail.gmail.com> Haz intentado dibujar cajas y texto en un canvas con tkinter, y grabala como archivo GIF. o exportalo con PIL a PNG o a JPEG. El 2/02/07, David Abreu Rodriguez escribió: > voy a intentarlo con reportlab a ver que tal. > > gracias por la ayuda > > Arnau Sanchez wrote: > > > David Abreu Rodriguez escribió: > > > >> que me recomendarían para pintar una tabla de datos en un fichero con > >> formato imagen? > >> > >> Es decir, tener por ejemplo un fichero png que contenga un fondo > >> blanco y una tabla con valores numéricos tipo: > >> -------------- > >> | 1 | 2 | 3 | > >> -------------- > > > > > > Como de momento no hay propuestas, ahí va una desde el atrevimiento > > que da la ignorancia: > > > > 1) crea un PDF con la tabla. > > 2) pasa el PDF a PNG/JPG/... > > 3) opcionalmente, recortas (crop) la parte interesante. > > > > Como ésta es una lista de Python, te diría que lo primero puedes > > hacerlo con Reportlab y lo segundo (y tercero) con PIL. > > > > Pero si fuera un script sólo para GNU/Linux, cada uno de esos pasos > > puedes hacerlos de cien formas distintas, según la experiencia que > > tengas. El PDF lo puedes, por ejemplo, crear a partir de un XML o > > algún otro formato intermedio (yo particularmente usaría asciidoc > > [1]), y lo segundo (y tercero) con el "convert" de las imagemagick. > > > > arnau > > > > referencias: > > > > [1] http://www.methods.co.nz/asciidoc/chunked/ar01s18.html > > _______________________________________________ > > Python-es mailing list > > Python-es en aditel.org > > http://listas.aditel.org/listinfo/python-e > > s > > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > -- Rolando José Torres Sánchez TCL/TK inside Python MSN:rolandojtorres en hotmail.com ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From zhito en msn.com Sat Feb 3 17:19:05 2007 From: zhito en msn.com (Emeric Jimenez Gomez) Date: Sat, 03 Feb 2007 16:19:05 +0000 Subject: Ejecutables Message-ID: Tengo una pregunta una vez que se compila el programa hecho en python, con py2exe se crea una carpeta con la libreria y otros archivos con el *.exe, la pregunta es que este ejecutable, solo me funciona si esta instalado python en la pc, hay algun modo de hacerlo portable y de que no dependa de tener instalado python en esa pc?? Gracias :) _________________________________________________________________ Visita MSN Latino Entretenimiento: ¡música, cine, chismes, TV y más...! http://latino.msn.com/entretenimiento/ From aricalso en emcali.net.co Sat Feb 3 18:15:26 2007 From: aricalso en emcali.net.co (Ariel Calzada) Date: Sat, 03 Feb 2007 12:15:26 -0500 Subject: Ejecutables In-Reply-To: References: Message-ID: <45C4C32E.30901@emcali.net.co> Emeric Jimenez Gomez wrote: > Tengo una pregunta una vez que se compila el programa hecho en python, > con py2exe se crea una carpeta con la libreria y otros archivos con el > *.exe, la pregunta es que este ejecutable, solo me funciona si esta > instalado python en la pc, hay algun modo de hacerlo portable y de que > no dependa de tener instalado python en esa pc?? > Gracias :) > > _________________________________________________________________ > Visita MSN Latino Entretenimiento: ¡música, cine, chismes, TV y > más...! http://latino.msn.com/entretenimiento/ > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > > Ese ejecutable te funciona sin tener python en la maquina. Saludos, Ariel Calzada From jeancarlosr_ve en yahoo.com Sat Feb 3 18:52:33 2007 From: jeancarlosr_ve en yahoo.com (=?iso-8859-1?Q?Jean_Carlos_Rodr=ECguez?=) Date: Sat, 3 Feb 2007 09:52:33 -0800 (PST) Subject: Ejecutables Message-ID: <666549.37952.qm@web53101.mail.yahoo.com> Tengo una pregunta una vez que se compila el programa hecho en python, con py2exe se crea una carpeta con la libreria y otros archivos con el *.exe, la pregunta es que este ejecutable, solo me funciona si esta instalado python en la pc, hay algun modo de hacerlo portable y de que no dependa de tener instalado python en esa pc?? Gracias : No al ejecutar py2exe te crea todas las librerias necesarias de python pra ejecutarlo en cualquier PC sin necesidad de tenerlo instalado, el error puede ser que solo te estes llevando el archivo .exe a esa PC, lo que debes hacer es llevarte toda la carpeta que genera el py2exe... Saludos Jean CArlos __________________________________________________ Correo Yahoo! Espacio para todos tus mensajes, antivirus y antispam ¡gratis! Regístrate ya - http://correo.espanol.yahoo.com/ From rafaelrp en uci.cu Sat Feb 3 07:53:13 2007 From: rafaelrp en uci.cu (Rafael =?ISO-8859-1?Q?Rodr=EDguez?= Puente) Date: Sat, 03 Feb 2007 01:53:13 -0500 Subject: conectar a exchange Message-ID: <1170485593.15929.1.camel@localhost> Disculpenme listeros, pero el correo en el que me respondieron la pregunta abajo, lo borré sin querer, por favor, si no es mucha molestia, respondanme otra vez. Muchas gracias. -------- Forwarded Message -------- From: Rafael Rodríguez Puente Reply-To: rafaelrp en uci.cu To: La lista de python en castellano Subject: conectar a exchange Date: Fri, 02 Feb 2007 11:00:19 -0500 Hola listeros, mi pregunta es si alguien sabe como conectarse a un servidor de correo exchange, para saber si hay algún correo nuevo en un determinado buzón. Gracias de antemano. "El software, al igual que el sexo, es mejor cuando es libre" "El software, al igual que el sexo, es mejor cuando es libre" From alexis.roda.villalonga en gmail.com Sat Feb 3 20:07:50 2007 From: alexis.roda.villalonga en gmail.com (Alexis Roda) Date: Sat, 03 Feb 2007 20:07:50 +0100 Subject: conectar a exchange In-Reply-To: <1170485593.15929.1.camel@localhost> References: <1170485593.15929.1.camel@localhost> Message-ID: <45C4DD86.4030207@gmail.com> En/na Rafael Rodríguez Puente ha escrit: > Disculpenme listeros, pero el correo en el que me respondieron la > pregunta abajo, lo borré sin querer, por favor, si no es mucha molestia, > respondanme otra vez. Aquí puedes consultar todos los mensajes enviados a la lista: http://listas.aditel.org/archivos/python-es/ Saludos From cgalisteo en k-rolus.net Sat Feb 3 20:02:56 2007 From: cgalisteo en k-rolus.net (Carlos Galisteo) Date: Sat, 03 Feb 2007 20:02:56 +0100 Subject: conectar a exchange In-Reply-To: <1170485593.15929.1.camel@localhost> References: <1170485593.15929.1.camel@localhost> Message-ID: <45C4DC60.8080809@k-rolus.net> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Puedes consultar tu mismo el histórico de la lista [1] Un saludo. [1]http://listas.aditel.org/archivos/python-es/2007-February/thread.html Rafael Rodríguez Puente wrote: > Disculpenme listeros, pero el correo en el que me respondieron la > pregunta abajo, lo borré sin querer, por favor, si no es mucha molestia, > respondanme otra vez. > > Muchas gracias. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFFxNxgW4wCemmtvmURAtmgAJ0cTxhoSZwMCkzZCaxwCgTv5bSwAgCgkp70 XGuQgWnDnZNScp/3h6SEHEA= =Yz28 -----END PGP SIGNATURE----- From miuler en gmail.com Sat Feb 3 23:02:52 2007 From: miuler en gmail.com (Hector Miuler Malpica Gallegos) Date: Sat, 03 Feb 2007 17:02:52 -0500 Subject: GtkWarning: Can't set a parent on widget which has a parent Message-ID: <1170540172.6116.9.camel@localhost> Hola amigos, tengo un problemita, tengo un file.glade en el cual tengo un par de ventanas, una de las ventanas (gtk.Window winMain) es la que se muestre, luego tengo otro window (winAlmacen) en el cual solo la uso como almacén. El problema es que quiero sacar de la segunda ventana un widget en particular para agregarlo a a la otra (winMain), winMain = self.xml.get_widget('winMain) bttPrueba = self.xml.get_widget('buttonPrueba') winMain.add (bttPrueba) y cuando ejecuto el programa me sale ./admin.py:39: GtkWarning: Can't set a parent on widget which has a parent Alguna idea? yo solo encontré una referencia echa en C : http://lists.ximian.com/pipermail/glade-users/2004-December/002331.html http://lists.ximian.com/pipermail/glade-users/2004-December/002332.html Gracias por sus repuestas/sugerencias. ------------ próxima parte ------------ A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 189 bytes Desc: This is a digitally signed message part URL: ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From rafaelrp en uci.cu Sat Feb 3 12:27:49 2007 From: rafaelrp en uci.cu (Rafael =?ISO-8859-1?Q?Rodr=EDguez?= Puente) Date: Sat, 03 Feb 2007 06:27:49 -0500 Subject: conectar a exchange In-Reply-To: <45C4DC60.8080809@k-rolus.net> References: <1170485593.15929.1.camel@localhost> <45C4DC60.8080809@k-rolus.net> Message-ID: <1170502070.15929.4.camel@localhost> Ya probé el modulo imapib y me funciona de maravilla, pero no logro obtener sólamente los mensajes maracados como no leidos, se pueden obtener todos, o buscar por algunas características, pero no veo como obtener los que no se han leido, gracias. On Sat, 2007-02-03 at 20:02 +0100, Carlos Galisteo wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Puedes consultar tu mismo el histórico de la lista [1] > > Un saludo. > > [1]http://listas.aditel.org/archivos/python-es/2007-February/thread.html > > Rafael Rodríguez Puente wrote: > > Disculpenme listeros, pero el correo en el que me respondieron la > > pregunta abajo, lo borré sin querer, por favor, si no es mucha molestia, > > respondanme otra vez. > > > > Muchas gracias. > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.5 (GNU/Linux) > Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org > > iD8DBQFFxNxgW4wCemmtvmURAtmgAJ0cTxhoSZwMCkzZCaxwCgTv5bSwAgCgkp70 > XGuQgWnDnZNScp/3h6SEHEA= > =Yz28 > -----END PGP SIGNATURE----- > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es "El software, al igual que el sexo, es mejor cuando es libre" From polivare en lilyphilia.net Sun Feb 4 01:53:17 2007 From: polivare en lilyphilia.net (Patricio Olivares) Date: Sat, 03 Feb 2007 21:53:17 -0300 Subject: conectar a exchange In-Reply-To: <1170502070.15929.4.camel@localhost> References: <1170485593.15929.1.camel@localhost> <45C4DC60.8080809@k-rolus.net> <1170502070.15929.4.camel@localhost> Message-ID: <45C52E7D.3090600@lilyphilia.net> Rafael Rodríguez Puente wrote: > Ya probé el modulo imapib y me funciona de maravilla, pero no logro > obtener sólamente los mensajes maracados como no leidos, se pueden > obtener todos, o buscar por algunas características, pero no veo como > obtener los que no se han leido, gracias. El método "search" en imaplib corresponde al comando SEARCH del protocolo IMAP. Los parámetros de SEARCH están descritos en , sección 6.4.4. En este caso, en vez de "ALL" supongo que se debería usar "NEW" o "UNSEEN", pero habría que probarlo :) From visionario en gmail.com Sun Feb 4 17:07:28 2007 From: visionario en gmail.com (Asdrubal Velasquez (RadioMan)) Date: Sun, 4 Feb 2007 12:07:28 -0400 Subject: =?iso-8859-1?q?Optimizar_repeticiones_de_l=EDneas=3F?= Message-ID: <28d5b4300702040807q12d03fb1t90a925f0216e6b15@mail.gmail.com> Saludos compañeros, Tengo las siguientes líneas de una aplicación: sqlData.write('-- -----------------------------------------------\n' ) sqlData.write('-- RadioMan AE-AutoScout \n') sqlData.write('-- Automatic MySql data to Mapping Tool \n') sqlData.write('-- -----------------------------------------------\n' ) sqlData.write('-- Version ' + __version__ + '\n' ) sqlData.write('-- Author: ' + __author__ + '\n' ) sqlData.write('-- email: ' + __email__ + '\n' ) sqlData.write('-- -----------------------------------------------\n' ) sqlData.write('-- This Update: ' + str(time.strftime("%Y/%m/%d %H:%M:%S", time.localtime())) + '\n' ) sqlData.write('-- Updating: ' + Updating + '\n' ) sqlData.write('-- -----------------------------------------------\n' ) sqlData.write('\n' ) . . . Realmente son muchas mas líneas que esas, el asunto realmente es que quisiera saber si la sentencia "sqlData.write" puedo resumirla u optimizarla, y en lugar de escribir en cada línea "sqlData.write" pueda resumir. ¿Me explique? Para los que conocen Visual Basic, existe una forma de agrupar este tipo de cosas y hasta servía para mejorar la velocidad de ejecución, por ejemplo: sqlData.write linea 1 sqlData.write linea 2 sqlData.write linea 3 sqlData.write linea 4 sqlData.write linea 5 sqlData.write linea 6 se puede escribir así: With sqlData .write linea 1 .write linea 2 .write linea 3 .write linea 4 .write linea 5 .write linea 6 end With Algo asi ando buscando... ¿es posible hacerlo con Python? Saludos a todos -- '//RadioMan - YV6ESD +58-(416)-586.4906 Asdrubal R. Velasquez Lagrave RadioMan ARROBA cantv.net Visionario ARROBA Gmail.com Puerto Ordaz - Venezuela ¿Jugaste AstroEmpires? http://alpha.astroempires.com/?ref=A.2709 From alexis.roda.villalonga en gmail.com Sun Feb 4 18:04:58 2007 From: alexis.roda.villalonga en gmail.com (Alexis Roda) Date: Sun, 04 Feb 2007 18:04:58 +0100 Subject: =?ISO-8859-1?Q?Re=3A_=5BPython-es=5D_Optimizar_repeticione?= =?ISO-8859-1?Q?s_de_l=EDneas=3F?= In-Reply-To: <28d5b4300702040807q12d03fb1t90a925f0216e6b15@mail.gmail.com> References: <28d5b4300702040807q12d03fb1t90a925f0216e6b15@mail.gmail.com> Message-ID: <45C6123A.4030301@gmail.com> En/na Asdrubal Velasquez (RadioMan) ha escrit: > Saludos compañeros, > > Para los que conocen Visual Basic, existe una forma de agrupar este > tipo de cosas y hasta servía para mejorar la velocidad de ejecución, > por ejemplo: [...] > With sqlData > .write linea 1 > .write linea 2 > .write linea 3 > .write linea 4 > .write linea 5 > .write linea 6 > end With > > Algo asi ando buscando... ¿es posible hacerlo con Python? w = sqlData.write w(linea1) w(linea2) ... Saludos From pych3m4 en gmail.com Mon Feb 5 02:18:00 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Mon, 5 Feb 2007 02:18:00 +0100 Subject: =?ISO-8859-1?Q?Re:__Optimizar_repeticiones_de_l=EDneas=3F?= In-Reply-To: <28d5b4300702040807q12d03fb1t90a925f0216e6b15@mail.gmail.com> References: <28d5b4300702040807q12d03fb1t90a925f0216e6b15@mail.gmail.com> Message-ID: <2c9fb0dd0702041718w7a2c5484n1711742573a9e283@mail.gmail.com> El 2007/2/4, Asdrubal Velasquez (RadioMan) escribió: > Tengo las siguientes líneas de una aplicación: > > sqlData.write('-- -----------------------------------------------\n' ) > sqlData.write('-- RadioMan AE-AutoScout \n') > sqlData.write('-- Automatic MySql data to Mapping Tool \n') > sqlData.write('-- -----------------------------------------------\n' ) > sqlData.write('-- Version ' + __version__ + '\n' ) > sqlData.write('-- Author: ' + __author__ + '\n' ) > sqlData.write('-- email: ' + __email__ + '\n' ) > sqlData.write('-- -----------------------------------------------\n' ) > sqlData.write('-- This Update: ' + str(time.strftime("%Y/%m/%d > %H:%M:%S", time.localtime())) + '\n' ) > sqlData.write('-- Updating: ' + Updating + '\n' ) > sqlData.write('-- -----------------------------------------------\n' ) > sqlData.write('\n' ) > . > . > . > > Realmente son muchas mas líneas que esas, el asunto realmente es que > quisiera saber si la sentencia "sqlData.write" puedo resumirla u > optimizarla, y en lugar de escribir en cada línea "sqlData.write" > pueda resumir. En cuanto a optimización, se podría utilizar el comando "print >>file". No tendrías que poner un espacio de separación entre elementos, ni poner el retorno de carro al final de la línea, ni tener que convertir nada a string (lo hace de modo automático): print >>sqlData, '-- -----------------------------------------------' print >>sqlData, '-- RadioMan AE-AutoScout' print >>sqlData, '-- Automatic MySql data to Mapping Tool' print >>sqlData, '-- -----------------------------------------------' print >>sqlData, '-- Version', __version__ #no hay espacio después de Version print >>sqlData, '-- Author:', __author__ print >>sqlData, '-- email:', __email__ print >>sqlData, '-- -----------------------------------------------' print >>sqlData, '-- This Update:', time.strftime("%Y/%m/%d %H:%M:%S") # ver abajo [*] print >>sqlData, '-- Updating:', Updating print >>sqlData, '-- -----------------------------------------------' print >>sqlData [*] no hace falta la conversión a string ya que strftime ya devuelve una string. De todos modos, el print hubiera convertir a string el dato que fuera, por lo que no hay que hacerlo de modo explícito. Por otro lado, strftime emplea time.localtime() por defecto, así que no hace falta pasarlo explícitamente. Otro tipo de optimización sería emplear .writelines() en lugar de .write() . Si, por un casual, tienes las líneas a imprimir como una lista de cadenas u otro tipo de secuencia, .writelines() es lo más rápido que vas a encontrar para pasarlas a un fichero de texto. Como colofón, decirte que intentes evitar concatenar cadenas, ya que deja muchos "residuos" que tendrá luego que limpiar el recolector de basura (Las cadenas son objetos inmutables. Nunca se modifican, siempre se crean nuevas con el resultado). Es mejor emplear el formateo de cadenas: en lugar de hacer ésto: "XX-"+str(dato)+"-YY" cambiarlo por: "XX-%d-YY" % dato Además de ser más rápido y gastar menos memoria, te dará más control sobre el resultado final. Si no necesitas convertir nada, pero, en cambio, tienes una lista de cadenas para unir, es más rápido emplear el .join() "".join( lista_de_cadenas ) From zhito en msn.com Mon Feb 5 06:07:25 2007 From: zhito en msn.com (Emeric Jimenez Gomez) Date: Mon, 05 Feb 2007 05:07:25 +0000 Subject: Ejecutable Message-ID: Gracias por las respuestas, ya funciono, el problema era una linea en el programa que funcionaba en mi pc y no en otras maquinas ;) Gracias _________________________________________________________________ ¿Cuánto vale tu auto? Tips para mantener tu carro. ¡De todo en MSN Latino Autos! http://latino.msn.com/autos/ From billguedes.python en terra.com.br Mon Feb 5 11:52:42 2007 From: billguedes.python en terra.com.br (Guedes) Date: Mon, 05 Feb 2007 08:52:42 -0200 Subject: GtkWarning: Can't set a parent on widget which has a parent In-Reply-To: <20070205012446.9F244147998A@devnull.aditel.org> References: <20070205012446.9F244147998A@devnull.aditel.org> Message-ID: <1170672762.5174.8.camel@localhost.localdomain> Ola Hector Miuler Malpica Gallegos, > [Python-es] GtkWarning: Can't set a parent on widget which > has a parent Isso acontece quando o nome (Name) da bugiganga (Widget) esta diferente, ou seja, um nome no glade e outro no codigo. Por exemplo: glade-> winmain codigo->winMain Lembre-se, o python diferencia maiusculo de minusculo (Case Sensitive). Confira novamente a nome da bugiganga no glade e refaca o codigo. Abracos, Guedes. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From dmunhiz en gmail.com Mon Feb 5 13:24:13 2007 From: dmunhiz en gmail.com (=?ISO-8859-1?Q?Daniel_Mu=F1iz_Fontoira?=) Date: Mon, 05 Feb 2007 13:24:13 +0100 Subject: quitar salto de linea readline Message-ID: <45C721ED.9000600@gmail.com> Ola a todos: Mi cuestión es la siguiente, al recoger el valor de la línea con el readline() me devuelve el valor de la variable mas \n Ejemplo dd=f.readline() esto me devuelve "hola\n" Hay forma de que devuelva simplemente "hola" o de quitarle el "\n" he probado el replace y nada dd.replace('\n', '') Saludos y gracias -- Remitente: Daniel Muñiz Fontoira Eu uso software libre [1] [1]http://www.gnu.org/philosophy/free-sw.gl.html From ftricas en gmail.com Mon Feb 5 13:28:40 2007 From: ftricas en gmail.com (=?ISO-8859-1?Q?Fernando_Tricas_Garc=EDa?=) Date: Mon, 5 Feb 2007 13:28:40 +0100 Subject: quitar salto de linea readline In-Reply-To: <45C721ED.9000600@gmail.com> References: <45C721ED.9000600@gmail.com> Message-ID: linea[:-1] Saludos, -- Fernando On 2/5/07, Daniel Muñiz Fontoira wrote: > Ola a todos: > Mi cuestión es la siguiente, al recoger el valor de la línea con el > readline() me devuelve el valor de la variable mas \n > Ejemplo > dd=f.readline() > esto me devuelve "hola\n" > Hay forma de que devuelva simplemente "hola" o de quitarle el "\n" he > probado el replace y nada dd.replace('\n', '') > Saludos y gracias > > -- > Remitente: > Daniel Muñiz Fontoira > Eu uso software libre [1] > [1]http://www.gnu.org/philosophy/free-sw.gl.html > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > -- Fernando Tricas From antonio.beamud en linkend.net Mon Feb 5 13:42:15 2007 From: antonio.beamud en linkend.net (Antonio Beamud Montero) Date: Mon, 05 Feb 2007 13:42:15 +0100 Subject: quitar salto de linea readline In-Reply-To: References: <45C721ED.9000600@gmail.com> Message-ID: <1170679335.6952.4.camel@localhost.localdomain> El lun, 05-02-2007 a las 13:28 +0100, Fernando Tricas García escribió: > linea[:-1] No, imagina que luego usas esa función con otro tipo de cadenas.. te despareceria el último caracter. Algo así mejor: ----------------- import string linea.rstrip(string.whitespace) Saludos. P.D: Si bien es cierto que te quitaria todos los espacios en blanco del final de linea... > Saludos, > > -- > Fernando > > On 2/5/07, Daniel Muñiz Fontoira wrote: > > Ola a todos: > > Mi cuestión es la siguiente, al recoger el valor de la línea con el > > readline() me devuelve el valor de la variable mas \n > > Ejemplo > > dd=f.readline() > > esto me devuelve "hola\n" > > Hay forma de que devuelva simplemente "hola" o de quitarle el "\n" he > > probado el replace y nada dd.replace('\n', '') > > Saludos y gracias > > > > -- > > Remitente: > > Daniel Muñiz Fontoira > > Eu uso software libre [1] > > [1]http://www.gnu.org/philosophy/free-sw.gl.html > > > > _______________________________________________ > > Python-es mailing list > > Python-es en aditel.org > > http://listas.aditel.org/listinfo/python-es > > > > ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From dmunhiz en gmail.com Mon Feb 5 13:43:19 2007 From: dmunhiz en gmail.com (=?ISO-8859-1?Q?Daniel_Mu=F1iz_Fontoira?=) Date: Mon, 05 Feb 2007 13:43:19 +0100 Subject: quitar salto de linea readline In-Reply-To: References: <45C721ED.9000600@gmail.com> Message-ID: <45C72667.8040106@gmail.com> Guau!! Que rapidez!!! Muchas gracias he hecho esto y vá perfecto dd=f.readline()[:-1] antes dd="cadena\n" ahora dd="cadena" Así ya devuelve el valor de la linea sin el salto de linea. Perfecto. Justo lo que quería. Remitente: Daniel Muñiz Fontoira Eu uso software libre [1] [1]http://www.gnu.org/philosophy/free-sw.gl.html Fernando Tricas García escribió: > linea[:-1] > > Saludos, > > -- > Fernando > > On 2/5/07, Daniel Muñiz Fontoira wrote: >> Ola a todos: >> Mi cuestión es la siguiente, al recoger el valor de la línea con el >> readline() me devuelve el valor de la variable mas \n >> Ejemplo >> dd=f.readline() >> esto me devuelve "hola\n" >> Hay forma de que devuelva simplemente "hola" o de quitarle el "\n" he >> probado el replace y nada dd.replace('\n', '') >> Saludos y gracias >> >> -- >> Remitente: >> Daniel Muñiz Fontoira >> Eu uso software libre [1] >> [1]http://www.gnu.org/philosophy/free-sw.gl.html >> >> _______________________________________________ >> Python-es mailing list >> Python-es en aditel.org >> http://listas.aditel.org/listinfo/python-es >> > > From manuelmalo en gmail.com Mon Feb 5 13:50:24 2007 From: manuelmalo en gmail.com (Manuel Malo de Molina) Date: Mon, 5 Feb 2007 13:50:24 +0100 Subject: quitar salto de linea readline In-Reply-To: <45C72667.8040106@gmail.com> References: <45C721ED.9000600@gmail.com> <45C72667.8040106@gmail.com> Message-ID: Otra posibilidad es usar la funcion strip(), te "limpia" la cadena de esos caracteres. linea = linea.strip() 2007/2/5, Daniel Muñiz Fontoira : > Guau!! > Que rapidez!!! > Muchas gracias > > he hecho esto y vá perfecto > dd=f.readline()[:-1] > > antes dd="cadena\n" > ahora dd="cadena" > > Así ya devuelve el valor de la linea sin el salto de linea. Perfecto. > Justo lo que quería. > > > Remitente: > Daniel Muñiz Fontoira > Eu uso software libre [1] > [1]http://www.gnu.org/philosophy/free-sw.gl.html > > > Fernando Tricas García escribió: > > linea[:-1] > > > > Saludos, > > > > -- > > Fernando > > > > On 2/5/07, Daniel Muñiz Fontoira wrote: > >> Ola a todos: > >> Mi cuestión es la siguiente, al recoger el valor de la línea con el > >> readline() me devuelve el valor de la variable mas \n > >> Ejemplo > >> dd=f.readline() > >> esto me devuelve "hola\n" > >> Hay forma de que devuelva simplemente "hola" o de quitarle el "\n" he > >> probado el replace y nada dd.replace('\n', '') > >> Saludos y gracias > >> > >> -- > >> Remitente: > >> Daniel Muñiz Fontoira > >> Eu uso software libre [1] > >> [1]http://www.gnu.org/philosophy/free-sw.gl.html > >> > >> _______________________________________________ > >> Python-es mailing list > >> Python-es en aditel.org > >> http://listas.aditel.org/listinfo/python-es > >> > > > > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From dmunhiz en gmail.com Mon Feb 5 13:57:11 2007 From: dmunhiz en gmail.com (=?ISO-8859-1?Q?Daniel_Mu=F1iz_Fontoira?=) Date: Mon, 05 Feb 2007 13:57:11 +0100 Subject: quitar salto de linea readline In-Reply-To: References: <45C721ED.9000600@gmail.com> <45C72667.8040106@gmail.com> Message-ID: <45C729A7.8080908@gmail.com> Muchas gracias a todos, solo quería que me eliminase el salto de línea (\n) Saludos Remitente: Daniel Muñiz Fontoira Eu uso software libre [1] [1]http://www.gnu.org/philosophy/free-sw.gl.html Manuel Malo de Molina escribió: > Otra posibilidad es usar la funcion strip(), te "limpia" la cadena de > esos caracteres. > > linea = linea.strip() > > 2007/2/5, Daniel Muñiz Fontoira : >> Guau!! >> Que rapidez!!! >> Muchas gracias >> >> he hecho esto y vá perfecto >> dd=f.readline()[:-1] >> >> antes dd="cadena\n" >> ahora dd="cadena" >> >> Así ya devuelve el valor de la linea sin el salto de linea. Perfecto. >> Justo lo que quería. >> >> >> Remitente: >> Daniel Muñiz Fontoira >> Eu uso software libre [1] >> [1]http://www.gnu.org/philosophy/free-sw.gl.html >> >> >> Fernando Tricas García escribió: >> > linea[:-1] >> > >> > Saludos, >> > >> > -- >> > Fernando >> > >> > On 2/5/07, Daniel Muñiz Fontoira wrote: >> >> Ola a todos: >> >> Mi cuestión es la siguiente, al recoger el valor de la línea con el >> >> readline() me devuelve el valor de la variable mas \n >> >> Ejemplo >> >> dd=f.readline() >> >> esto me devuelve "hola\n" >> >> Hay forma de que devuelva simplemente "hola" o de quitarle el "\n" he >> >> probado el replace y nada dd.replace('\n', '') >> >> Saludos y gracias >> >> >> >> -- >> >> Remitente: >> >> Daniel Muñiz Fontoira >> >> Eu uso software libre [1] >> >> [1]http://www.gnu.org/philosophy/free-sw.gl.html >> >> >> >> _______________________________________________ >> >> Python-es mailing list >> >> Python-es en aditel.org >> >> http://listas.aditel.org/listinfo/python-es >> >> >> > >> > >> _______________________________________________ >> Python-es mailing list >> Python-es en aditel.org >> http://listas.aditel.org/listinfo/python-es >> > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From rapto en arrakis.es Mon Feb 5 14:59:16 2007 From: rapto en arrakis.es (Marcos =?ISO-8859-1?Q?S=E1nchez?= Provencio) Date: Mon, 05 Feb 2007 14:59:16 +0100 Subject: Duda sql In-Reply-To: <1518.87.218.133.76.1170410106.squirrel@mail.fitbak.com> References: <1518.87.218.133.76.1170410106.squirrel@mail.fitbak.com> Message-ID: <1170683957.20884.28.camel@localhost.localdomain> En beneficio de todos, usa parámetros: params=['a%'] cur=conn.execute('select * from tabla where apellido like ?',params) http://initd.org/pub/software/pysqlite/doc/usage-guide.html#executing-sql-statements Por cierto, sqlite no distingue mayus/minus, salvo en eñes y acentos :-P El vie, 02-02-2007 a las 10:55 +0100, Ekaitz Lizundia escribió: > Buenos dias, tengo una pequeña duda de SQL. > > Para poner una condicion de que el apellido empiece por una letra en > sqlite, como deberia de poner??? > > where Apellido1 like '%s%'""" % (str(self.letra)) > > la letra va en una variable. > > Se supone que si pongo > like 'A%'""" > me saca todos los apellidos que empiezan con A. > > Pero mi problema es que no se que letra va a ser antes. Y poniendo > '%s%'""" % (str(self.letra)) no me entiende. > ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From py en ch3m4.org Mon Feb 5 14:17:20 2007 From: py en ch3m4.org (Chema Cortes) Date: Mon, 05 Feb 2007 14:17:20 +0100 Subject: quitar salto de linea readline In-Reply-To: <1170679335.6952.4.camel@localhost.localdomain> References: <45C721ED.9000600@gmail.com> <1170679335.6952.4.camel@localhost.localdomain> Message-ID: <45C72E60.10308@ch3m4.org> Antonio Beamud Montero escribió: > El lun, 05-02-2007 a las 13:28 +0100, Fernando Tricas García escribió: >> linea[:-1] > > No, imagina que luego usas esa función con otro tipo de cadenas.. te > despareceria el último caracter. Además, la última línea del fichero puede ir sin salto de línea, con lo que se quitaría un caracter de esta última línea. > Algo así mejor: > ----------------- > import string > > linea.rstrip(string.whitespace) > > P.D: Si bien es cierto que te quitaria todos los espacios en blanco del > final de linea... Una mejor alternativa sería abrir el fichero con el salto de línea universal. El fin de línea siempre será '\n'; además funcionaría con cualquier fichero de texto independiente de cómo sea el fin de línea ('\r', '\n' ó '\r\n'). Quedaría algo así, en plan iterador: lineas=(l.rstrip('\n') for l in file("fichero.txt","Ur")) for l in lineas: print l -- Chema Cortés (py en ch3m4.org) "Proudly made on earth by generic humanoid carbon units" ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From dmunhiz en gmail.com Mon Feb 5 16:56:20 2007 From: dmunhiz en gmail.com (=?UTF-8?B?RGFuaWVsIE11w7FpeiBGb250b2lyYQ==?=) Date: Mon, 05 Feb 2007 16:56:20 +0100 Subject: quitar salto de linea readline In-Reply-To: <45C72E60.10308@ch3m4.org> References: <45C721ED.9000600@gmail.com> <1170679335.6952.4.camel@localhost.localdomain> <45C72E60.10308@ch3m4.org> Message-ID: <45C753A4.40701@gmail.com> Estimado Chema he probado lo que indicas y me ha devuelto el siguiente error: Traceback (most recent call last): File "C:\python\xenera_res\proba.py", line 2, in -toplevel- lineas=(l.rstrip('\n') for l in file("config.ini","Ur")) IOError: invalid mode: Ur Gracias por tu ayuda. Remitente: Daniel Muñiz Fontoira Eu uso software libre [1] [1]http://www.gnu.org/philosophy/free-sw.gl.html Chema Cortes escribió: > Antonio Beamud Montero escribió: >> El lun, 05-02-2007 a las 13:28 +0100, Fernando Tricas García escribió: >>> linea[:-1] >> No, imagina que luego usas esa función con otro tipo de cadenas.. te >> despareceria el último caracter. > > Además, la última línea del fichero puede ir sin salto de línea, con lo > que se quitaría un caracter de esta última línea. > >> Algo así mejor: >> ----------------- >> import string >> >> linea.rstrip(string.whitespace) >> >> P.D: Si bien es cierto que te quitaria todos los espacios en blanco del >> final de linea... > > Una mejor alternativa sería abrir el fichero con el salto de línea > universal. El fin de línea siempre será '\n'; además funcionaría con > cualquier fichero de texto independiente de cómo sea el fin de línea > ('\r', '\n' ó '\r\n'). Quedaría algo así, en plan iterador: > > lineas=(l.rstrip('\n') for l in file("fichero.txt","Ur")) > > for l in lineas: > print l > > > > > > ------------------------------------------------------------------------ > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From antonio.beamud en linkend.net Mon Feb 5 16:58:03 2007 From: antonio.beamud en linkend.net (Antonio Beamud Montero) Date: Mon, 05 Feb 2007 16:58:03 +0100 Subject: quitar salto de linea readline In-Reply-To: <45C72E60.10308@ch3m4.org> References: <45C721ED.9000600@gmail.com> <1170679335.6952.4.camel@localhost.localdomain> <45C72E60.10308@ch3m4.org> Message-ID: <1170691083.6952.11.camel@localhost.localdomain> El lun, 05-02-2007 a las 14:17 +0100, Chema Cortes escribió: > Antonio Beamud Montero escribió: > > El lun, 05-02-2007 a las 13:28 +0100, Fernando Tricas García escribió: > >> linea[:-1] > > ----------------- > > import string > > > > linea.rstrip(string.whitespace) > > > > P.D: Si bien es cierto que te quitaria todos los espacios en blanco del > > final de linea... > > Una mejor alternativa sería abrir el fichero con el salto de línea > universal. El fin de línea siempre será '\n'; además funcionaría con > cualquier fichero de texto independiente de cómo sea el fin de línea > ('\r', '\n' ó '\r\n'). Quedaría algo así, en plan iterador: > > lineas=(l.rstrip('\n') for l in file("fichero.txt","Ur")) string.whitespace tiene en cuenta la plataforma, por lo que el código anterior también es universal :) Un saludo. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From py en ch3m4.org Mon Feb 5 17:31:59 2007 From: py en ch3m4.org (Chema Cortes) Date: Mon, 5 Feb 2007 17:31:59 +0100 Subject: quitar salto de linea readline In-Reply-To: <45C753A4.40701@gmail.com> References: <45C721ED.9000600@gmail.com> <45C72E60.10308@ch3m4.org> <45C753A4.40701@gmail.com> Message-ID: <200702051732.00258.py@ch3m4.org> El Lunes, 5 de Febrero de 2007 16:56, Daniel Muñiz Fontoira escribió: > Estimado Chema he probado lo que indicas y me ha devuelto el siguiente > error: > > Traceback (most recent call last): > File "C:\python\xenera_res\proba.py", line 2, in -toplevel- > lineas=(l.rstrip('\n') for l in file("config.ini","Ur")) > IOError: invalid mode: Ur El modo 'U' se introdujo en el python 2.3 . No debería darte problemas. Por si acaso, cambia el orden de los modo --> "rU" ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From dmunhiz en gmail.com Mon Feb 5 17:40:30 2007 From: dmunhiz en gmail.com (=?ISO-8859-1?Q?Daniel_Mu=F1iz_Fontoira?=) Date: Mon, 05 Feb 2007 17:40:30 +0100 Subject: quitar salto de linea readline In-Reply-To: <200702051732.00258.py@ch3m4.org> References: <45C721ED.9000600@gmail.com> <45C72E60.10308@ch3m4.org> <45C753A4.40701@gmail.com> <200702051732.00258.py@ch3m4.org> Message-ID: <45C75DFE.4070805@gmail.com> Efectivamente lo he cambiado y vá perfecto aunque tambien iva con "rw" Además a modo de resumen: He probado esto y ha funcionado cons_hst=f.readline()[:-1] pero teniendo en cuenta que puede no ser lo mejor he probado mas. Esto también funciona: cons_hst=f.readline().rstrip('\n') He encontrado otra versión en el libro "introducción a la programación con python" Andrés Marzal e Isabel Gracia pag 364 fichero = open('ejemplo.txt', 'r') for linea in fichero: if linea[-1] == '\n': linea = linea[:-1] print linea fichero.close() otra cosa Si hago esto: lineas=(l.rstrip('\n') for l in file("config.ini","rw")) for l in lineas: print l muestra todo pero si quiero solo la línea 2, hay forma de decir variable= a línea 2 he probado variable=lineas[0] y variable=lineas(0) y nada. Una vez más Gracias!! Remitente: Daniel Muñiz Fontoira Eu uso software libre [1] [1]http://www.gnu.org/philosophy/free-sw.gl.html Chema Cortes escribió: > El Lunes, 5 de Febrero de 2007 16:56, Daniel Muñiz Fontoira escribió: >> Estimado Chema he probado lo que indicas y me ha devuelto el siguiente >> error: >> >> Traceback (most recent call last): >> File "C:\python\xenera_res\proba.py", line 2, in -toplevel- >> lineas=(l.rstrip('\n') for l in file("config.ini","Ur")) >> IOError: invalid mode: Ur > > El modo 'U' se introdujo en el python 2.3 . No debería darte problemas. Por si > acaso, cambia el orden de los modo --> "rU" > > > ------------------------------------------------------------------------ > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es From py en ch3m4.org Mon Feb 5 17:48:12 2007 From: py en ch3m4.org (Chema Cortes) Date: Mon, 5 Feb 2007 17:48:12 +0100 Subject: quitar salto de linea readline In-Reply-To: <1170691083.6952.11.camel@localhost.localdomain> References: <45C721ED.9000600@gmail.com> <45C72E60.10308@ch3m4.org> <1170691083.6952.11.camel@localhost.localdomain> Message-ID: <200702051748.13482.py@ch3m4.org> El Lunes, 5 de Febrero de 2007 16:58, Antonio Beamud Montero escribió: > > Una mejor alternativa sería abrir el fichero con el salto de línea > > universal. El fin de línea siempre será '\n'; además funcionaría con > > cualquier fichero de texto independiente de cómo sea el fin de línea > > ('\r', '\n' ó '\r\n'). Quedaría algo así, en plan iterador: > > > > lineas=(l.rstrip('\n') for l in file("fichero.txt","Ur")) > > string.whitespace tiene en cuenta la plataforma, por lo que el código > anterior también es universal :) No te funcionaría si el fichero usa la conveción Mac de terminar las líneas con '\r'. Además, con "whitespace" también quitarías todo espacio o tabulador que estuviera al final de la línea. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From antonio.beamud en linkend.net Mon Feb 5 18:52:50 2007 From: antonio.beamud en linkend.net (Antonio Beamud Montero) Date: Mon, 05 Feb 2007 18:52:50 +0100 Subject: quitar salto de linea readline In-Reply-To: <200702051748.13482.py@ch3m4.org> References: <45C721ED.9000600@gmail.com> <45C72E60.10308@ch3m4.org> <1170691083.6952.11.camel@localhost.localdomain> <200702051748.13482.py@ch3m4.org> Message-ID: <1170697970.6952.19.camel@localhost.localdomain> El lun, 05-02-2007 a las 17:48 +0100, Chema Cortes escribió: > El Lunes, 5 de Febrero de 2007 16:58, Antonio Beamud Montero escribió: > > > > Una mejor alternativa sería abrir el fichero con el salto de línea > > > universal. El fin de línea siempre será '\n'; además funcionaría con > > > cualquier fichero de texto independiente de cómo sea el fin de línea > > > ('\r', '\n' ó '\r\n'). Quedaría algo así, en plan iterador: > > > > > > lineas=(l.rstrip('\n') for l in file("fichero.txt","Ur")) > > > > string.whitespace tiene en cuenta la plataforma, por lo que el código > > anterior también es universal :) > > No te funcionaría si el fichero usa la conveción Mac de terminar las líneas > con '\r'. ¿Por que no? >>> string.whitespace >>> '\t\n\x0b\x0c\r ' > Además, con "whitespace" también quitarías todo espacio o tabulador > que estuviera al final de la línea. Sip, es el único pero :) ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From pych3m4 en gmail.com Mon Feb 5 19:19:32 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Mon, 5 Feb 2007 19:19:32 +0100 Subject: quitar salto de linea readline In-Reply-To: <1170697970.6952.19.camel@localhost.localdomain> References: <45C721ED.9000600@gmail.com> <45C72E60.10308@ch3m4.org> <1170691083.6952.11.camel@localhost.localdomain> <200702051748.13482.py@ch3m4.org> <1170697970.6952.19.camel@localhost.localdomain> Message-ID: <2c9fb0dd0702051019p9bdfb76v255bc8f7c2f88814@mail.gmail.com> El 2007/2/5, Antonio Beamud Montero escribió: > ¿Por que no? > >>> string.whitespace > >>> '\t\n\x0b\x0c\r ' No, no quería decir que éste fuera el problema. Me refería a que es más multiplataforma usar el salto de línea universal (ULF). Prueba a leer, sin ULF, un fichero de mac desde windows y verás que lo lee entero como si sólo fuera una línea. From pych3m4 en gmail.com Mon Feb 5 19:42:42 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Mon, 5 Feb 2007 19:42:42 +0100 Subject: quitar salto de linea readline In-Reply-To: <45C75DFE.4070805@gmail.com> References: <45C721ED.9000600@gmail.com> <45C72E60.10308@ch3m4.org> <45C753A4.40701@gmail.com> <200702051732.00258.py@ch3m4.org> <45C75DFE.4070805@gmail.com> Message-ID: <2c9fb0dd0702051042o432073c0m5d7f12405a61fb33@mail.gmail.com> El 2007/2/5, Daniel Muñiz Fontoira escribió: > otra cosa > Si hago esto: > > lineas=(l.rstrip('\n') for l in file("config.ini","rw")) > for l in lineas: > print l > > muestra todo pero si quiero solo la línea 2, hay forma de decir > variable= a línea 2 > he probado variable=lineas[0] y variable=lineas(0) y nada. Por fijar conceptos, lo que quieres es acceso aleatorio a las líneas de un fichero secuencial. Nada te va a evitar tener que leer todo el fichero hasta llegar a la línea deseada. Tienes tres posibilidades: 1) volcar todo el fichero a una lista en memoria y trabajar desde allí linea_2=list(lineas)[2] 2) en plan cutre, leer línea tras línea hasta llegar a la deseada linea_2=(l for i,l in enumerate(lineas) if i==2).next() 3) manejar los iteradores con el módulo 'itertools' from itertools import islice n=2 linea_2=islice(lista,n,n+1).next() Puede que exista algún método más elegante. From dmunhiz en gmail.com Mon Feb 5 20:00:56 2007 From: dmunhiz en gmail.com (=?ISO-8859-1?Q?Daniel_Mu=F1iz_Fontoira?=) Date: Mon, 05 Feb 2007 20:00:56 +0100 Subject: quitar salto de linea readline In-Reply-To: <2c9fb0dd0702051042o432073c0m5d7f12405a61fb33@mail.gmail.com> References: <45C721ED.9000600@gmail.com> <45C72E60.10308@ch3m4.org> <45C753A4.40701@gmail.com> <200702051732.00258.py@ch3m4.org> <45C75DFE.4070805@gmail.com> <2c9fb0dd0702051042o432073c0m5d7f12405a61fb33@mail.gmail.com> Message-ID: <45C77EE8.3000105@gmail.com> Muchas Gracias!! la primera opción es que que quiero (linea_2=list(lineas)[2]) ya que es para leer unos parametros que he puesto en un fichero con valores para unas variables y los leeré todos En fin... me alegro que esto diese para tanto. Saludos y gracias a todos. Remitente: Daniel Muñiz Fontoira Eu uso software libre [1] [1]http://www.gnu.org/philosophy/free-sw.gl.html Chema Cortes escribió: > El 2007/2/5, Daniel Muñiz Fontoira escribió: > >> otra cosa >> Si hago esto: >> >> lineas=(l.rstrip('\n') for l in file("config.ini","rw")) >> for l in lineas: >> print l >> >> muestra todo pero si quiero solo la línea 2, hay forma de decir >> variable= a línea 2 >> he probado variable=lineas[0] y variable=lineas(0) y nada. > > Por fijar conceptos, lo que quieres es acceso aleatorio a las líneas > de un fichero secuencial. Nada te va a evitar tener que leer todo el > fichero hasta llegar a la línea deseada. > > Tienes tres posibilidades: > > 1) volcar todo el fichero a una lista en memoria y trabajar desde allí > > linea_2=list(lineas)[2] > > 2) en plan cutre, leer línea tras línea hasta llegar a la deseada > > linea_2=(l for i,l in enumerate(lineas) if i==2).next() > > 3) manejar los iteradores con el módulo 'itertools' > > from itertools import islice > > n=2 > linea_2=islice(lista,n,n+1).next() > > > Puede que exista algún método más elegante. > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From jcea en argo.es Tue Feb 6 01:46:10 2007 From: jcea en argo.es (Jesus Cea) Date: Tue, 06 Feb 2007 01:46:10 +0100 Subject: Claves PGP (Re: =?ISO-8859-15?Q?gr=E1ficas_en_?= =?ISO-8859-15?Q?python=29?= In-Reply-To: <45BE72DA.1000708@argo.es> References: <45A5AD15.3020403@iac.es> <45A6F043.3050602@ula.ve> <45A7774C.8030501@iac.es> <45A77BB3.9040506@ehas.org> <45BE72DA.1000708@argo.es> Message-ID: <45C7CFD2.70107@argo.es> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Lo lamento. Estos mensajes deberían haber ido de forma personal :-( Pido disculpas. Jesus Cea wrote: > Hola, Reynaldo. Estás enviando tus mensajes con firma digital, pero tu > clave pública no está en los servidores de claves mundiales, así que no > podemos verificar las firmas. - -- Jesus Cea Avion _/_/ _/_/_/ _/_/_/ jcea en argo.es http://www.argo.es/~jcea/ _/_/ _/_/ _/_/ _/_/ _/_/ jabber / xmpp:jcea en jabber.org _/_/ _/_/ _/_/_/_/_/ _/_/ _/_/ _/_/ _/_/ _/_/ "Things are not so easy" _/_/ _/_/ _/_/ _/_/ _/_/ _/_/ "My name is Dump, Core Dump" _/_/_/ _/_/_/ _/_/ _/_/ "El amor es poner tu felicidad en la felicidad de otro" - Leibniz -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iQCVAwUBRcfP0plgi5GaxT1NAQJYswP6A+f0JGNk8C5+JOQn5SD0zeLbuRRdd1zo 5a9WxvqqxeM4u99C9Zfd2rm7GV4HFSlUxYRVP8nFqmEnypI12wlw3ON8Yev/aNf+ uIptalpbvjo2jl198kmzyyZLfeDnhzSHEJzH1Pf0WaqXNu6O97mrFN/Zm3Smg7e8 ZgZoBhX1+wM= =+ape -----END PGP SIGNATURE----- ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From aricalso en emcali.net.co Tue Feb 6 01:56:36 2007 From: aricalso en emcali.net.co (Ariel Calzada) Date: Mon, 05 Feb 2007 19:56:36 -0500 Subject: quitar salto de linea readline In-Reply-To: <45C77EE8.3000105@gmail.com> References: <45C721ED.9000600@gmail.com> <45C72E60.10308@ch3m4.org> <45C753A4.40701@gmail.com> <200702051732.00258.py@ch3m4.org> <45C75DFE.4070805@gmail.com> <2c9fb0dd0702051042o432073c0m5d7f12405a61fb33@mail.gmail.com> <45C77EE8.3000105@gmail.com> Message-ID: <45C7D244.40909@emcali.net.co> Daniel Muñiz Fontoira wrote: > Muchas Gracias!! > la primera opción es que que quiero (linea_2=list(lineas)[2]) ya que es > para leer unos parametros que he puesto en un fichero con valores para > unas variables y los leeré todos > En fin... me alegro que esto diese para tanto. > Saludos y gracias a todos. > > Remitente: > Daniel Muñiz Fontoira > Eu uso software libre [1] > [1]http://www.gnu.org/philosophy/free-sw.gl.html > > > Chema Cortes escribió: > >> El 2007/2/5, Daniel Muñiz Fontoira escribió: >> >> >>> otra cosa >>> Si hago esto: >>> >>> lineas=(l.rstrip('\n') for l in file("config.ini","rw")) >>> for l in lineas: >>> print l >>> >>> muestra todo pero si quiero solo la línea 2, hay forma de decir >>> variable= a línea 2 >>> he probado variable=lineas[0] y variable=lineas(0) y nada. >>> >> Por fijar conceptos, lo que quieres es acceso aleatorio a las líneas >> de un fichero secuencial. Nada te va a evitar tener que leer todo el >> fichero hasta llegar a la línea deseada. >> >> Tienes tres posibilidades: >> >> 1) volcar todo el fichero a una lista en memoria y trabajar desde allí >> >> linea_2=list(lineas)[2] >> >> 2) en plan cutre, leer línea tras línea hasta llegar a la deseada >> >> linea_2=(l for i,l in enumerate(lineas) if i==2).next() >> >> 3) manejar los iteradores con el módulo 'itertools' >> >> from itertools import islice >> >> n=2 >> linea_2=islice(lista,n,n+1).next() >> >> >> Puede que exista algún método más elegante. >> _______________________________________________ >> Python-es mailing list >> Python-es en aditel.org >> http://listas.aditel.org/listinfo/python-es >> >> > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > > > Que tal: cadena = cadena.strip () saludos, Ariel Calzada Cali - Colombia From pych3m4 en gmail.com Tue Feb 6 02:37:48 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Tue, 6 Feb 2007 02:37:48 +0100 Subject: Duda sql In-Reply-To: <2c9fb0dd0702020449i35a8c12etbcbffe0d5e09d19b@mail.gmail.com> References: <1518.87.218.133.76.1170410106.squirrel@mail.fitbak.com> <2c9fb0dd0702020449i35a8c12etbcbffe0d5e09d19b@mail.gmail.com> Message-ID: <2c9fb0dd0702051737n783e1ad0r50b7cbfd05f8c8f2@mail.gmail.com> El 2007/2/2, Chema Cortes escribió: > > Para poner una condicion de que el apellido empiece por una letra en > > sqlite, como deberia de poner??? > > > > where Apellido1 like '%s%'""" % (str(self.letra)) > > Cuando quieras poner el caracter % como tal, acuérdate que debes ponerlo doble > > where Apellido1 like '%s%%'""" % (str(self.letra)) Umm! creo que el que veía doble era yo. Empiezo a confundir lenguajes. :-P No hagáis caso a lo que puse y hacer caso de lo que dice Marcos. From arnau en ehas.org Tue Feb 6 08:21:54 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Tue, 06 Feb 2007 08:21:54 +0100 Subject: set_sensitive en ComboBox In-Reply-To: <1170421670.5391.6.camel@localhost.localdomain> References: <20070201175031.89C62147E075@devnull.aditel.org> <1170421670.5391.6.camel@localhost.localdomain> Message-ID: <45C82C92.4030003@ehas.org> Guedes escribió: > Eu nao quero remover a linha, preciso dela para exibicao, mas nao posso > deixar sensivel ao usuario. > Por exemplo, no combobox existe o metodo "set_sensitive(sensitive)" para > desativar a bugiganga. > Exemplo pratico: > modelo= gtk.ListStore(str) > modelo.append(['Cartucho de Impressora']) > modelo.append(['Computador 486 Semi-Novo']) > modelo.append(['Computador Top de Linha']) > modelo.append(['Monitor 21"']) > mCombo= gtk.ComboBoxEntry() > mCombo.set_model(modelo) > mCombo.set_sensitive(false) # Desativa a bugiganga combobox http://listas.aditel.org/archivos/python-es/2004-August/010217.html Como bien explica Marcos en la introducción a su consulta, las listas, árboles y tablas en GTK+ se gestionan con un esquema MVC [1], algo que despista bastante al principio, pero que a la postre ofrece una gran versatilidad. Entender esto es de gran ayuda a la hora de trabajar con combos y tablas. Dicho esto, ahí va una posible solución a lo que planteas: en primer lugar, yo cambiaría el ComboBoxEntry por un ComboBox, ¿realmente necesitas que el usuario pueda escribir la cadena? parece que lo que quieres es que seleccione alguno de los disponibles, así que el Entry no sería necesario. En cuanto a lo de establecer la propiedad "sensitive", tienes que añadir al modelo una columna que indique su estado y ligarlo al combo con la función "set_attributes" (también lo puedes hacer con "add_attribute"). Así, por ejemplo, con "sensitive=0" le estoy diciendo "para cada fila, usa el primer valor del modelo para establecer el valor de la propiedad 'sensitive'" (la misma idea para text=1) import gtk window = gtk.Window() modelo= gtk.ListStore(bool, str) modelo.append([True, 'Cartucho de Impressora']) modelo.append([True, 'Computador 486 Semi-Novo']) modelo.append([True, 'Computador Top de Linha']) modelo.append([False, 'Monitor 21"']) combo = gtk.ComboBox(modelo) cell = gtk.CellRendererText() combo.pack_start(cell, True) combo.set_attributes(cell, text=1, sensitive=0) window.add(combo) window.show_all() gtk.main() ... [1] http://es.wikipedia.org/wiki/Modelo_Vista_Controlador From mario.carrasco en gmail.com Tue Feb 6 16:27:51 2007 From: mario.carrasco en gmail.com (=?ISO-8859-1?Q?Mario_Jim=E9nez_Carrasco?=) Date: Tue, 6 Feb 2007 09:27:51 -0600 Subject: pygtk: Sobre los treeviews Message-ID: Hola amigos... mi cuestionamiento va mas hacia el manejo de los treeview, leyendo la referencia de la liga que encontré en la lista. http://listas.aditel.org/archivos/python-es/2004-August/010218.html encuentro la forma de agregar la lista de mis campos a un treeview. pero ahora quisiera saber como puedo hacer que el treeview tenga un comportamiento dinámico, es decir, que en cada columna pueda poner el dato del campo de una tabla, pero el comportamiento del treeview me permita que al cambiar de catalogo o tabla, me permita (dentro del mismo treeview) asignar las columnas correspondientes a la tabla que se acaba de seleccionar... espero sus comentarios.. y gracias de antemano... saludos... -- ISC. Mario Jimenez Carrasco Ingeniero de Software. From arnau en ehas.org Tue Feb 6 18:00:24 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Tue, 06 Feb 2007 18:00:24 +0100 Subject: pygtk: Sobre los treeviews In-Reply-To: <3932.87.235.142.119.1170780180.squirrel@correo.ehas.org> References: <3932.87.235.142.119.1170780180.squirrel@correo.ehas.org> Message-ID: <45C8B428.4040205@ehas.org> Buenas, > mi cuestionamiento va mas hacia el manejo de los treeview, leyendo la > referencia de la liga que encontré en la lista. > > http://listas.aditel.org/archivos/python-es/2004-August/010218.html > > encuentro la forma de agregar la lista de mis campos a un treeview. > > pero ahora quisiera saber como puedo hacer que el treeview tenga un > comportamiento dinámico, es decir, que en cada columna pueda poner el dato > del campo de una tabla, pero el comportamiento del treeview me permita que > al cambiar de catalogo o tabla, me permita (dentro del mismo treeview) > asignar las columnas correspondientes a la tabla que se acaba de > seleccionar... En el ejemplo de Lorenzo se hace justamente eso: con set_cell_data_func establece la función (mi_funcion) que se llama para rellenar cada celda a partir de un objeto (definición) del que se leen atributos. ¿No te sirve esa idea? Si cambias al vuelo el modelo de datos, también cambiaría los valores representados en el TreeView, que es lo que creo que quieres hacer. Si no lo ves claro, lo mejor sería que mandaras un código de ejemplo funcional (que podamos ejecutar) y lo vemos. arnau From tux_in_my_heart en hotmail.com Tue Feb 6 21:32:16 2007 From: tux_in_my_heart en hotmail.com (=?iso-8859-1?B?SmFjb2IgTnXxZXogR2FyY2lh?=) Date: Tue, 06 Feb 2007 14:32:16 -0600 Subject: Ayuda con barra de progreso en Python Message-ID: Primeramente hola a todos, y que se la estén pasando bien y ojala me puedan ayudar en este problema y si no pues de todos modos agradeceré su interés. Bien, mi problema es que estoy creando un programa en Python y necesito copiar un archivo y necesito mostrar su progreso, esto usando Python y GTK osea PyGTK pero desde hace una semana que estoy trabajando en esto y no lo he conseguido aun, este es el código de mi programa, para que vean mas o menos como están las cosas. ################################################################### from __future__ import division #Esto hace que no se trunque la division import pygtk #Importa el modulo PyGTK pygtk.require('2.0') import gtk import os class Base: def delete_event(self, widget, event, data=None): print "delete event occurred" return gtk.FALSE def destroy(self, widget, data=None): gtk.main_quit() def copy(self): #Aqui es donde comienza el copiado del archivo self.file1='/home/jacob/HU3.rar' #El archivo a copiar self.file2='/home/jacob/prueba.rar' #El archivo de destino self.file_object = open(self.file1, 'rb') #Abre el archivo de origen self.file_dest = open(self.file2, 'wb') #Crea el archivo de destino self.size=os.path.getsize(self.file1) #Obtiene el tamano del archivo de origen for i in range(0,self.size,8192): #Por cada 8192 bytes que hay de 0 hasta el tamano del archivo. self.percent=(i*100)/(self.size) #Formula para calcular el porcentaje if(True): #Mientras sea verdad lo anterior hacer self.chunk = self.file_object.read(8192)#Lee 8192 bytes if not self.chunk:#Si no hay bytes break #Romper el ciclo self.file_dest.write(self.chunk) #Escribe los 8192 bytes leidos self.file_object.close()#Cierra el archivo de origen cuando ya se completo el cilo self.file_dest.close() #Cierra el archivo de destino cuando ya se completo el ciclo return self.percent #retorna el porcentaje def __init__(self):#La funcion principal de la clase Base self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)#Se crea una ventana self.window.connect("destroy",self.destroy)#Se conecta a window para recibir la senal destroy self.pb = gtk.ProgressBar()#Se crea una progressbar self.window.add(self.pb)#Se agrega la progressbar a window self.pb.show() #Se muestra la progressbar self.pb.set_fraction(self.copy() / 100)#Esto es lo que avanzara la barra self.window.show() #Se muestra la ventana.Nota:Si pongo que se muestre primero #la ventana pasa lo mismo def main(self): #Funcion que llama al ciclo de espera de GTK gtk.main() print __name__ if __name__ == "__main__": Base().main() ################################################################### Mi script si funciona pero no como deberia, al principio no crea la ventana solo copia el archivo, despues sale la ventana y la progress pero solo me muestra el porcentaje ya completo y no es asi como quiero que funcione sino que salga la ventana y vaya avanzando la barra de progreso mientras avanza el copiado del archivo. Ojala y me puedan ayudar se los agradeceria muchisimo. Atte: Jacob Nuñez Garcia. _________________________________________________________________ Llamadas grátis de PC a PC [1]Haz clic aquí References 1. http://g.msn.com/8HMBESMX/2749??PS=47575 From arnau en ehas.org Tue Feb 6 23:38:18 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Tue, 06 Feb 2007 23:38:18 +0100 Subject: Ayuda con barra de progreso en Python In-Reply-To: References: Message-ID: <45C9035A.2040403@ehas.org> Jacob Nuñez Garcia escribió: > Bien, mi problema es que estoy creando un programa en Python y > necesito copiar un archivo y necesito mostrar su progreso, esto usando > Python y GTK osea PyGTK pero desde hace una semana que estoy > trabajando en esto y no lo he conseguido aun, este es el código de mi > programa, para que vean mas o menos como están las cosas. > > Mi script si funciona pero no como deberia, al principio no crea la > ventana solo copia el archivo, despues sale la ventana y la progress > pero solo me muestra el porcentaje ya completo y no es asi como quiero > que funcione sino que salga la ventana y vaya avanzando la barra de > progreso mientras Es una aplicación muy típica, tienes una entrada que te explica cómo hacerlo en el FAQ oficioso de PyGTK: http://www.async.com.br/faq/pygtk/index.py?req=show&file=faq20.006.htp En cuanto a tu código, no puedo evitar hacerte unos apuntes, siempre en el tono constructivo que anima esta lista :-) - Los comentarios que pones son, en general, innecesarios. Sólo deberías explicar aquellas partes realmente complejas, en las que creas que no queda claro qué estás haciendo (para otro programador o para ti mismo en el futuro). Por norma general, el código debería ser lo suficientemente expresivo, mucho más en Python, donde tenemos la claridad por un tótem sagrado; comentar cosas evidentes sólo dificulta la legibilidad. Esto no incluye, por supuesto, el texto que sigue a la definición de funciones y clases, que además permite generar documentación de forma automática. - Usas "self" de forma incorrecta. Excepto las variables que pertenecen a la instancia y deben quedar en memoria para su uso posterior, todas las demás deberían ser locales (sin el self). Hay muchísimas razones para ello: velocidad, ahorro de memoria, legibilidad... - No entiendo esta línea: if(True): #Mientras sea verdad lo anterior hacer - ¿Realmente necesitas el "from __future__ import division"? quedaría más claro que pasaras dividendo o divisor a float y listo. - Los booleanos forman parte de Python desde la versión 2.3, así que el uso de gtk.FALSE/gtk.TRUE está desaconsejado. Usa False/True. - Dale alguna vuelta al bucle que empieza por "for i in range(0,self.size,8192):", hay mejores formas de hacerlo. Puedes jugar, por ejemplo, con el típico bucle en Python: while 1: data = fd1.read(8192) if not data: break fd2.write(data) un saludo arnau From mario.carrasco en gmail.com Wed Feb 7 01:19:11 2007 From: mario.carrasco en gmail.com (=?ISO-8859-1?Q?Mario_Jim=E9nez_Carrasco?=) Date: Tue, 6 Feb 2007 18:19:11 -0600 Subject: pygtk: Sobre los treeviews In-Reply-To: <45C8B428.4040205@ehas.org> References: <3932.87.235.142.119.1170780180.squirrel@correo.ehas.org> <45C8B428.4040205@ehas.org> Message-ID: OK, entiendo el procedimiento de Lorenzo lo que puedo ver en ello es que cuando se crea cada funcion lo que hace es asignar el valor correspondiente a cada celda dependiendo del registro que se seleccione o del que se trate.... voy a exponer mi problematica de la siguiente forma... yo voy a usar dos controles TreeView, uno a la izquierda de mi pantalla que me va a mostrar la lista de catalogos o tablas, y por la derecha otro TreeView en donde (usando el procedimiento de Lorenzo) voy a poner los datos contenidos en esa tabla o catalogo, mostrando las columnas que contenga dicha tabla o catalogo. el comportamiento que necesito es, que cuando el usuario seleccione el catalogo (tabla) de proveedores cuyos campos son clave, nombre, apellidos, direccion, telefono, estos campos se agreguen al control de TreeView de la derecha mostrando las columnas correspondientes a los datos para cada campo; al cambiar del catalogo de proveedor al catalogo de articulos, cuyos campos son, clave, no. serie, descripcion. etc, el control TreeView, debe mostrar ahora los campos correspondientes al catalogo (tabla) seleccionado, por lo que las columnas que anteriormente tenia para el catalogo de proveedores ya no son utiles. Lamentablemente ahora no estoy en mi pc para enviar el codigo de ejemplo, pero si aun queda duda, lo enviare al llegar a casa.... saludos... On 2/6/07, Arnau Sanchez wrote: > > Buenas, > > > mi cuestionamiento va mas hacia el manejo de los treeview, leyendo la > > referencia de la liga que encontré en la lista. > > > > http://listas.aditel.org/archivos/python-es/2004-August/010218.html > > > > encuentro la forma de agregar la lista de mis campos a un treeview. > > > > pero ahora quisiera saber como puedo hacer que el treeview tenga un > > comportamiento dinámico, es decir, que en cada columna pueda poner el > dato > > del campo de una tabla, pero el comportamiento del treeview me permita > que > > al cambiar de catalogo o tabla, me permita (dentro del mismo treeview) > > asignar las columnas correspondientes a la tabla que se acaba de > > seleccionar... > > En el ejemplo de Lorenzo se hace justamente eso: con set_cell_data_func > establece la función (mi_funcion) que se llama para rellenar cada celda a > partir > de un objeto (definición) del que se leen atributos. ¿No te sirve esa > idea? Si > cambias al vuelo el modelo de datos, también cambiaría los valores > representados > en el TreeView, que es lo que creo que quieres hacer. > > Si no lo ves claro, lo mejor sería que mandaras un código de ejemplo > funcional > (que podamos ejecutar) y lo vemos. > > arnau > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > -- ISC. Mario Jimenez Carrasco Ingeniero de Software. From tux_in_my_heart en hotmail.com Wed Feb 7 04:47:32 2007 From: tux_in_my_heart en hotmail.com (=?iso-8859-1?Q?Jacob_Nu=F1ez_Garcia?=) Date: Tue, 6 Feb 2007 21:47:32 -0600 Subject: Ayuda con barra de progreso en Python Message-ID: Bueno antes que todo gracias Arnau no sabes lo bien que me caen tus comentarios, yo no soy de esos que se siente perfecto y se enoja cuando le dan a reconocer sus errores, te prometo que pondre mas esfuerzo para mejorar mis programas y me gusta mucho que me hagan saber en lo que estoy mal, ahh y gracias por el link, te prometo que lo estudiare y lo aprendere, y respecto a lo del while(True): me parece que es lo mismo que while 1: ojala y me pudieras hacer el programa a tu estilo y lo pones para aprender de ti.Bueno pues muchas gracias por todo. _________________________________________________________________ Live Search: Better results, fast http://get.live.com/search/overview From manuelmalo en gmail.com Wed Feb 7 10:07:59 2007 From: manuelmalo en gmail.com (Manuel Malo de Molina) Date: Wed, 7 Feb 2007 10:07:59 +0100 Subject: Convertir a ejecutable Message-ID: Hola a todos, se que este es un tema a debate a menudo en las listas de Python, pero que utilizais para convertir a .exe los programas de Python? A mi me han dejado la persona que comenzo el programa en el que estoy trabajando "de herencia" un script de py2exe que si, funciona, pero me parece una chapuza integral. El resultado son dos carpetas, 'build' y 'dist', con el ejecutable "perdido" entre cientos de archivos en esta segunda (mi jefe nunca lo encuentra), que ocupan en total cerca de 100 mbs para un codigo de unos 300 kbs. He intentado mejorarlo, o probar con otros en lugar de py2exe (PyInstaller reduce el resultado a 30 mbs, pero luego no arranca), pero el problema es que utilizo matplotlib, numpy, scipy, etc... que funcionan fatal con esto de convertir a ejecutable. Siempre me compila, pero luego no funcionan, no he conseguido avanzar nada en este terreno. En internet hay mucha gente que dice que haciendo tal o cual a ellos les ha compilado, pero claro, minimo que cambie algo para adaptarlo a mi programa deja de funcionar. Ya que conseguir algo mejor lo doy casi por imposible, me gustaria al menos saber como podria hacer que el ejecutable creado por py2exe se quedara en la carpeta principal (no en dist, si no en la anterior), para que fuera mas facil de encontrar. O mejor aun, si se pudiera reducir el numero de archivos seria genial, conseguir un single-executable o algo asi. Alguna idea? Saludos, Manuel Malo de Molina From rapto en arrakis.es Wed Feb 7 10:54:20 2007 From: rapto en arrakis.es (Marcos =?ISO-8859-1?Q?S=E1nchez?= Provencio) Date: Wed, 07 Feb 2007 10:54:20 +0100 Subject: Convertir a ejecutable In-Reply-To: References: Message-ID: <1170842060.22485.1.camel@localhost.localdomain> Si vas a distribuir matplotlib y similares, el resultado siempre va a ser bastante grande. El cliente final no tiene por qué ver las carpetas build, dist, etc. Sólo tiene que ver el contenido de build. El mié, 07-02-2007 a las 10:07 +0100, Manuel Malo de Molina escribió: > Hola a todos, se que este es un tema a debate a menudo en las listas > de Python, pero que utilizais para convertir a .exe los programas de > Python? > > A mi me han dejado la persona que comenzo el programa en el que estoy > trabajando "de herencia" un script de py2exe que si, funciona, pero me > parece una chapuza integral. El resultado son dos carpetas, 'build' y > 'dist', con el ejecutable "perdido" entre cientos de archivos en esta > segunda (mi jefe nunca lo encuentra), que ocupan en total cerca de 100 > mbs para un codigo de unos 300 kbs. > > He intentado mejorarlo, o probar con otros en lugar de py2exe > (PyInstaller reduce el resultado a 30 mbs, pero luego no arranca), > pero el problema es que utilizo matplotlib, numpy, scipy, etc... que > funcionan fatal con esto de convertir a ejecutable. Siempre me > compila, pero luego no funcionan, no he conseguido avanzar nada en > este terreno. > > En internet hay mucha gente que dice que haciendo tal o cual a ellos > les ha compilado, pero claro, minimo que cambie algo para adaptarlo a > mi programa deja de funcionar. > > Ya que conseguir algo mejor lo doy casi por imposible, me gustaria al > menos saber como podria hacer que el ejecutable creado por py2exe se > quedara en la carpeta principal (no en dist, si no en la anterior), > para que fuera mas facil de encontrar. O mejor aun, si se pudiera > reducir el numero de archivos seria genial, conseguir un > single-executable o algo asi. Alguna idea? > > > Saludos, > Manuel Malo de Molina > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From pych3m4 en gmail.com Wed Feb 7 11:16:57 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Wed, 7 Feb 2007 11:16:57 +0100 Subject: Convertir a ejecutable In-Reply-To: References: Message-ID: <2c9fb0dd0702070216j6bd80089tb2e91ddde2e838c1@mail.gmail.com> El 7/02/07, Manuel Malo de Molina escribió: > Hola a todos, se que este es un tema a debate a menudo en las listas > de Python, pero que utilizais para convertir a .exe los programas de > Python? > > A mi me han dejado la persona que comenzo el programa en el que estoy > trabajando "de herencia" un script de py2exe que si, funciona, pero me > parece una chapuza integral. El resultado son dos carpetas, 'build' y > 'dist', con el ejecutable "perdido" entre cientos de archivos en esta > segunda (mi jefe nunca lo encuentra), que ocupan en total cerca de 100 > mbs para un codigo de unos 300 kbs. Sólo es necesario que copies el contenido de la carpeta dist. Sólo hay un ejecutable para buscar. Mira la FAQ: http://www.py2exe.org/index.cgi/FAQ > He intentado mejorarlo, o probar con otros en lugar de py2exe > (PyInstaller reduce el resultado a 30 mbs, pero luego no arranca), > pero el problema es que utilizo matplotlib, numpy, scipy, etc... que > funcionan fatal con esto de convertir a ejecutable. Siempre me > compila, pero luego no funcionan, no he conseguido avanzar nada en > este terreno. En el wiki de py2exe tienes algunos consejos: http://www.py2exe.org/index.cgi/MatPlotLib Sobre todo asegúrate que incluyes el módulo 'pytz' además del 'matplotlib'. También mírate las opciones para el setup.py, como 'bundle_files', para conseguir reducir el número de ficheros a un fichero .zip comprimido, con lo que reducirás bastante el tamaño. Las opciones se pueden pasar por línea de comando o dentro del propio fichero setup: opts={ 'py2exe':{ 'bundle_files':1 } } En general, mírate el wiki del py2exe que te explica cómo solucionar algunos fallos. Y si quieres que tu jefe no se complique tanto, mírate el instalador Inno (http://www.jrsoftware.org/isinfo.php). Tiene la ventaja adicional de poder mejor comprimir con bzip2 y 7zip. From cervera en ffn.ub.es Wed Feb 7 12:45:54 2007 From: cervera en ffn.ub.es (Pau Cervera Badia) Date: Wed, 07 Feb 2007 12:45:54 +0100 Subject: lista a tupla Message-ID: <45C9BBF2.80700@ffn.ub.es> Hola, saben de alguna forma pythonica de convertir una lista, lista = [(1,2),(3,4)] a una tupla tupla = (1, 2, 3, 4) ? Gràcias. A mi solo se me ocurre, >>> lista = zip(range(10),range(10,20,1)) >>> lista [(0, 10), (1, 11), (2, 12), (3, 13), (4, 14), (5, 15), (6, 16), (7, 17), (8, 18), (9, 19)] >>> tupla = () >>> for element in lista: ... tupla = tupla + element ... >>> tupla (0, 10, 1, 11, 2, 12, 3, 13, 4, 14, 5, 15, 6, 16, 7, 17, 8, 18, 9, 19) Gràcies, -- Pau Cervera i Badia (e-mail cervera en ffn.ub.es) { Departament de Física Fonamental Martí i Franqués, 1 Universitat de Barcelona Planta 3, despatx 346 bis 08028 Barcelona tel: +34 934 921 155 Spain "Simple things should be simple, complex things should be possible." -- Alan Kay return http://www.ffn.ub.es/%7Ecervera/ } ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From josu.oyanguren en gmail.com Wed Feb 7 13:15:52 2007 From: josu.oyanguren en gmail.com (Josu Oyanguren) Date: Wed, 7 Feb 2007 13:15:52 +0100 Subject: lista a tupla In-Reply-To: <45C9BBF2.80700@ffn.ub.es> References: <45C9BBF2.80700@ffn.ub.es> Message-ID: <3aa468200702070415j7a24d83cp4b5ca5ba0b24b36a@mail.gmail.com> import operator reduce(operator.add, lista) o en una sola línea reduce(lambda x, y: x+y, lista) El día 7/02/07, Pau Cervera Badia escribió: > > Hola, > > saben de alguna forma pythonica de convertir una lista, > > lista = [(1,2),(3,4)] > > a una tupla > > tupla = (1, 2, 3, 4) ? > Gràcias. > > A mi solo se me ocurre, > > >>> lista = zip(range(10),range(10,20,1)) > >>> lista > [(0, 10), (1, 11), (2, 12), (3, 13), (4, 14), (5, 15), (6, 16), (7, 17), > (8, 18), (9, 19)] > >>> tupla = () > >>> for element in lista: > ... tupla = tupla + element > ... > >>> tupla > (0, 10, 1, 11, 2, 12, 3, 13, 4, 14, 5, 15, 6, 16, 7, 17, 8, 18, 9, 19) > > Gràcies, > > -- > Pau Cervera i Badia (e-mail cervera en ffn.ub.es) > { > Departament de Física Fonamental Martí i Franqués, 1 > Universitat de Barcelona Planta 3, despatx 346 bis > 08028 Barcelona > tel: +34 934 921 155 Spain > > "Simple things should be simple, complex things should be possible." > -- Alan Kay > return http://www.ffn.ub.es/%7Ecervera/ > } > > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > > From manuelmalo en gmail.com Wed Feb 7 13:37:01 2007 From: manuelmalo en gmail.com (Manuel Malo de Molina) Date: Wed, 7 Feb 2007 13:37:01 +0100 Subject: Convertir a ejecutable In-Reply-To: <2c9fb0dd0702070216j6bd80089tb2e91ddde2e838c1@mail.gmail.com> References: <2c9fb0dd0702070216j6bd80089tb2e91ddde2e838c1@mail.gmail.com> Message-ID: Hola, Gracias por los consejos, la verdad es que el Inno Setup funciona de maravilla, con ese ya no me tengo de preocupar de que sea dificil de encontrar el ejecutable ni de problemas de espacio. Por cierto, la opcion que mejor me venia era "bundle_files", que te comprime todas las librerias, pero segun he leido en internet puede dar problemas con ciertos modulos. Estaba 'trasteando' un poco con el y me surgio una duda, sabeis como se puede hacer para que cree mas enlaces en el menu de Inicio? le he puesto el de ejecutar el programa y desinstalar, pero me gustaria un 3o que sea un acceso directo al directorio del programa, es posible? Manuel From rapto en arrakis.es Wed Feb 7 13:42:27 2007 From: rapto en arrakis.es (Marcos =?ISO-8859-1?Q?S=E1nchez?= Provencio) Date: Wed, 07 Feb 2007 13:42:27 +0100 Subject: lista a tupla In-Reply-To: <45C9BBF2.80700@ffn.ub.es> References: <45C9BBF2.80700@ffn.ub.es> Message-ID: <1170852147.22485.8.camel@localhost.localdomain> lista = [(1,2),(3,4)] sum(lista,()) (1, 2, 3, 4) return sum(i for i in ) El mié, 07-02-2007 a las 12:45 +0100, Pau Cervera Badia escribió: > Hola, > > saben de alguna forma pythonica de convertir una lista, > lista = [(1,2),(3,4)] > > a una tupla > > tupla = (1, 2, 3, 4) ? > Gràcias. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From pych3m4 en gmail.com Wed Feb 7 13:55:15 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Wed, 7 Feb 2007 13:55:15 +0100 Subject: lista a tupla In-Reply-To: <3aa468200702070415j7a24d83cp4b5ca5ba0b24b36a@mail.gmail.com> References: <45C9BBF2.80700@ffn.ub.es> <3aa468200702070415j7a24d83cp4b5ca5ba0b24b36a@mail.gmail.com> Message-ID: <2c9fb0dd0702070455s736cbda0kc3273b2c383eb8be@mail.gmail.com> El 7/02/07, Josu Oyanguren escribió: > import operator > reduce(operator.add, lista) > > o en una sola línea > > reduce(lambda x, y: x+y, lista) ...o más "ad hoc", pensando en que el resultado será una tupla: reduce(tuple.__add__,lista) Pero, ya que se pregunta por un modo pythónico, creo que en este caso sería éste: [x for y in lista for x in y] From rafaelcantos en hotmail.com Wed Feb 7 14:03:48 2007 From: rafaelcantos en hotmail.com (Rafael Cantos) Date: Wed, 07 Feb 2007 13:03:48 +0000 Subject: python y pygtk Message-ID: Hola a todos. Soy un nuevo usuario de esta lista, y también de python y pygtk. A ver si podéis ayudarme con las siguientes dudas: 1. Si creo, una ventana y un botón así: w=gtk.Window() B=gtk.Button('Hola') w.add(b) no me da ningun error, pero al ejecutarlo en el interprete así: w.show() ó w.show_all() El botón no aparece por ninguna parte. He probado en Ubuntu y en Windows, y nada. ¿Qué está mal? Ya sé que no hay asociado ninguna acción al botón, pero ahora mismo lo quue me interesa, es que salga el botón. 2. Si quiero que el programa, almacenado en un guión, se ejecute, ¿Dónde tengo que guardar el guíón, tanto en Windows como en Ubuntu? Gracias a todos, y perdonar mi nobatez. _________________________________________________________________ Acepta el reto MSN Premium: Correos más divertidos con fotos y textos increíbles en MSN Premium. Descárgalo y pruébalo 2 meses gratis. http://join.msn.com?XAPID=1697&DI=1055&HL=Footer_mailsenviados_correosmasdivertidos From forodejazz en gmail.com Wed Feb 7 14:07:59 2007 From: forodejazz en gmail.com (=?ISO-8859-1?Q?David_Asorey_=C1lvarez?=) Date: Wed, 7 Feb 2007 14:07:59 +0100 Subject: Utilidad de correo In-Reply-To: <45C20F1B.6070907@telefonica.net> References: <45C20F1B.6070907@telefonica.net> Message-ID: > [...] ¿podría desarrollar alguna utilidad mediante python que > me permita tomar por ejemplo un archivo de texto con todas las > direcciones electrónicas a las que debo enviar el mensaje y enviarles a > cada una de ellas el mismo? (yo desde luego preferiría esta última opción). Yo optaría por hacerme un pequeño programa. Está la librería smtplib: http://docs.python.org/lib/module-smtplib.html Ejemplo: http://www.python.org/doc/lib/SMTP-example.html El tema ya se ha comentado otras veces en la lista: http://www.google.es/search?q=mandar+un+correo+site%3Ahttp%3A%2F%2Flistas.aditel.org%2Farchivos%2Fpython-es%2F -- David Asorey Álvarez forodejazz en gmail.com From jordipascual en ono.com Wed Feb 7 14:38:37 2007 From: jordipascual en ono.com (Jordi Pascual) Date: Wed, 07 Feb 2007 14:38:37 +0100 Subject: python y pygtk In-Reply-To: References: Message-ID: <45C9D65D.7020002@ono.com> Rafael Cantos escribió: > Hola a todos. Soy un nuevo usuario de esta lista, y también de python > y pygtk. A ver si podéis ayudarme con las siguientes dudas: > > 1. Si creo, una ventana y un botón así: > w=gtk.Window() > B=gtk.Button('Hola') > w.add(b) > > no me da ningun error, pero al ejecutarlo en el interprete así: > > w.show() > ó > w.show_all() > > El botón no aparece por ninguna parte. He probado en Ubuntu y en > Windows, y nada. ¿Qué está mal? Ya sé que no hay asociado ninguna > acción al botón, pero ahora mismo lo quue me interesa, es que salga el > botón. Para empezar yo diría que w.add(b) debería ser w.add(B) > > 2. Si quiero que el programa, almacenado en un guión, se ejecute, > ¿Dónde tengo que guardar el guíón, tanto en Windows como en Ubuntu? > En Linux lo tienes que almacenar en algún lugar que esté en el PATH (prueba echo $PATH) From lgs en sicem.biz Wed Feb 7 14:23:05 2007 From: lgs en sicem.biz (Lorenzo Gil Sanchez) Date: Wed, 07 Feb 2007 14:23:05 +0100 Subject: python y pygtk In-Reply-To: References: Message-ID: <1170854585.7788.6.camel@localhost.localdomain> Prueba a llamar a gtk.main() al final para que entre en el bucle de eventos. El mié, 07-02-2007 a las 13:03 +0000, Rafael Cantos escribió: > Hola a todos. Soy un nuevo usuario de esta lista, y también de python y > pygtk. A ver si podéis ayudarme con las siguientes dudas: > > 1. Si creo, una ventana y un botón así: > w=gtk.Window() > B=gtk.Button('Hola') > w.add(b) > > no me da ningun error, pero al ejecutarlo en el interprete así: > > w.show() > ó > w.show_all() > > El botón no aparece por ninguna parte. He probado en Ubuntu y en Windows, y > nada. ¿Qué está mal? Ya sé que no hay asociado ninguna acción al botón, pero > ahora mismo lo quue me interesa, es que salga el botón. > > 2. Si quiero que el programa, almacenado en un guión, se ejecute, ¿Dónde > tengo que guardar el guíón, tanto en Windows como en Ubuntu? > > Gracias a todos, y perdonar mi nobatez. > > _________________________________________________________________ > Acepta el reto MSN Premium: Correos más divertidos con fotos y textos > increíbles en MSN Premium. Descárgalo y pruébalo 2 meses gratis. > http://join.msn.com?XAPID=1697&DI=1055&HL=Footer_mailsenviados_correosmasdivertidos > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From cervera en ffn.ub.es Wed Feb 7 14:49:11 2007 From: cervera en ffn.ub.es (Pau Cervera Badia) Date: Wed, 07 Feb 2007 14:49:11 +0100 Subject: lista a tupla In-Reply-To: <2c9fb0dd0702070455s736cbda0kc3273b2c383eb8be@mail.gmail.com> References: <45C9BBF2.80700@ffn.ub.es><3aa468200702070415j7a24d83cp4b5ca5ba0 b24b36a@mail.gmail.com> <2c9fb0dd0702070455s736cbda0kc3273b2c383eb8be@mail.gmail.com> Message-ID: <45C9D8D7.5060708@ffn.ub.es> Grácias, tuple([x for y in lista for x in y]) me gusta! ;-) Chema Cortes wrote: > El 7/02/07, Josu Oyanguren escribió: >> import operator >> reduce(operator.add, lista) >> >> o en una sola línea >> >> reduce(lambda x, y: x+y, lista) > > ...o más "ad hoc", pensando en que el resultado será una tupla: > > reduce(tuple.__add__,lista) > > Pero, ya que se pregunta por un modo pythónico, creo que en este caso > sería éste: > > [x for y in lista for x in y] > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > > -- Pau Cervera i Badia (e-mail cervera en ffn.ub.es) { Departament de Física Fonamental Martí i Franqués, 1 Universitat de Barcelona Planta 3, despatx 346 bis 08028 Barcelona tel: +34 934 921 155 Spain "Simple things should be simple, complex things should be possible." -- Alan Kay return http://www.ffn.ub.es/%7Ecervera/ } From pych3m4 en gmail.com Wed Feb 7 14:51:14 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Wed, 7 Feb 2007 14:51:14 +0100 Subject: Convertir a ejecutable In-Reply-To: References: <2c9fb0dd0702070216j6bd80089tb2e91ddde2e838c1@mail.gmail.com> Message-ID: <2c9fb0dd0702070551oe465273n8158b36cbf361586@mail.gmail.com> El 7/02/07, Manuel Malo de Molina escribió: > Gracias por los consejos, la verdad es que el Inno Setup funciona de > maravilla, con ese ya no me tengo de preocupar de que sea dificil de > encontrar el ejecutable ni de problemas de espacio. Por cierto, la > opcion que mejor me venia era "bundle_files", que te comprime todas > las librerias, pero segun he leido en internet puede dar problemas con > ciertos modulos. Los ficheros .dll (.pyd) deberían ir siempre fuera. Haz que el instalador los coloque al lado del ejecutable o donde sepa encontrarlos. Con distutils puedes controlar prácticamente todo. Puede incluir código personalizado el fichero setup para que indique explícitamente qué ficheros van a ir en la distribución y de dónde se consiguen. Aunque no creo que necesites tanta complejidad, en los enlaces que te puse hay un setup para Tix, la versión alternativa, que puse ahí hace tiempo, donde se ve cómo hacer algo así. > Estaba 'trasteando' un poco con el y me surgio una duda, sabeis como > se puede hacer para que cree mas enlaces en el menu de Inicio? le he > puesto el de ejecutar el programa y desinstalar, pero me gustaria un > 3o que sea un acceso directo al directorio del programa, es posible? ¿Has probado con poner sólo la ruta al directorio? [Icons] Name: "{group}\Directorio Dist"; Filename: "{app}\" From pych3m4 en gmail.com Wed Feb 7 14:53:01 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Wed, 7 Feb 2007 14:53:01 +0100 Subject: lista a tupla In-Reply-To: <45C9D8D7.5060708@ffn.ub.es> References: <45C9BBF2.80700@ffn.ub.es> <2c9fb0dd0702070455s736cbda0kc3273b2c383eb8be@mail.gmail.com> <45C9D8D7.5060708@ffn.ub.es> Message-ID: <2c9fb0dd0702070553l77a32e40p456e92ef373e369c@mail.gmail.com> El 7/02/07, Pau Cervera Badia escribió: > tuple([x for y in lista for x in y]) > > me gusta! ;-) Aún podría ser mejor: tuple(x for y in lista for x in y) From kh_alatar en telefonica.net Wed Feb 7 15:18:04 2007 From: kh_alatar en telefonica.net (Alatar) Date: Wed, 07 Feb 2007 15:18:04 +0100 Subject: Utilidad de correo In-Reply-To: References: <45C20F1B.6070907@telefonica.net> Message-ID: <45C9DF9C.1050207@telefonica.net> Gracias David, voy a echarle un vistazo ;) Un saludo, Alatar David Asorey Álvarez escribió: >> [...] ¿podría desarrollar alguna utilidad mediante python que >> me permita tomar por ejemplo un archivo de texto con todas las >> direcciones electrónicas a las que debo enviar el mensaje y enviarles a >> cada una de ellas el mismo? (yo desde luego preferiría esta última >> opción). > > Yo optaría por hacerme un pequeño programa. Está la librería smtplib: > http://docs.python.org/lib/module-smtplib.html > Ejemplo: > http://www.python.org/doc/lib/SMTP-example.html > > El tema ya se ha comentado otras veces en la lista: > http://www.google.es/search?q=mandar+un+correo+site%3Ahttp%3A%2F%2Flistas.aditel.org%2Farchivos%2Fpython-es%2F > From arnau en ehas.org Wed Feb 7 15:43:55 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Wed, 07 Feb 2007 15:43:55 +0100 Subject: pygtk: Sobre los treeviews In-Reply-To: References: <3932.87.235.142.119.1170780180.squirrel@correo.ehas.org> <45C8B428.4040205@ehas.org> Message-ID: <45C9E5AB.1030607@ehas.org> Mario Jiménez Carrasco escribió: > OK, entiendo el procedimiento de Lorenzo lo que puedo ver en ello es que > cuando se crea cada funcion lo que hace es asignar el valor correspondiente > a cada celda dependiendo del registro que se seleccione o del que se > trate.... Que es justo lo que necesitas. Fíjate que no tienes más que cambiar el modelo activo (con un clear más los correspondientes append) y "mágicamente" el treeview quedará actualizado. From manuelmalo en gmail.com Wed Feb 7 16:17:47 2007 From: manuelmalo en gmail.com (Manuel Malo de Molina) Date: Wed, 7 Feb 2007 16:17:47 +0100 Subject: Convertir a ejecutable In-Reply-To: <2c9fb0dd0702070551oe465273n8158b36cbf361586@mail.gmail.com> References: <2c9fb0dd0702070216j6bd80089tb2e91ddde2e838c1@mail.gmail.com> <2c9fb0dd0702070551oe465273n8158b36cbf361586@mail.gmail.com> Message-ID: > Los ficheros .dll (.pyd) deberían ir siempre fuera. Haz que el > instalador los coloque al lado del ejecutable o donde sepa > encontrarlos. Ahora lo unico que estaba intentando ya es que los .pyd y el library.zip se guardaran en un subdirectorio, que molestan un poco ahi todos junto al ejecutable. Si pongo zipfile="Lib\library.zip", por ejemplo, me falla al ejecutar, diciendo que no encuentra zlib (ZipImportError: can't decompress data; zlib not available). Si no los comprimo me da un fallo de windows. Hay otra manera mejor de hacerlo? > > Estaba 'trasteando' un poco con el y me surgio una duda, sabeis como > > se puede hacer para que cree mas enlaces en el menu de Inicio? le he > > puesto el de ejecutar el programa y desinstalar, pero me gustaria un > > 3o que sea un acceso directo al directorio del programa, es posible? > > ¿Has probado con poner sólo la ruta al directorio? > > [Icons] > Name: "{group}\Directorio Dist"; Filename: "{app}\" Si, era eso, ni me habia parado a mirar el codigo del script, estaba probando con las opciones del wizard. From arnau en ehas.org Wed Feb 7 16:28:39 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Wed, 07 Feb 2007 16:28:39 +0100 Subject: Ayuda con barra de progreso en Python In-Reply-To: References: Message-ID: <45C9F027.9030901@ehas.org> Jacob Nuñez Garcia escribió: > lo del while(True): me parece que es lo mismo que while 1: ojala y me > pudieras hacer el programa a tu estilo y lo pones para aprender de ti. No, hombre, lo que te recomendaría es que estudiaras código de los que realmente saben. Sin ir más lejos, tienes a tu disposición la librería oficial de Python; no es tan importante ver qué, sino cómo lo hacen. No te resolverán ese problema en concreto, pero seguro que aprendes más. En cuanto a cuestiones de estilo, es de obligada lectura este documento de nuestro bienamado BDFL: http://www.python.org/dev/peps/pep-0008/ Que tampoco hay que tomarse como palabra sagrada, pero es una buena guía. En cuanto al while True, sí, es lo mismo que while 1 (ambas formas son correctas), pero es que en tu código tenías if (True) From py en ch3m4.org Wed Feb 7 19:58:34 2007 From: py en ch3m4.org (Chema Cortes) Date: Wed, 7 Feb 2007 19:58:34 +0100 Subject: Convertir a ejecutable In-Reply-To: References: <2c9fb0dd0702070551oe465273n8158b36cbf361586@mail.gmail.com> Message-ID: <200702071958.35749.py@ch3m4.org> El Miércoles, 7 de Febrero de 2007 16:17, Manuel Malo de Molina escribió: > Ahora lo unico que estaba intentando ya es que los .pyd y el > library.zip se guardaran en un subdirectorio, que molestan un poco ahi > todos junto al ejecutable. > > Si pongo zipfile="Lib\library.zip", por ejemplo, me falla al ejecutar, > diciendo que no encuentra zlib (ZipImportError: can't decompress data; > zlib not available). Si no los comprimo me da un fallo de windows. Hay > otra manera mejor de hacerlo? Yo ya me conformaría tal y como lo que tienes. El entorno de ejecución del ejecutable py2exe está bastante alterado con respecto a la ejecución normal desde el intérprete de python: En sys.path figura tan sólo una entrada al fichero compartido, en este caso el zipfile. No lo puedo mirar ahora, pero creo recordar que no funcionaba bien con rutas relativas. En cuanto a las dlls, se puede poner donde quieras en la ruta de búsqueda de dlls. Para ello, puede que tengas que alterar alguna variable del entorno de windows (os.environ). En fin, ¡mucha suerte! From oinos en web.de Wed Feb 7 21:17:13 2007 From: oinos en web.de (=?ISO-8859-1?Q?Pablo_Rodr=EDguez?=) Date: Wed, 07 Feb 2007 21:17:13 +0100 Subject: [primer mensaje] problema adaptando raccoonshow Message-ID: <45CA33C9.3020604@web.de> Hola a todos, éste es mi primer mensaje a la lista. Soy un novato auténtico en Python (y no sé programar) y he intentado adaptar raccoonshow para que genere presentaciones en Flash como las que hace Lawrence Lessig (en concreto quiero adaptar ésta: http://lessig.org/blog/archives/003696.shtml). Bien, el problema es que el código (que está debajo), me da cuando lo invoco "python mracconshow.py -p orphanworks-x -t linetime.txt -w orphan.mp3", el siguiente error: Traceback (most recent call last): File "mracconshow.py", line 203, in ? main(sys.argv[1:]) File "mracconshow.py", line 201, in main back.run() File "mracconshow.py", line 152, in run self.convertPdf(pdfcheck) NameError: global name 'pdfcheck' is not defined Sinceramente, no sé qué falla. Desde mi ignorancia absoluta creo que ése es el único fallo, fundamentalmente porque he ido cambiando teniendo al lado el raccoonshow original. Agradecería si alguien me pudiese decir dónde está el fallo y cuál sería el código parcheado. Muchas gracias y perdonad las molestias (me corre cierta prisa). Saludos, Pablo #!/usr/bin/env python # -*- coding: UTF8 -*- # # RaccoonShow # Written by Jono Bacon (jono en jonobacon.org) # # Licensed under the GNU Public License v2 # # This program is free software. See the included LICENSE file for details. VERSION = "0.7" import commands import glob import sys import getopt # deal with command line arguments # a few defaults for the moment class Backend: def __init__(self): self.wavfile = "" self.pdffile = "" self.timesfile = "" self.times = list() def setPdfFile(self, setting): self.pdffile = setting def setWavFile(self, setting): self.wavfile = setting def setTimesFile(self, setting): self.timesfile = setting def importTimesFile(self): print "\tReading in times.txt..." timesfile = open(self.timesfile,"r") self.times = filter(lambda x: len(x.strip()) > 0, list(x.rstrip("\n") for x in timesfile) ) def inputFileCheck(self): if self.pdffile == "": print "Error: You have not specified a PDF file - use the -p or --pdf-file options to do this" sys.exit(2) if self.wavfile == "": print "Error: You have not specified a WAV/MP3 file - use the -w or --wav-file options to do this" sys.exit(2) if self.timesfile == "": print "Error: You have not specified a Times file - use the -t or --times-file options to do this" sys.exit(2) def checkSWFExist(self): if glob.glob(self.pdffile + '.swf'): return True else: return False def convertPdf(self, pdfcheck): if pdfcheck == True: print "\tPDF already converted" else: print "\tConverting pdf to swf..." commands.getoutput("pdf2swf -z " + self.pdffile + " -o " + self.pdffile) # def checkAudioSwfExists(self): # try: # open("processed-audio.swf") # return True # except IOError: # return False # def convertWav(self, soundcheck): # if soundcheck == False: # print "Converting WAV to SWF..." # commands.getoutput("wav2swf -o processed-audio.swf -l 0 " + self.wavfile) # else: # print "\tSound file already converted" def createScript(self): print "\tBuilding presentation file..." filebuffer = ["# Presentation script, generated by RaccoonShow"] filebuffer.append(".flash filename=\"pr-" + self.pdffile + "\" version=6 fps=10") filebuffer.append(".flash filename=\"" + self.pdffile + ".swf\"") filebuffer.append(".put slides") filebuffer.append(".stop slides") filebuffer.append(".put slides") filebuffer.append(".sound audio \"" + self.wavfile + "\"") filebuffer.append(".play audio nomultiple") # append main images and times # imageslisting = commands.getoutput("ls *slide*") # images = imageslisting.split('\n') # num = 1 # for im in images: # filebuffer.append(".jpeg s" + str(num) + " \"" + im + "\" quality=100%") # num = num + 1 # add timings settings num = 1 lastsecs = 0; for t in self.times: secs = (float(t)) secint = secs - lastsecs lastsecs = secs filebuffer.append(".frame n+=" + str(int(secint * 10)) + " \# duration: " + str(float(secint)) + "time: " + str(float(t))) num = num + 1 filebuffer.append(".nextframe slides") filebuffer.append(".end"); file = open(self.pdffile + ".sc","w") file.write("\n".join(filebuffer)) file.close() def checkImagesSwfExists(self): try: open(self.pdffile + ".swf") return True except IOError: return False def processScript(self, imagesswfcheck): if imagesswfcheck == False: print "\tGenerating presentation to SWF..." commands.getoutput("swfc " + self.pdffile + ".sc") # def combineFiles(self): # print "\tCombining files..." # commands.getoutput("swfcombine -Tm processed-images.swf processed-audio.swf -o Presentation.swf") def clean(self): print "Cleaning the project..." commands.getoutput("rm " + self.pdffile + ".swf") commands.getoutput("rm " + self.pdffile + ".sc") def run(self): print "RaccoonShow-" + VERSION + "\n" self.inputFileCheck() imgchk = self.checkSWFExist() self.convertPdf(pdfcheck) self.importTimesFile() # wavchk = self.checkAudioSwfExists() # self.convertWav(wavchk) self.createScript() self.processScript() print "\nPresentation successfully created!" def usage(): print "RaccoonShow-" + VERSION print "Written by Jono Bacon raccoonshow AT jonobacon DOT org" print "\nUsage: raccoonshow [options]" print "\n-c, --clean\t\tRemove all generated files" print "-p, --pdf-file\t\tPDF file with the presentation slides" print "-t, --times-file\ta file containing a list of times" print "-w, --wav-file\t\tWAV/MP3 file with the recorded audio" print "-v, --version\t\tDisplay the RacconShow version number" def main(argv): back = Backend() try: opts, args = getopt.getopt(argv, "hcp:w:t:v", ["help", "debug", "pdf-file=", "wav-file=", "times-file="]) except getopt.GetoptError: usage() sys.exit(2) for opt, arg in opts: if opt in ("-h", "--help"): usage() sys.exit() if opt in ("-c", "--clean"): back.clean() sys.exit() elif opt in ("-p", "--pdf-file"): back.setPdfFile(arg) elif opt in ("-w", "--wav-file"): back.setWavFile(arg) if opt in ("-t", "--times-file"): back.setTimesFile(arg) if opt in ("-v", "--version"): print "RaccoonShow v" + VERSION sys.exit() back.run() if __name__ == "__main__": main(sys.argv[1:]) From mlacunza en gmail.com Wed Feb 7 21:29:14 2007 From: mlacunza en gmail.com (Mario Lacunza) Date: Wed, 07 Feb 2007 15:29:14 -0500 Subject: Convertir a ejecutable In-Reply-To: References: Message-ID: <1170880154.5443.19.camel@laptop> El mié, 07-02-2007 a las 10:07 +0100, Manuel Malo de Molina escribió: > Hola a todos, se que este es un tema a debate a menudo en las listas > de Python, pero que utilizais para convertir a .exe los programas de > Python? Una pregunta: por que quieres el EXE?? No es mas facil hacer un link al fichero .py de inicio de la App(o incluso al .pyw)?? O es q quieres distribuir a la usanza windows tu programa? Porque una de las cosas atractivas de Python es q no necesita de instaladores para tu programa sino solo un copy & paste Mi configuracion/My config: Ubuntu Edgy Eft 6.10 Linux Kernel 2.6.17-10-386 Gnome 2.16.1 Python 2.4.4c1 wxPython 2.8.1.1 Unicode Python IDE: Ulipad 3.6 -- Saludos / Best regards Mario Lacunza Vásquez Desarrollador de Software - Webmaster Linux Registered User #439179 Desarrollador 2 Estrellas VS2005 Website : http://mlacunzav[DOT]cogia[DOT]net Email : mlacunza[AT]gmail.com / mario_lacunza[AT]yahoo.es Blog : http://mlacunza.blogspot.com Lima - Peru ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From manuelmalo en gmail.com Thu Feb 8 08:27:29 2007 From: manuelmalo en gmail.com (Manuel Malo de Molina) Date: Thu, 8 Feb 2007 08:27:29 +0100 Subject: Convertir a ejecutable In-Reply-To: <1170880154.5443.19.camel@laptop> References: <1170880154.5443.19.camel@laptop> Message-ID: Hola, Tengo que convertirlo a ejecutable para distribuirlo a gente que no tiene Python, y en cuyos ordenadores no se puede instalar (cuentas de usuario en el trabajo). Ademas es mucho mas facil enviar un zip con varios archivos que decirles "os teneis que bajar tal libreria, tal modulo... y luego lo podeis ejecutar". Manuel From manuelmalo en gmail.com Thu Feb 8 12:30:41 2007 From: manuelmalo en gmail.com (Manuel Malo de Molina) Date: Thu, 8 Feb 2007 12:30:41 +0100 Subject: Convertir a ejecutable In-Reply-To: <200702071958.35749.py@ch3m4.org> References: <2c9fb0dd0702070551oe465273n8158b36cbf361586@mail.gmail.com> <200702071958.35749.py@ch3m4.org> Message-ID: Otra pregunta sobre el Inno Setup, es posible crear un archivo de instalacion que no necesite permisos de administrador para ejecutarse? Es que en el ordenador del trabajo no me deja instalar el programa creado con el, cuando en realidad lo unico que tiene que hacer es copiar unos archivos, no es como si tuviera que tocar nada en Windows. Me resulta extranho porque otros programas si me deja instalarlos, por ejemplo el WinRAR que meti hace un par de dias, y cuando ejecuto cualquiera hecho con el Inno Setup me dice que solo un administrador puede instalar ese programa Saludos, Manuel From pych3m4 en gmail.com Thu Feb 8 13:16:01 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Thu, 8 Feb 2007 13:16:01 +0100 Subject: [anuncio] Mono 1.2.3 incorpora IronPython Message-ID: <2c9fb0dd0702080416u6ecd1397k4dd64471b5cfcfe2@mail.gmail.com> Con la salida de la última versión de mono 1.2.3 se ha incorporado el intérprete de ironpython junto con el boo que ya existía. Parece que los desarrolladores de mono responden así a la ayuda que ha significado ironpython para depurar y mejorar el mono. Noticia de la publicación del mono 1.2.3: Comentario de Miguel de Icaza sobre Ironpython: "Pretty much every new release of IronPython has exposed limitations in our runtime, our class libraries or our compilers. IronPython has really helped Mono become a better runtime." From gabri.losada en gmail.com Thu Feb 8 13:42:54 2007 From: gabri.losada en gmail.com (Gabri) Date: Thu, 8 Feb 2007 13:42:54 +0100 Subject: Leer PDFs Message-ID: <61290ece0702080442n10476499wb7f926fc6560a1cb@mail.gmail.com> Buenas a tod en s. Sabeis si desde Python puedo acceder a leer un archivo PDF y poder obtener de él datos para luego crear una base de datos?. Os pongo un ejemplo. Supongamos que tengo una factura en formato PDF y quiero obtener el importe de la factura y la la fecha de esta. El objetivo es poder hacer una base de datos y posteriormente poder hacer consultas para acceder a visualizar estos PDFs. He estado echando un vistazo por reportlab, pero no sé si puede hacer eso. Un saludo, y muchas gracias. From alejandro.novo en gmail.com Thu Feb 8 14:31:06 2007 From: alejandro.novo en gmail.com (Alejandro Novo) Date: Thu, 8 Feb 2007 14:31:06 +0100 Subject: Importar constantes segun condicion Message-ID: <2bd0a6950702080531l3e70c70atb69c142eaa76f0d@mail.gmail.com> Hola a todos, Tengo un problemilla, os cuento. Dispongo de 2 ficheros con constantes definidas, los nombres de las constantes son los mismos pero los valores difieren, por ejemplo: ImportLocal.py ------------------------------- DIR = '/usr/home' ImportRemote.py ---------------------------- DIR = 'usr/bin/etc' A su vez tengo un fichero que me dice cual de los dos ficheros donde estan definidas las constantes tengo que coger, por ejemplo: Host.py ---------------- GUEST = 'Local' Por último tengo otro fichero que dependiendo del valor que tenga la constante GUEST de Host.py, importara la constantes DIR de un u otro fichero. La manera "guarra" que he usado ha sido ... http://pastebin.com/878200 (aquí se ve más claro) try: > if GUEST == 'Local': > import ImportLocal > pattern = re.compile('\A__*') > l = dir(ImportLocal) > for elem in l: > if not pattern.search(elem): > print 'Voy a importar ... ', elem > s = 'from ImportLocal import %s' % elem > exec s > else: > import ImportRemote > pattern = re.compile('\A__*') > l = dir(ImportRemote) > for elem in l: > if not pattern.search(elem): > print 'Voy a importar ... ', elem > s = 'from ImportRemote import %s' % elem > exec s > except: > 'No existe! > ¿se os ocurre otra manera mas elegante de hacerlo? necesito que se pueda hacer tanto "Import xxx" como "from xxx import y". Muchas gracias! From manel en nosotrosmismos.org Thu Feb 8 16:06:57 2007 From: manel en nosotrosmismos.org (Manel Cebolla) Date: Thu, 08 Feb 2007 16:06:57 +0100 Subject: [anuncio] Mono 1.2.3 incorpora IronPython In-Reply-To: <2c9fb0dd0702080416u6ecd1397k4dd64471b5cfcfe2@mail.gmail.com> References: <2c9fb0dd0702080416u6ecd1397k4dd64471b5cfcfe2@mail.gmail.com> Message-ID: <20070208160657.4mjran6uw86os0ok@webmail.nosotrosmismos.org> Pues no se la gracia que le hará a los de Redmon, si no recuerdo mal eran ellos los que "compraron" IronPython y contrataron al desarrollador principal del proyecto. Y ahora resulta que pagando ellos se beneficia Mono, jeje... De todos modos me recuerda que hace ya meses los de Hasefroch también dijeron que los de IronPython les habían ayudado mucho a depurar su compilador de .NET, desde luego los de IronPython deben ser unos auténticos cracks!!. -- Saludos / Regards. Manel. GNU/Linux User #391733 (http://counter.li.org/) Projects Page: http://www.manelelena.com Libre Software: http://www.libresoftware.com Quoting Chema Cortes : > Con la salida de la última versión de mono 1.2.3 se ha incorporado el > intérprete de ironpython junto con el boo que ya existía. Parece que > los desarrolladores de mono responden así a la ayuda que ha > significado ironpython para depurar y mejorar el mono. > > Noticia de la publicación del mono 1.2.3: > > > Comentario de Miguel de Icaza sobre Ironpython: > > > "Pretty much every new release of IronPython has exposed limitations in our > runtime, our class libraries or our compilers. IronPython has > really helped Mono > become a better runtime." > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From rbaquerizo en ehas.org Thu Feb 8 16:18:14 2007 From: rbaquerizo en ehas.org (Reynaldo Baquerizo) Date: Thu, 08 Feb 2007 10:18:14 -0500 Subject: [primer mensaje] problema adaptando raccoonshow In-Reply-To: <45CA33C9.3020604@web.de> References: <45CA33C9.3020604@web.de> Message-ID: <45CB3F36.7080808@ehas.org> > def run(self): > print "RaccoonShow-" + VERSION + "\n" > self.inputFileCheck() > imgchk = self.checkSWFExist() > self.convertPdf(pdfcheck) > > self.importTimesFile() > > # wavchk = self.checkAudioSwfExists() > # self.convertWav(wavchk) > self.createScript() > > self.processScript() > > print "\nPresentation successfully created! A menos que utilizes 'pdfcheck' como variable global deberías pasarle a 'run' pdfcheck def run(self, pdfcheck) o podrías definir pdfcheck de manera global def run(self): global pdfcheck ... From rapto en arrakis.es Thu Feb 8 16:23:03 2007 From: rapto en arrakis.es (Marcos =?ISO-8859-1?Q?S=E1nchez?= Provencio) Date: Thu, 08 Feb 2007 16:23:03 +0100 Subject: Importar constantes segun condicion In-Reply-To: <2bd0a6950702080531l3e70c70atb69c142eaa76f0d@mail.gmail.com> References: <2bd0a6950702080531l3e70c70atb69c142eaa76f0d@mail.gmail.com> Message-ID: <1170948183.16758.3.camel@localhost.localdomain> A ver esto: http://pyspanishdoc.sourceforge.net/lib/built-in-funcs.html Mira __import__ El jue, 08-02-2007 a las 14:31 +0100, Alejandro Novo escribió: > Hola a todos, > > Tengo un problemilla, os cuento. Dispongo de 2 ficheros con constantes > definidas, los nombres de las constantes son los mismos pero los valores > difieren, por ejemplo: > > ImportLocal.py > ------------------------------- > DIR = '/usr/home' > > ImportRemote.py > ---------------------------- > DIR = 'usr/bin/etc' > > A su vez tengo un fichero que me dice cual de los dos ficheros donde estan > definidas las constantes tengo que coger, por ejemplo: > > Host.py > ---------------- > GUEST = 'Local' > > Por último tengo otro fichero que dependiendo del valor que tenga la > constante GUEST de Host.py, importara la constantes DIR de un u otro > fichero. > > La manera "guarra" que he usado ha sido ... http://pastebin.com/878200 (aquí > se ve más claro) > > try: > > if GUEST == 'Local': > > import ImportLocal > > pattern = re.compile('\A__*') > > l = dir(ImportLocal) > > for elem in l: > > if not pattern.search(elem): > > print 'Voy a importar ... ', elem > > s = 'from ImportLocal import %s' % elem > > exec s > > else: > > import ImportRemote > > pattern = re.compile('\A__*') > > l = dir(ImportRemote) > > for elem in l: > > if not pattern.search(elem): > > print 'Voy a importar ... ', elem > > s = 'from ImportRemote import %s' % elem > > exec s > > except: > > 'No existe! > > > ¿se os ocurre otra manera mas elegante de hacerlo? necesito que se pueda > hacer tanto "Import xxx" como "from xxx import y". > > Muchas gracias! > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From sertzen en gmail.com Thu Feb 8 16:23:26 2007 From: sertzen en gmail.com (Nestor Sertzen) Date: Thu, 8 Feb 2007 10:23:26 -0500 Subject: [OT] Se busca maestro en python en Lima Message-ID: Hola a todos, Estoy buscando una persona con conocimientos avanzados en Python que viva en Lima-Perú para capacitar a un pequeño grupo de programadores de VB. Por favor, los que estén interesados, comunicarse conmigo a este correo directamente y no a la lista. Gracias Nestor Sertzen From billguedes.python en terra.com.br Thu Feb 8 17:17:01 2007 From: billguedes.python en terra.com.br (Guedes) Date: Thu, 08 Feb 2007 14:17:01 -0200 Subject: Ayuda con barra de progreso en Python In-Reply-To: <20070207101800.E0E0817D4CC3@devnull.aditel.org> References: <20070207101800.E0E0817D4CC3@devnull.aditel.org> Message-ID: <1170951421.5530.8.camel@localhost.localdomain> Em Tue, 06 Feb 2007 14:32:16 -0600, Jacob Nuñez Garcia escreveu: Segue abaixo um exemplo de barra de progresso: http://www.pythonbrasil.com.br/moin.cgi/BarraProgresso Abracos, Guedes. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From billguedes.python en terra.com.br Thu Feb 8 17:23:05 2007 From: billguedes.python en terra.com.br (Guedes) Date: Thu, 08 Feb 2007 14:23:05 -0200 Subject: python y pygtk In-Reply-To: <20070207134816.AFC2C14854D8@devnull.aditel.org> References: <20070207134816.AFC2C14854D8@devnull.aditel.org> Message-ID: <1170951785.5530.11.camel@localhost.localdomain> Em Wed, 07 Feb 2007 13:03:48 +0000, Rafael Cantos escreveu: janela= gtk.Window() botao= gtk.Button('Ola') janela.add(botao) janela.show_all() gtk.main() Abraco, Guedes. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From pych3m4 en gmail.com Thu Feb 8 18:56:51 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Thu, 8 Feb 2007 18:56:51 +0100 Subject: Importar constantes segun condicion In-Reply-To: <2bd0a6950702080531l3e70c70atb69c142eaa76f0d@mail.gmail.com> References: <2bd0a6950702080531l3e70c70atb69c142eaa76f0d@mail.gmail.com> Message-ID: <2c9fb0dd0702080956i596918b0t9395b8a5e0f6d1ae@mail.gmail.com> El 8/02/07, Alejandro Novo escribió: > La manera "guarra" que he usado ha sido ... http://pastebin.com/878200 (aquí > se ve más claro) > > try: > > if GUEST == 'Local': > > import ImportLocal > > pattern = re.compile('\A__*') > > l = dir(ImportLocal) > > for elem in l: > > if not pattern.search(elem): > > print 'Voy a importar ... ', elem > > s = 'from ImportLocal import %s' % elem > > exec s > > else: > > import ImportRemote > > pattern = re.compile('\A__*') > > l = dir(ImportRemote) > > for elem in l: > > if not pattern.search(elem): > > print 'Voy a importar ... ', elem > > s = 'from ImportRemote import %s' % elem > > exec s > > except: > > 'No existe! > > > ¿se os ocurre otra manera mas elegante de hacerlo? necesito que se pueda > hacer tanto "Import xxx" como "from xxx import y". No sé lo que pretendes hacer, pero, sea lo que sea, lo estás complicando bastante. Lo primero: no necesitas expresiones regulares para chequear el inicio de una cadena de texto. Mejor emplea .startswith(). Luego, lo de "from...import..." : parece que lo que pretendes es copiar el espacio de nombres de un módulo en éste. Creo que podrías evitarlo si sigues las instrucciones de creación de paquetes. Por ejemplo, " from...import * " haría lo mismo que pretendes hacer ya que no importa aquellos objetos que empiecen por subrayado. Aún así, te pongo una alternativa siguiendo el mismo método que hacía tu código: if GUEST == 'Local': import ImportLocal as mimodulo else: import ImportRemote as mimodulo it_importado=vars(mimodulo).iteritems() elementos=((k,v) for (k,v) in it_importado if not k.startswith("__")) globals().update( dict(elementos) ) From pych3m4 en gmail.com Thu Feb 8 19:44:14 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Thu, 8 Feb 2007 19:44:14 +0100 Subject: [anuncio] Mono 1.2.3 incorpora IronPython In-Reply-To: <20070208160657.4mjran6uw86os0ok@webmail.nosotrosmismos.org> References: <2c9fb0dd0702080416u6ecd1397k4dd64471b5cfcfe2@mail.gmail.com> <20070208160657.4mjran6uw86os0ok@webmail.nosotrosmismos.org> Message-ID: <2c9fb0dd0702081044v1fdde2e6r68c35d835940e3ca@mail.gmail.com> El 8/02/07, Manel Cebolla escribió: > > Pues no se la gracia que le hará a los de Redmon, si no recuerdo mal > eran ellos > los que "compraron" IronPython y contrataron al desarrollador principal del > proyecto. Y ahora resulta que pagando ellos se beneficia Mono, jeje... > > De todos modos me recuerda que hace ya meses los de Hasefroch también dijeron > que los de IronPython les habían ayudado mucho a depurar su compilador de > .NET, desde luego los de IronPython deben ser unos auténticos cracks!!. Hay que agradecérselo a Jim Hugunin, ese programador "principal" que dices. No sólo ha programado ironpython, sino que ya antes había programado jython para java. Inició el desarrollo de ironpython para "demostrarse" --¡menuda ironía!-- que no era posible realizar lenguajes dinámicos en .Net. Con el tiempo, no sólo ha demostrado que era posible, sino que ha conseguido que se adapte mejor el CLR para ejecutar mejor lenguajes dinámicos. Hasta el extremo es esta optimización que, según se dice, empieza a ser posible soñar con que, algún día, un lenguaje dinámico como ironpython corra más rápido que el propio C# en el que está programado (Aquí habría que hablar del PyPy, pero mejor lo dejo para que investigue quien esté interesado). En cuanto a lo de que "Microsoft ha comprado IronPython", no es cierto. Todo el desarrollo de ironpython se licencia bajo una licencia "Shared Source" de Microsoft que, podría decirse, está calcada de las licencias BSD o mozilla. El dinero que microsoft ha invertido tiene que ver con su prometida interoperabilidad entre lenguajes del CLR, una maniobra estratégica para hacer ver las bondades de esta plataforma frente a la omnipresencia del java. Ahora que el JVM de java es GPL, no es del todo descabellado pensar que se estreche aún más la colaboración .Net y mono (pe: Microsoft-Novell). From faltet en carabos.com Thu Feb 8 20:20:01 2007 From: faltet en carabos.com (Francesc Altet) Date: Thu, 08 Feb 2007 20:20:01 +0100 Subject: [anuncio] Mono 1.2.3 incorpora IronPython In-Reply-To: <2c9fb0dd0702081044v1fdde2e6r68c35d835940e3ca@mail.gmail.com> References: <2c9fb0dd0702080416u6ecd1397k4dd64471b5cfcfe2@mail.gmail.com> <20070208160657.4mjran6uw86os0ok@webmail.nosotrosmismos.org> <2c9fb0dd0702081044v1fdde2e6r68c35d835940e3ca@mail.gmail.com> Message-ID: <1170962401.2608.33.camel@localhost.localdomain> El dj 08 de 02 del 2007 a les 19:44 +0100, en/na Chema Cortes va escriure: > El 8/02/07, Manel Cebolla escribió: > > > > Pues no se la gracia que le hará a los de Redmon, si no recuerdo mal > > eran ellos > > los que "compraron" IronPython y contrataron al desarrollador principal del > > proyecto. Y ahora resulta que pagando ellos se beneficia Mono, jeje... > > > > De todos modos me recuerda que hace ya meses los de Hasefroch también dijeron > > que los de IronPython les habían ayudado mucho a depurar su compilador de > > .NET, desde luego los de IronPython deben ser unos auténticos cracks!!. > > Hay que agradecérselo a Jim Hugunin, ese programador "principal" que > dices. No sólo ha programado ironpython, sino que ya antes había > programado jython para java. Com pequeño addendum a las siempre bien informadas palabras de Chema, hay que decir que Jim Hugunin fué también el autor original del paquete de manipulación de arrays numéricos Numeric (el mismo que después dió origen al numarray y ahora al NumPy). Lo empezó en 1995, cuando era estudiante en el MIT, y aunque después recibió ayuda de otra gente, se puede decir que él fue el 'alma mater' del asunto. Saludos, -- Francesc Altet | Be careful about using the following code -- Carabos Coop. V. | I've only proven that it works, www.carabos.com | I haven't tested it. -- Donald Knuth ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From visionario en gmail.com Thu Feb 8 23:35:22 2007 From: visionario en gmail.com (Asdrubal Velasquez (RadioMan)) Date: Thu, 8 Feb 2007 18:35:22 -0400 Subject: =?iso-8859-1?q?Re=3A_Optimizar_repeticiones_de_l=EDn?= =?iso-8859-1?q?eas=3F?= In-Reply-To: <28d5b4300702040807q12d03fb1t90a925f0216e6b15@mail.gmail.com> References: <28d5b4300702040807q12d03fb1t90a925f0216e6b15@mail.gmail.com> Message-ID: <28d5b4300702081435y32cb04f1ub3922c9374f39e33@mail.gmail.com> Estimados amigos Chema Cortes y Alexis Roda, Ante todo disculpas por la tardanza de mi respuesta, debo decir que me tarde algo de tiempo digiriendo las mismas (por facil que parezcan) ;-) Muchas gracias por sus intervenciones, realmente para mi que soy nuevo con Python me ha servidor de mucho, realmente pregunte una tontería, ahora lo veo, pero cada vez mas me doy cuenta de que todavia me falta comprender un poco de la filosofía tan "fácil" de lo que es programar con ésta herramienta. He sido programador de "otras cosas" como VB, Foxpro entre otros que definitivamente es una filosofía muy distinta, aqui las cosas se hacen tan fáciles como se piensen!!!, es decir pensar en lo simple (como debe ser) y resulta que python lo hace simple. Muy interesante sus intervenciones!! eran lógicas!!! jajaaj Alexis, esa solución es increíblemente simple y lógica (siempre que se piense en python), muy buena, gracias. Chema, agradezco que te hayas extendido en tus comentarios, ya que los mismo apmpliaron mas mi entender con python (siendo nuevo con el), solo debo decir que en el ejemplo: Cito: "... X-"+str(dato)+"-YY" cambiarlo por: "XX-%d-YY" % dato ..." Lo comprendo muy claramente, sin embargo, no he podido localizar la documentación de ésta peculiar implementación del código. ¿Donde está en el manual? Muchas gracias. -- '//RadioMan - YV6ESD +58-(416)-586.4906 Asdrubal R. Velasquez Lagrave RadioMan ARROBA cantv.net Visionario ARROBA Gmail.com Puerto Ordaz - Venezuela http://alpha.astroempires.com/?ref=A.2709 From oinos en web.de Thu Feb 8 23:52:52 2007 From: oinos en web.de (=?ISO-8859-1?Q?Pablo_Rodr=EDguez?=) Date: Thu, 08 Feb 2007 23:52:52 +0100 Subject: [primer mensaje] problema adaptando raccoonshow In-Reply-To: <45CB3F36.7080808@ehas.org> References: <45CA33C9.3020604@web.de> <45CB3F36.7080808@ehas.org> Message-ID: <45CBA9C4.7040201@web.de> Reynaldo Baquerizo wrote: > > A menos que utilizes 'pdfcheck' como variable global deberías pasarle a > 'run' pdfcheck > > def run(self, pdfcheck) > > o podrías definir pdfcheck de manera global > > def run(self): > global pdfcheck > ... Gracias, Reynaldo. Al final viendo la estructura del programa original me di cuenta de cómo se podía reusar. Saludos, Pablo From arnau en ehas.org Fri Feb 9 00:31:07 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Fri, 09 Feb 2007 00:31:07 +0100 Subject: =?ISO-8859-1?Q?Re=3A_=5BPython-es=5D_Re=3A_Optimizar_rep?= =?ISO-8859-1?Q?eticiones_de_l=EDneas=3F?= In-Reply-To: <28d5b4300702081435y32cb04f1ub3922c9374f39e33@mail.gmail.com> References: <28d5b4300702040807q12d03fb1t90a925f0216e6b15@mail.gmail.com> <28d5b4300702081435y32cb04f1ub3922c9374f39e33@mail.gmail.com> Message-ID: <45CBB2BB.3060407@ehas.org> Asdrubal Velasquez (RadioMan) escribió: > Cito: > "... > X-"+str(dato)+"-YY" > > cambiarlo por: > > "XX-%d-YY" % dato > ..." > > Lo comprendo muy claramente, sin embargo, no he podido localizar la > documentación de ésta peculiar implementación del código. ¿Donde está > en el manual? ¿Te refieres al formateo de cadenas? si es eso, lo tienes en la documentación de la librería de Python: http://docs.python.org/lib/lib.html Concretamente, aquí: http://docs.python.org/lib/typesseq-strings.html Básicamente, es el mismo formato que usa el archiconocido printf de C que tantos lenguajes -con buen criterio- han copiado. arnau From py en ch3m4.org Fri Feb 9 00:36:50 2007 From: py en ch3m4.org (Chema Cortes) Date: Fri, 9 Feb 2007 00:36:50 +0100 Subject: Optimizar repeticiones de =?iso-8859-1?q?l=EDneas=3F?= In-Reply-To: <28d5b4300702081435y32cb04f1ub3922c9374f39e33@mail.gmail.com> References: <28d5b4300702040807q12d03fb1t90a925f0216e6b15@mail.gmail.com> <28d5b4300702081435y32cb04f1ub3922c9374f39e33@mail.gmail.com> Message-ID: <200702090036.51746.py@ch3m4.org> El Jueves, 8 de Febrero de 2007 23:35, Asdrubal Velasquez (RadioMan) escribió: > Chema, agradezco que te hayas extendido en tus comentarios, ya que los > mismo apmpliaron mas mi entender con python (siendo nuevo con el), > solo debo decir que en el ejemplo: > > Cito: > "... > X-"+str(dato)+"-YY" > > cambiarlo por: > > "XX-%d-YY" % dato > ..." > > Lo comprendo muy claramente, sin embargo, no he podido localizar la > documentación de ésta peculiar implementación del código. ¿Donde está > en el manual? Se llama operador de formateo o de interpolación, y tienes la documentación formal aquí: http://docs.python.org/lib/typesseq-strings.html También tienes algo explicado en el tutorial (y supongo que en más sitios): From py en ch3m4.org Fri Feb 9 01:27:37 2007 From: py en ch3m4.org (Chema Cortes) Date: Fri, 9 Feb 2007 01:27:37 +0100 Subject: Convertir a ejecutable In-Reply-To: References: <200702071958.35749.py@ch3m4.org> Message-ID: <200702090127.38449.py@ch3m4.org> El Jueves, 8 de Febrero de 2007 12:30, Manuel Malo de Molina escribió: > Otra pregunta sobre el Inno Setup, es posible crear un archivo de > instalacion que no necesite permisos de administrador para ejecutarse? > > Es que en el ordenador del trabajo no me deja instalar el programa > creado con el, cuando en realidad lo unico que tiene que hacer es > copiar unos archivos, no es como si tuviera que tocar nada en Windows. > > Me resulta extranho porque otros programas si me deja instalarlos, por > ejemplo el WinRAR que meti hace un par de dias, y cuando ejecuto > cualquiera hecho con el Inno Setup me dice que solo un administrador > puede instalar ese programa > En la documentación de InnoSetup te expone los casos que pueden darse para necesitar una instalación con privilegios de administrador: http://www.jrsoftware.org/isfaq.php#ntsecur Sin embargo, en la notas de la última versión (1.5.9) dice que ahora la directiva "PrivilegesRequired" vale "admin" para forzar la "escalada de privilegios" en un Windows Vista. De momento, te bastará con añadir ésto a tu fichero de configuración: PrivilegesRequired=none From alejandro.novo en gmail.com Fri Feb 9 09:09:48 2007 From: alejandro.novo en gmail.com (Alejandro Novo) Date: Fri, 9 Feb 2007 09:09:48 +0100 Subject: =?iso-8859-1?q?Re=3A_Resumen_de_Python-es=2C_Vol_298?= =?iso-8859-1?q?=2C_Env=EDo_14?= In-Reply-To: <20070208233136.4AA7C14854E0@devnull.aditel.org> References: <20070208233136.4AA7C14854E0@devnull.aditel.org> Message-ID: <2bd0a6950702090009w4cad0a82le0339f196ed7421b@mail.gmail.com> > > No sé lo que pretendes hacer, pero, sea lo que sea, lo estás > complicando bastante. > > Lo primero: no necesitas expresiones regulares para chequear el inicio > de una cadena de texto. Mejor emplea .startswith(). > > Luego, lo de "from...import..." : parece que lo que pretendes es > copiar el espacio de nombres de un módulo en éste. Creo que podrías > evitarlo si sigues las instrucciones de creación de paquetes. Por > ejemplo, " from...import * " haría lo mismo que pretendes hacer ya > que no importa aquellos objetos que empiecen por subrayado. > > Aún así, te pongo una alternativa siguiendo el mismo método que hacía tu > código: > > if GUEST == 'Local': > import ImportLocal as mimodulo > else: > import ImportRemote as mimodulo > > it_importado=vars(mimodulo).iteritems() > elementos=((k,v) for (k,v) in it_importado if not k.startswith("__")) > globals().update( dict(elementos) ) Muchas gracias Chema, era justo lo que necesitaba hacer. Ya me imaginaba yo que se podría hacer de forma mucho más elegante :) Un saludo. From pepe en diselpro.com Fri Feb 9 10:46:12 2007 From: pepe en diselpro.com (Pepe Aracil) Date: Fri, 09 Feb 2007 10:46:12 +0100 Subject: lista a tupla In-Reply-To: <2c9fb0dd0702070553l77a32e40p456e92ef373e369c@mail.gmail.com> References: <45C9BBF2.80700@ffn.ub.es> <2c9fb0dd0702070455s736cbda0kc3273b2c383eb8be@mail.gmail.com> <45C9D8D7.5060708@ffn.ub.es> <2c9fb0dd0702070553l77a32e40p456e92ef373e369c@mail.gmail.com> Message-ID: <45CC42E4.30608@diselpro.com> Ondia!! No sabia que se podían construir generadores sin usar el yield, es decir con la sintaxis de las listas comprensivas. Ala!! a cambiar mogollón de código que solo itera sobre el resultado de listas comprensivas. Porque este método seguro que ahorra memoria por un tubo al no tener que crear lista en memoria y consume cpu solo cuando le pido la siguiente iteración. Este python no deja de sorprenderme ¡como mola! ;-) Salud. Chema Cortes escribió: > El 7/02/07, Pau Cervera Badia escribió: > >> tuple([x for y in lista for x in y]) >> >> me gusta! ;-) > > Aún podría ser mejor: > > tuple(x for y in lista for x in y) > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es From posy0001 en gmail.com Fri Feb 9 11:12:22 2007 From: posy0001 en gmail.com (Posy Posy001) Date: Fri, 9 Feb 2007 11:12:22 +0100 Subject: Ayda on la libreria record.py Message-ID: <832900970702090212t21ff4234ue5515cc3dc1b1084@mail.gmail.com> Lo he estado mirando en vuestro foro y parece que habeis encontrado los fallos que plantea, si alguien sabe como arreglarlo o lo tiene arreglado me haria una gran favor ya que he escrito un programilla de control de la lista mia de dvd que tengo en mi casa y a quien se los presto con este programa. Bueno la solucion que me planteo si esto no va es poner SQL y usar SQL pero seria transportar la base de datos + un programa en python que la gestione. Por cierto una pregunta python es capaz de controlar SQL????? ATT:posy From andresignacio.martinez en alumail.uji.es Fri Feb 9 11:35:58 2007 From: andresignacio.martinez en alumail.uji.es (=?ISO-8859-1?Q?Andr=E9s_Ignacio_Mart=EDnez_Soto?=) Date: Fri, 09 Feb 2007 11:35:58 +0100 Subject: Ayda on la libreria record.py In-Reply-To: <832900970702090212t21ff4234ue5515cc3dc1b1084@mail.gmail.com> References: <832900970702090212t21ff4234ue5515cc3dc1b1084@mail.gmail.com> Message-ID: <45CC4E8E.7050304@alumail.uji.es> Utiliza mejor clases, el 'record.py' solo sirve para 'simular' structs de C. Las clases son más flexibles, y elegantes. Saludos En/na Posy Posy001 ha escrit: > Lo he estado mirando en vuestro foro y parece que habeis encontrado los > fallos que plantea, si alguien sabe como arreglarlo o lo tiene > arreglado me > haria una gran favor ya que he escrito un programilla de control de la > lista > mia de dvd que tengo en mi casa y a quien se los presto con este > programa. > > Bueno la solucion que me planteo si esto no va es poner SQL y usar SQL > pero > seria transportar la base de datos + un programa en python que la > gestione. > Por cierto una pregunta python es capaz de controlar SQL????? > > ATT:posy > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es From forodejazz en gmail.com Fri Feb 9 12:42:15 2007 From: forodejazz en gmail.com (=?ISO-8859-1?Q?David_Asorey_=C1lvarez?=) Date: Fri, 9 Feb 2007 12:42:15 +0100 Subject: Leer PDFs In-Reply-To: <61290ece0702080442n10476499wb7f926fc6560a1cb@mail.gmail.com> References: <61290ece0702080442n10476499wb7f926fc6560a1cb@mail.gmail.com> Message-ID: > Os pongo un ejemplo. Supongamos que tengo una factura en formato PDF y > quiero obtener el importe de la factura y la la fecha de esta. El objetivo > es poder hacer una base de datos y posteriormente poder hacer consultas para > acceder a visualizar estos PDFs. Como la factura esté escaneada lo llevas claro ... ;-) En serio, si el pdf está generado a partir de una imagen me temo que será imposible leer ningún dato textual. En ese caso creo que deberías intentar atacar el problema con alguna herramienta o librería de OCR (Optical Character Recognizing). Si el contenido del PDF es texto (en un visor de PDFs puedes seleccionarlo) entonces puede ayudar alguna conversión previa a texto plano. Alguna herramienta del tipo pdf2txt. Suerte. -- David Asorey Álvarez forodejazz en gmail.com From pachi en rvburke.com Fri Feb 9 12:46:02 2007 From: pachi en rvburke.com (Rafael Villar Burke) Date: Fri, 09 Feb 2007 12:46:02 +0100 Subject: Convertir a ejecutable In-Reply-To: <2c9fb0dd0702070216j6bd80089tb2e91ddde2e838c1@mail.gmail.com> References: <2c9fb0dd0702070216j6bd80089tb2e91ddde2e838c1@mail.gmail.com> Message-ID: <45CC5EFA.5050506@rvburke.com> Chema Cortes wrote: > El 7/02/07, Manuel Malo de Molina escribió: >> Hola a todos, se que este es un tema a debate a menudo en las listas >> de Python, pero que utilizais para convertir a .exe los programas de >> Python? Últimamente ha salido una nueva versión de una aplicación que intenta presentar una interfaz gráfica y simplificar la creación de ejecutables con py2exe. Se llama Pybuilder y da la sensación de estar todavía en pañales, pero ¡promete!. http://pybuilder.sourceforge.net/ Saludos, Rafael Villar Burke www.rvburke.com From gabri.losada en gmail.com Fri Feb 9 12:51:18 2007 From: gabri.losada en gmail.com (Gabri) Date: Fri, 9 Feb 2007 12:51:18 +0100 Subject: Leer PDFs In-Reply-To: References: <61290ece0702080442n10476499wb7f926fc6560a1cb@mail.gmail.com> Message-ID: <61290ece0702090351m13620789l20dd8d96a1cfc642@mail.gmail.com> Me han comentado algo sobre pyPDF. Sabeis algo de esta librería?. El día 9/02/07, David Asorey Álvarez escribió: > > > Os pongo un ejemplo. Supongamos que tengo una factura en formato PDF y > > quiero obtener el importe de la factura y la la fecha de esta. El > objetivo > > es poder hacer una base de datos y posteriormente poder hacer consultas > para > > acceder a visualizar estos PDFs. > > Como la factura esté escaneada lo llevas claro ... ;-) > En serio, si el pdf está generado a partir de una imagen me temo que > será imposible leer ningún dato textual. > En ese caso creo que deberías intentar atacar el problema con alguna > herramienta o librería de OCR (Optical Character Recognizing). > > Si el contenido del PDF es texto (en un visor de PDFs puedes > seleccionarlo) entonces puede ayudar alguna conversión previa a texto > plano. Alguna herramienta del tipo pdf2txt. > > Suerte. > > -- > David Asorey Álvarez > forodejazz en gmail.com > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From carlosfvo en gmail.com Fri Feb 9 15:57:48 2007 From: carlosfvo en gmail.com (carlos villa) Date: Fri, 9 Feb 2007 09:57:48 -0500 Subject: Fwd: ayuda con .. focus_out_event y grab_focus In-Reply-To: <629497540609040824p55806279k40b4fb27d4eda6ae@mail.gmail.com> References: <629497540609040824p55806279k40b4fb27d4eda6ae@mail.gmail.com> Message-ID: <629497540702090657q6615876em702e838611ab7550@mail.gmail.com> ya soucione el problemita despues de unos 6 meses 2 dias 18 horas 24 mintos y 30,31,31 segundosssssss jaja. no en serio aqui esta. alguna duda me escriben. la solucion era limpiar la caja de texto antes de llamar al grab_focus aqui esta.. def on_txte_cntrprtida_axi_focus_out_event (self, txte_cntrprtida_axi, data=None): self.Texto = txte_cntrprtida_axi.get_text() T = self.Texto.isdigit() if T == False: dialogo_error(self.wndow_puc, 'Debe Ingresar Solo Numeros') txte_cntrprtida_axi_set_text('') txte_cntrprtida_axi.grab_focus() ---------- Forwarded message ---------- From: carlos villa Date: 04-sep-2006 10:24 Subject: ayuda con .. focus_out_event y grab_focus To: La lista de python en castellano ---------- Forwarded message ---------- From: carlos villa Date: 27-ago-2006 16:29 Subject: problemas con .. focus_out_event y grab_focus To: La lista de python en castellano Buenas tardes tengo un problemita es el siguiente: estoy validando la salida mediante la señal focus_out_event de un textentry el cual me lanza una ventana de aviso de error e inmediatamente lanzo un grab_focus() para que valide y no me permita entrar un caracter en este caso; el problema esque lanza la ventana en 2 veces a raiz de utilizar el grab_focus....si alguien me puede ayudar a solucionar se los agradeceria. aqui esta mi codigo... def on_txte_cntrprtida_axi_focus_out_event (self, txte_cntrprtida_axi, data=None): self.Texto = txte_cntrprtida_axi.get_text() T = self.Texto.isdigit() if T == False: dialogo_error(self.wndow_puc, 'Debe Ingresar Solo Numeros') txte_cntrprtida_axi.grab_focus() def dialogo_error (ventana_padre, mensaje): dialogo = gtk.MessageDialog(ventana_padre, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_ERROR, gtk.BUTTONS_OK, mensaje) dialogo.set_title ('Error!') dialogo.set_default_response(gtk.BUTTONS_OK) dialogo.connect('response', lambda dialogo, response:dialogo.destroy()) dialogo.show() From rafaelcantos en hotmail.com Fri Feb 9 16:28:54 2007 From: rafaelcantos en hotmail.com (Rafael Cantos) Date: Fri, 09 Feb 2007 15:28:54 +0000 Subject: python y pygtk Message-ID: Hola a todos. Mi mensaje decía lo siguiente: Hola a todos. Soy un nuevo usuario de esta lista, y también de python y pygtk. A ver si podéis ayudarme con las siguientes dudas: 1. Si creo, una ventana y un botón así: w=gtk.Window() B=gtk.Button('Hola') w.add(b) no me da ningun error, pero al ejecutarlo en el interprete así: w.show() ó w.show_all() El botón no aparece por ninguna parte. He probado en Ubuntu y en Windows, y nada. ¿Qué está mal? Ya sé que no hay asociado ninguna acción al botón, pero ahora mismo lo quue me interesa, es que salga el botón. 2. Si quiero que el programa, almacenado en un guión, se ejecute, ¿Dónde tengo que guardar el guíón, tanto en Windows como en Ubuntu? Gracias a todos, y perdonar mi nobatez. Gracias lorenzo, faltaba el gtk.main() después de mostrar la ventana. Jordi, lo de la B era un error al ponerlo en la lista, no hice un copy paste..... gracias por lo del path en linux. Espero que esta respuesta se coloque donde debe, no estoy muy seguro de ello... Saludos Rafa _________________________________________________________________ Un amor, una aventura, compañía para un viaje. Regístrate gratis en MSN Amor & Amistad. http://match.msn.es/match/mt.cfm?pg=channel&tcid=162349 From cescd en yahoo.com.mx Fri Feb 9 16:50:26 2007 From: cescd en yahoo.com.mx (Cesar Cardenas Desales) Date: Fri, 9 Feb 2007 07:50:26 -0800 (PST) Subject: Ayda on la libreria record.py Message-ID: <439747.64707.qm@web50401.mail.yahoo.com> >Bueno la solucion que me planteo si esto no va es poner SQL y usar SQL pero >seria transportar la base de datos + un programa en python que la gestione. >Por cierto una pregunta python es capaz de controlar SQL????? Si, es muy sencillo. Si tienes instalada la version 2.5 puedes utilizar pysqlite que ya viene incluido: http://www.initd.org/tracker/pysqlite http://pythonmexico.org/index_html/doc/mvc1/mvc.html Tambien puedes instalar un modulo para manejar el gestor de bases de datos de tu preferencia. ___________________________________________________________ Do You Yahoo!? La mejor conexión a Internet y 2GB extra a tu correo por $100 al mes. http://net.yahoo.com.mx From posy0001 en gmail.com Fri Feb 9 17:09:49 2007 From: posy0001 en gmail.com (Posy Posy001) Date: Fri, 9 Feb 2007 17:09:49 +0100 Subject: =?iso-8859-1?q?Re=3A_Resumen_de_Python-es=2C_Vol_298?= =?iso-8859-1?q?=2C_Env=EDo_15?= In-Reply-To: <20070209115149.0C4C114854F1@devnull.aditel.org> References: <20070209115149.0C4C114854F1@devnull.aditel.org> Message-ID: <832900970702090809g670dcdf5w2033d8515d1dd639@mail.gmail.com> > > Message: 6 > Date: Fri, 09 Feb 2007 11:35:58 +0100 > From: Andrés Ignacio Martínez Soto > > Subject: Re: [Python-es] Ayda on la libreria record.py > To: La lista de python en castellano > Message-ID: <45CC4E8E.7050304 en alumail.uji.es> > Content-Type: text/plain; charset=ISO-8859-1 > > Utiliza mejor clases, el 'record.py' solo sirve para 'simular' structs de > C. > Las clases son más flexibles, y elegantes. > > Saludos > > En/na Posy Posy001 ha escrit: > > Lo he estado mirando en vuestro foro y parece que habeis encontrado los > > fallos que plantea, si alguien sabe como arreglarlo o lo tiene > > arreglado me > > haria una gran favor ya que he escrito un programilla de control de la > > lista > > mia de dvd que tengo en mi casa y a quien se los presto con este > > programa. > > > > Bueno la solucion que me planteo si esto no va es poner SQL y usar SQL > > pero > > seria transportar la base de datos + un programa en python que la > > gestione. > > Por cierto una pregunta python es capaz de controlar SQL????? > > > > ATT:posy > > _______________________________________________ > > Python-es mailing list > > Python-es en aditel.org > > http://listas.aditel.org/listinfo/python-es > > Ok muchas gracias lo estudiare este fin de semana, hasta el lunes y me encanta este foro , jejeje. Un nuevo aprendiz de python From kernel.no.found en gmail.com Fri Feb 9 18:04:29 2007 From: kernel.no.found en gmail.com (=?ISO-8859-1?Q?Juan_Jos=E9_Alonso.?=) Date: Fri, 9 Feb 2007 18:04:29 +0100 Subject: Compartir variable entre distintos modulos Message-ID: <117d6e170702090904x1d2f2761t7a09328c824c7145@mail.gmail.com> Hola Gurus Les comento, tengo un modulo (libreria) que contiene variables de configuracion como es el caso DEBUG_CONSOLE alli se inicia con un valor True, luego en la aplicacion que use esta libreria quiero que pueda acceder al modulo donde se encuentra la variable y cambiar su estado, Ejemplo: milibreria.config.DEBUG_CONSOLE = False Y asi cuando en OTRO modulo de la libreria que corre dentro de un bucle detecte un evento, un logger funcione asi: if milibreria.config.DEBUG_CONSOLE: print "DEBUGGING..: bla bla " El tema es que no se si el fallo esta en otro lado, o si cada import de cada modulo es una instancia diferente. Gracias de antemano. -- Juan José Alonso. KarlsBerg. eMail: kernel.no.found en gmail.com MSN: kernel.no.found en gmail.com From dpfrias en yahoo.es Sat Feb 10 01:01:35 2007 From: dpfrias en yahoo.es (Dr.Dairon Perez Frias) Date: Sat, 10 Feb 2007 00:01:35 +0000 (GMT) Subject: =?iso-8859-1?q?Re=3A_Resumen_de_Python-es=2C_Vol_298?= =?iso-8859-1?q?=2C_Env=EDo_15?= Message-ID: <20070210000135.71182.qmail@web27312.mail.ukl.yahoo.com> hola, comunidad, tengo un problema, pues necesito implementar un hypergrafo, pero no he encontrado la forma de hacerlo adecuadamente, por lo que necesito si alguien tiene en su poder esta implementacion o documentos sobre ello, ayudadme que lo necesito,... he buscado en internet bibliografia, pero todas cuestan... Saludos D.Frias "En la vida nada es imposible, lo que sucede es que no tenemos el nivel necesario de conocimiento para logarlo... D.Frias" ______________________________________________ LLama Gratis a cualquier PC del Mundo. Llamadas a fijos y móviles desde 1 céntimo por minuto. http://es.voice.yahoo.com From gagsl-py en yahoo.com.ar Sat Feb 10 01:17:21 2007 From: gagsl-py en yahoo.com.ar (Gabriel Genellina) Date: Fri, 09 Feb 2007 21:17:21 -0300 Subject: Compartir variable entre distintos modulos References: <117d6e170702090904x1d2f2761t7a09328c824c7145@mail.gmail.com> Message-ID: En Fri, 09 Feb 2007 14:04:29 -0300, Juan José Alonso. escribió: > Les comento, tengo un modulo (libreria) que contiene variables de > configuracion como es el caso DEBUG_CONSOLE alli se inicia con un valor > True, luego en la aplicacion que use esta libreria quiero que pueda > acceder > al modulo donde se encuentra la variable y cambiar su estado, Ejemplo: > milibreria.config.DEBUG_CONSOLE = False > > Y asi cuando en OTRO modulo de la libreria que corre dentro de un bucle > detecte un evento, un logger funcione asi: > > if milibreria.config.DEBUG_CONSOLE: print "DEBUGGING..: bla bla " > > El tema es que no se si el fallo esta en otro lado, o si cada import de > cada > modulo es una instancia diferente. Cual fallo? Bueno, adivinemos un poco... Supongo que, a pesar de que en la aplicacion se cambia el valor de DEBUG_CONSOLE, cuando lo vas a consultar dentro del modulo, sigue teniendo el valor anterior. Como dijiste, una vez importado un modulo, las referencias siguientes devuelven el mismo objeto (hay excepciones). Pero ojo, esto se aplica al *modulo*, no a las variables definidas en el. Si uno pone: from milibreria.config import DEBUG_CONSOLE, o tambien: from config import DEBUG_CONSOLE, aca estas extrayendo solo el valor actual de esa variable; no se va a ver afectada por cambios posteriores en config.DEBUG_CONSOLE. Para ver los cambios, siempre hay que acceder a la variable a traves del modulo; o sea, habria que usar config.DEBUG_CONSOLE en todas partes. No es nada especial de los modulos, cualquier objeto mutable se comporta igual: py> a = ["Hola",123] py> b = a py> v = a[0] py> v 'Hola' py> a[0] = "Chau" py> b ['Chau', 123] py> v 'Hola' py> v = "dibidi dabada chum" py> a[0] 'Chau' (a y b serian dos referencias a un mismo modulo, v seria una variable declarada en ese modulo) -- Gabriel Genellina ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From gagsl-py en yahoo.com.ar Sat Feb 10 01:43:04 2007 From: gagsl-py en yahoo.com.ar (Gabriel Genellina) Date: Fri, 09 Feb 2007 21:43:04 -0300 Subject: =?iso-8859-15?q?Resumen_de_Python-es=2C_Vol_298=2C_Env=EDo_15?= References: <20070210000135.71182.qmail@web27312.mail.ukl.yahoo.com> Message-ID: En Fri, 09 Feb 2007 21:01:35 -0300, Dr.Dairon Perez Frias escribió: > hola, comunidad, > tengo un problema, pues necesito implementar un hypergrafo, pero no he > encontrado la forma de hacerlo adecuadamente, por lo que necesito si > alguien tiene en su poder esta implementacion o documentos sobre ello, > ayudadme que lo necesito,... Fijate en http://wiki.python.org/moin/PythonGraphApi y en particular http://www-users.cs.york.ac.uk/~jc/teaching/agm/index.html (gPy y la practica nro 2) Como dice la nota final en el wiki, un hipergrafo siempre se puede representar como un grafo normal bipartido (donde por una parte estan los nodos "reales", y por la otra los lados asociados [no son lados del grafo]). Asi que en principio cualquier libreria de manejo de grafos te deberia servir, pero dependiendo de la aplicacion que quieras darle, puede ser mas o menos eficiente. -- Gabriel Genellina ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From alxgnar en gmail.com Sun Feb 11 00:06:29 2007 From: alxgnar en gmail.com (=?ISO-8859-1?Q?alex_ordo=F1ez?=) Date: Sat, 10 Feb 2007 18:06:29 -0500 Subject: leer un *.txt en la red Message-ID: <26a762360702101506s369c1b37n4637df108ed3bf17@mail.gmail.com> hola a todos, nesecito que me guien como hacer para leer un archivo de texto que se encuentra en una carpeta compartida en mi red local, trabajo con ip fija, donde encuentro informacion al respecto. gracias. att. alexander. From claudio.anion en gmail.com Sun Feb 11 00:46:04 2007 From: claudio.anion en gmail.com (claudio.anion) Date: Sat, 10 Feb 2007 20:46:04 -0300 Subject: leer un *.txt en la red In-Reply-To: <26a762360702101506s369c1b37n4637df108ed3bf17@mail.gmail.com> References: <26a762360702101506s369c1b37n4637df108ed3bf17@mail.gmail.com> Message-ID: <45CE593C.2090107@gmail.com> alex ordoñez escribió: > hola a todos, nesecito que me guien como hacer para leer un archivo de > texto > que se encuentra en una carpeta compartida en mi red local, trabajo > con ip > fija, donde encuentro informacion al respecto. > gracias. > > att. alexander. > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > busca sobre el manejo de sockets. From rolandojtorres en gmail.com Sun Feb 11 03:52:53 2007 From: rolandojtorres en gmail.com (=?UTF-8?Q?Rolando_Jos=C3=A9_Torres_S=C3=A1nchez?=) Date: Sat, 10 Feb 2007 21:52:53 -0500 Subject: leer un *.txt en la red In-Reply-To: <45CE593C.2090107@gmail.com> References: <26a762360702101506s369c1b37n4637df108ed3bf17@mail.gmail.com> <45CE593C.2090107@gmail.com> Message-ID: <6a39a1d0702101852t49c6fa0ak206452af1362ce3a@mail.gmail.com> Como compartes el archivo que quieres leer?? Si lo haces con un servicio Netbios, (Archivos e impresoras compartidas) te tocara accesar a traves del sistema de archivos de Windows con os.path. Si lo haces desde WIndows tendras que conectar la carpeta donde se encuentra el archivo como una unidad de red, con winreg o modificando el registro de windows. Si lo haces desde Linux con samba tendrás que montar la carpeta compartida en algun punto del path. Si lo haces con un servicio TCP/IP como HTTP, FTP, tendras que montar el Servicio en el otro PC, y accesarlo desde el python usando sockets. El 10/02/07, claudio.anion escribió: > alex ordoñez escribió: > > hola a todos, nesecito que me guien como hacer para leer un archivo de > > texto > > que se encuentra en una carpeta compartida en mi red local, trabajo > > con ip > > fija, donde encuentro informacion al respecto. > > gracias. > > > > att. alexander. > > _______________________________________________ > > Python-es mailing list > > Python-es en aditel.org > > http://listas.aditel.org/listinfo/python-es > > > busca sobre el manejo de sockets. > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > -- Rolando José Torres Sánchez TCL/TK inside Python MSN:rolandojtorres en hotmail.com ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From foxandxss en gmail.com Sun Feb 11 16:40:06 2007 From: foxandxss en gmail.com (Jesus Rodriguez) Date: Sun, 11 Feb 2007 16:40:06 +0100 Subject: =?iso-8859-1?q?Peque=F1a_duda_con_gtk=2Emain=28=29_e?= =?iso-8859-1?q?n_un_programa_con_pygtk?= Message-ID: <2a1edb210702110740r566a5680w130dc7b6227741d6@mail.gmail.com> Buenas, he hecho ya bastantes programas usando pygtk, pero la parte: if __name__=="__main__": instancia = clase() gtk.main() Donde clase es la clase que contiene por ejemplo el XML de glade y los eventos y tal. se que se hace asi, todos los ejemplos lo hacen asi, instancias tu clase y llamas a gtk.main(). Pero no entiendo, que o para que sirve exactamente "gtk.main()"? es quizá para inicializar gtk? De ser así, para que sirve instanciar una clase que ni siquiera sirve como parametro a gtk.main(). Vamos, imagino que gtk.maininicializa GTK y ya se encarga de mostrar todo, pero como sabe el metodo main de gtk que tiene que inicializar la clase correcta y tal.... Por otro lado he visto codigo de gente que no asigna a ninguna variable la instancia, asi: clase() gtk.main() Si, creo que toda mi duda es esa, no saber como gtk.main() sabe que "clase" es la que lleva el gtk de mi aplicacion :P Alguien sabe como funciona ? Gracias! :) From elfuturista en gmail.com Sun Feb 11 17:02:21 2007 From: elfuturista en gmail.com (=?ISO-8859-1?Q?Jeremies_P=E9rez_Morata?=) Date: Sun, 11 Feb 2007 17:02:21 +0100 Subject: =?ISO-8859-1?Q?Re:__Peque=F1a_duda_con_g?= =?ISO-8859-1?Q?tk.main()_en_un_programa_con_pygtk?= In-Reply-To: <2a1edb210702110740r566a5680w130dc7b6227741d6@mail.gmail.com> References: <2a1edb210702110740r566a5680w130dc7b6227741d6@mail.gmail.com> Message-ID: <8ab7dda30702110802h79271812o80d01007aebcf94d@mail.gmail.com> Buenas, yo no he programado mucho en pygtk, pero creo que el gtk.main() no sabe que "classe" es la de la aplicacion. Simplemente el va haciendo iteraciones i capturando eventos, etc. Y supongo que quando conectas las señales, es quando "conectas" los eventos a tu "classe". Respecto a lo assignar variable a la classe o no, eso supongo que como es una classe que solo la vas a instanciar una vez, pues lo haces de forma estatica. 2007/2/11, Jesus Rodriguez : > > Buenas, he hecho ya bastantes programas usando pygtk, pero la parte: > > if __name__=="__main__": > instancia = clase() > gtk.main() > > Donde clase es la clase que contiene por ejemplo el XML de glade y los > eventos y tal. > > se que se hace asi, todos los ejemplos lo hacen asi, instancias tu clase y > llamas a gtk.main(). > > Pero no entiendo, que o para que sirve exactamente "gtk.main()"? es quizá > para inicializar gtk? De ser así, para que sirve instanciar una clase que > ni > siquiera sirve como parametro a gtk.main(). Vamos, imagino que > gtk.maininicializa GTK y ya se encarga de mostrar todo, pero como sabe > el metodo > main de gtk que tiene que inicializar la clase correcta y tal.... > Por otro lado he visto codigo de gente que no asigna a ninguna variable la > instancia, asi: > > clase() > gtk.main() > > Si, creo que toda mi duda es esa, no saber como gtk.main() sabe que > "clase" > es la que lleva el gtk de mi aplicacion :P > > Alguien sabe como funciona ? > > Gracias! :) > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From jespinog en gmail.com Sun Feb 11 17:11:13 2007 From: jespinog en gmail.com (=?ISO-8859-1?Q?Jes=FAs_Espino?=) Date: Sun, 11 Feb 2007 17:11:13 +0100 Subject: =?ISO-8859-1?Q?Re:__Peque=F1a_duda_con_g?= =?ISO-8859-1?Q?tk.main()_en_un_programa_con_pygtk?= In-Reply-To: <2a1edb210702110740r566a5680w130dc7b6227741d6@mail.gmail.com> References: <2a1edb210702110740r566a5680w130dc7b6227741d6@mail.gmail.com> Message-ID: Hola: La idea del gtk.main() es iniciar el bucle de eventos. En tu codigo, cuando creas el objeto "instancia" se ejecutan ciertas acciones (en el __init__) y esas acciones lo que normalmente hacen es crear la estructura de widgets e inizializar todo lo que sea necesario inicializar. Cuando todo esta inicializado entonces arrancas el bucle de eventos con gtk.main() y es cuando se muestra todo. Por ejemplo: window = gtk.Window() button = gtk.Button() window.add(button) window.show_all() gtk.main() Antes del gtk.main() ya existe la ventana y el boton y se le ha declarado que deben mostrarse, pero hasta que no ejecutas gtk.main() no se muestra ya que no esta corriendo el bucle de eventos. Una vez ejecutado gtk.main() el flujo del programa es a traves de las señales y los manejadores. Espero haberme explicado... Un saludo. El 11/02/07, Jesus Rodriguez escribió: > Buenas, he hecho ya bastantes programas usando pygtk, pero la parte: > > if __name__=="__main__": > instancia = clase() > gtk.main() > > Donde clase es la clase que contiene por ejemplo el XML de glade y los > eventos y tal. > > se que se hace asi, todos los ejemplos lo hacen asi, instancias tu clase y > llamas a gtk.main(). > > Pero no entiendo, que o para que sirve exactamente "gtk.main()"? es quizá > para inicializar gtk? De ser así, para que sirve instanciar una clase que ni > siquiera sirve como parametro a gtk.main(). Vamos, imagino que > gtk.maininicializa GTK y ya se encarga de mostrar todo, pero como sabe > el metodo > main de gtk que tiene que inicializar la clase correcta y tal.... > Por otro lado he visto codigo de gente que no asigna a ninguna variable la > instancia, asi: > > clase() > gtk.main() > > Si, creo que toda mi duda es esa, no saber como gtk.main() sabe que "clase" > es la que lleva el gtk de mi aplicacion :P > > Alguien sabe como funciona ? > > Gracias! :) > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From pachi en rvburke.com Sun Feb 11 17:44:34 2007 From: pachi en rvburke.com (Rafael Villar Burke) Date: Sun, 11 Feb 2007 17:44:34 +0100 Subject: =?ISO-8859-1?Q?Peque=F1a_duda_con_gtk=2Ema?= =?ISO-8859-1?Q?in=28=29_en_un_programa_con_pygtk?= In-Reply-To: <2a1edb210702110740r566a5680w130dc7b6227741d6@mail.gmail.com> References: <2a1edb210702110740r566a5680w130dc7b6227741d6@mail.gmail.com> Message-ID: <45CF47F2.1000801@rvburke.com> Jesus Rodriguez wrote: > Buenas, he hecho ya bastantes programas usando pygtk, pero la parte: > > if __name__=="__main__": > instancia = clase() > gtk.main() > > Donde clase es la clase que contiene por ejemplo el XML de glade y los > eventos y tal. > > se que se hace asi, todos los ejemplos lo hacen asi, instancias tu > clase y > llamas a gtk.main(). > > Pero no entiendo, que o para que sirve exactamente "gtk.main()"? es quizá > para inicializar gtk? gtk.main() lo que hace es ejecutar el bucle de eventos hasta que se llame a gtk.main_quit(). Este bucle se encarga de gestionar los eventos que se producen en las aplicaciones o el sistema, creando una cola de tareas que se han de procesar, realizándolas en orden, y avisando a los objetos que se hayan conectado a una señal determinada para que actúen en consecuencia (llama a la retrollamada y le proporciona los parámetros adecuados). Es algo parecido al mecanismo que se usa en un juego de estrategia por turnos. Una vez que se coloca el tablero y las fichas sobre él (se inicializa el sistema), y se inicia el juego (se llama a gtk.main()), entonces cada jugador actúa por turno. Las acciones de cada jugador (el sistema o el usuario de la aplicación) pueden generar acontecimientos (señales), que, a su vez, hacen que otros participantes (controles, sistema) deban responder a ellos. Lo que ocurre en cada uno de esos acontecimientos depende de las reglas del juego y del caso concreto, y en una aplicación gráfica puede ser la presentación en pantalla de un control o la respuesta a un click sobre él. GTK+ usa las retrollamadas para indicar qué ha sucedido y qué información es relevante para que un componente de la aplicación pueda actuar en consecuencia. > De ser así, para que sirve instanciar una clase que ni > siquiera sirve como parametro a gtk.main(). Vamos, imagino que > gtk.maininicializa GTK y ya se encarga de mostrar todo, pero como sabe > el metodo > main de gtk que tiene que inicializar la clase correcta y tal.... No lo sabe. Tú inicializas la clase al instanciarla. > Por otro lado he visto codigo de gente que no asigna a ninguna > variable la > instancia, asi: > > clase() > gtk.main() Antes de llamar a gtk.main() ya estás generando tareas/eventos , por ejemplo, indicando que algunos controles deben mostrarse, pero, como no se ha iniciado el bucle de eventos, estos no se procesan todavía. Siguiendo con la analogía del juego, es como si colocas las piezas en el tablero y está claro que, tal como están colocadas, una ficha va a 'comerse' a otra. Hasta que no empieza el juego no pasa nada, simplemente puede ocurrir eso potencialmente. Usar una clase es una forma conveniente de 'encapsular' toda la información relacionada con la aplicación, pero se pueden programar aplicaciones gráficas sin recurrir a las clases. El hecho es que, en cierta manera, parece que la clase es la aplicación y que los métodos son los comportamientos de la aplicación, pero eso no es más que una abstracción útil. Por otra parte, al instanciar la clase haces que el código se interprete y se definan los métodos que serán llamados por el bucle de eventos cuando se produzca una señal y se haya registrado uno de esos métodos como retrollamada. Si no necesitas manejar la instancia (usando un nombre), ¿para qué asignarle uno?. El efecto es el mismo, simplente que no puedes referirte a ella. Como un objeto no se destruye hasta que todos aquellos otros elementos que guarden referencias a él no las hayan eliminado, entonces la instancia (que se ha registrado con gtk+), perdura mientras el sistema la necesite. > Si, creo que toda mi duda es esa, no saber como gtk.main() sabe que > "clase" > es la que lleva el gtk de mi aplicacion :P No lo sabe, pero en la clase has registrado algunos de sus métodos como manejadores de señales de gtk+, y éste sabe que debe dirigirse a ellas cuando se produzca la señal correspondiente. Con la clase indicas qué elementos deseas (que pueden estar definidos o no en gtk+), y cómo quieres que se relacionen los elementos con gtk+. Recuerda que en python todo el código se interpreta... así que una definición de una clase es algo más una simple definición, es código interpretado. > Alguien sabe como funciona ? ¿Queda algo más claro? Saludos, Rafael Villar Burke From sergi_75 en yahoo.es Sun Feb 11 22:39:21 2007 From: sergi_75 en yahoo.es (Sergi Rosello) Date: Sun, 11 Feb 2007 22:39:21 +0100 (CET) Subject: obtener por consola la salida de un comando del sistema operativo Message-ID: <524690.2671.qm@web26004.mail.ukl.yahoo.com> Un saludo Estoy tratando de obtener por consola la salida de un comando del sistema operativo, concretamente nslookup. Aunque quizá no importe, comentar que estoy trabajando en Windows. He intentado esto res = os.system ('nslookup google.es') print res Creo recordar que en Perl esto funcionaría (que no quiere decir que fuera la mejor manera de hacerlo ...) Gracias ------------------------------------------------------------------------------------------------------------------------------------ Nota Legal: Este correo electrónico puede contener información estrictamente confidencial y es de uso exclusivo del destinatario, quedando prohibida a cualquier otra persona su revelación, copia, distribución, o el ejercicio de cualquier acción relativa a su contenido. Si ha recibido este correo electrónico por error, por favor, conteste al remitente, y posteriormente proceda a borrarlo de su sistema. Gracias por su colaboración. ------------------------------------------------------------------------------------------------------------------------------------ ______________________________________________ LLama Gratis a cualquier PC del Mundo. Llamadas a fijos y móviles desde 1 céntimo por minuto. http://es.voice.yahoo.com From jespinog en gmail.com Sun Feb 11 22:57:54 2007 From: jespinog en gmail.com (=?ISO-8859-1?Q?Jes=FAs_Espino?=) Date: Sun, 11 Feb 2007 22:57:54 +0100 Subject: obtener por consola la salida de un comando del sistema operativo In-Reply-To: <524690.2671.qm@web26004.mail.ukl.yahoo.com> References: <524690.2671.qm@web26004.mail.ukl.yahoo.com> Message-ID: En python con os.system la salida va a la salida estandar y el valor de retorno es el valor de salida del comando ejecutado. Para obtener la salida que de el comando tendrias que usar tuberias, por ejemplo: tuberia = os.popen("nslookup google.es") tuberia.read() La variable "tuberia" es un descriptor de fichero, y para hacer cosas con el lo puedes usar como tal. Un saludo. El 11/02/07, Sergi Rosello escribió: > Un saludo > > Estoy tratando de obtener por consola la salida de un > comando del sistema operativo, concretamente nslookup. > Aunque quizá no importe, comentar que estoy trabajando > en Windows. > > He intentado esto > > res = os.system ('nslookup google.es') > print res > > Creo recordar que en Perl esto funcionaría (que no > quiere decir que fuera la mejor manera de hacerlo ...) > > Gracias > > > ------------------------------------------------------------------------------------------------------------------------------------ > Nota Legal: Este correo electrónico puede contener información estrictamente confidencial y es de uso exclusivo del destinatario, quedando prohibida a cualquier otra persona su revelación, copia, distribución, o el ejercicio de cualquier acción relativa a su contenido. Si ha recibido este correo electrónico por error, por favor, conteste al remitente, y posteriormente proceda a borrarlo de su sistema. Gracias por su colaboración. ------------------------------------------------------------------------------------------------------------------------------------ > > > > ______________________________________________ > LLama Gratis a cualquier PC del Mundo. > Llamadas a fijos y móviles desde 1 céntimo por minuto. > http://es.voice.yahoo.com > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From arnau en ehas.org Sun Feb 11 23:17:57 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Sun, 11 Feb 2007 23:17:57 +0100 Subject: obtener por consola la salida de un comando del sistema operativo In-Reply-To: References: <524690.2671.qm@web26004.mail.ukl.yahoo.com> Message-ID: <45CF9615.2090606@ehas.org> Jesús Espino escribió: > En python con os.system la salida va a la salida estandar y el valor > de retorno es el valor de salida del comando ejecutado. Para obtener > la salida que de el comando tendrias que usar tuberias, por ejemplo: > > tuberia = os.popen("nslookup google.es") > tuberia.read() > > La variable "tuberia" es un descriptor de fichero, y para hacer cosas > con el lo puedes usar como tal. Desde Python 2.4 se recomienda usar el módulo subprocess: http://docs.python.org/lib/module-subprocess.html Con él se trata de unificar las (excesivas) formas que hay de ejecutar comandos externos (os.system, os.spawn, os.popen, popen2, coommands). De la documentación puedes sacar ideas para lo que quieres hacer. Por ejemplo: import subprocess output = subprocess.Popen(["nslookup", "google.es"], stdout=subprocess.PIPE).communicate()[0] si quisieras obtener también el código de retorno podrías hacer: p = subprocess.Popen(["nslookup", "google.es"], stdout=subprocess.PIPE) output, retval = p.communicate()[0], p.returncode From jespinog en gmail.com Sun Feb 11 23:26:55 2007 From: jespinog en gmail.com (=?ISO-8859-1?Q?Jes=FAs_Espino?=) Date: Sun, 11 Feb 2007 23:26:55 +0100 Subject: obtener por consola la salida de un comando del sistema operativo In-Reply-To: <45CF9615.2090606@ehas.org> References: <524690.2671.qm@web26004.mail.ukl.yahoo.com> <45CF9615.2090606@ehas.org> Message-ID: Muy interesante, no lo sabia :) El 11/02/07, Arnau Sanchez escribió: > Jesús Espino escribió: > > > En python con os.system la salida va a la salida estandar y el valor > > de retorno es el valor de salida del comando ejecutado. Para obtener > > la salida que de el comando tendrias que usar tuberias, por ejemplo: > > > > tuberia = os.popen("nslookup google.es") > > tuberia.read() > > > > La variable "tuberia" es un descriptor de fichero, y para hacer cosas > > con el lo puedes usar como tal. > > Desde Python 2.4 se recomienda usar el módulo subprocess: > > http://docs.python.org/lib/module-subprocess.html > > Con él se trata de unificar las (excesivas) formas que hay de ejecutar comandos > externos (os.system, os.spawn, os.popen, popen2, coommands). De la > documentación puedes sacar ideas para lo que quieres hacer. Por ejemplo: > > import subprocess > output = subprocess.Popen(["nslookup", "google.es"], > stdout=subprocess.PIPE).communicate()[0] > > si quisieras obtener también el código de retorno podrías hacer: > > p = subprocess.Popen(["nslookup", "google.es"], stdout=subprocess.PIPE) > output, retval = p.communicate()[0], p.returncode > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From foxandxss en gmail.com Mon Feb 12 00:13:04 2007 From: foxandxss en gmail.com (Jesus Rodriguez) Date: Mon, 12 Feb 2007 00:13:04 +0100 Subject: =?ISO-8859-1?Q?Re:__Peque=F1a_duda_con_g?= =?ISO-8859-1?Q?tk.main()_en_un_programa_con_pygtk?= In-Reply-To: <45CF47F2.1000801@rvburke.com> References: <2a1edb210702110740r566a5680w130dc7b6227741d6@mail.gmail.com> <45CF47F2.1000801@rvburke.com> Message-ID: <2a1edb210702111513m20565b96m96e0309e54102e83@mail.gmail.com> Muchas gracias a los 3, me lo habeis aclarado perfectamente. Sinceramente, no tengo nada más que añadir, lo habeis dicho todo a la perfección :) Gracias de nuevo. From mario.carrasco en gmail.com Mon Feb 12 06:41:09 2007 From: mario.carrasco en gmail.com (=?ISO-8859-1?Q?Mario_Jim=E9nez_Carrasco?=) Date: Sun, 11 Feb 2007 23:41:09 -0600 Subject: pygtk: Sobre los treeviews In-Reply-To: <45C9E5AB.1030607@ehas.org> References: <3932.87.235.142.119.1170780180.squirrel@correo.ehas.org> <45C8B428.4040205@ehas.org> <45C9E5AB.1030607@ehas.org> Message-ID: Tal vez no me explique muy bien, y voy a tratar de hacerlo sin extenderme mucho... He diseñado una interfaz desde el glade, por un lado he insertado un componente treeview para mostrar la lista de catalogos o tablas, y por el otro lado he insertado otro donde mostrare los registros que hay por cada tabla. pero cada tabla tiene campos diferentes, y yo quiero que en el mismo treeview se puedan mostrar dichos campos y hacer el treeview completamente dinamico. ya entendi que con el codigo que se muestra en el hilo se logra poner los campos, mi duda es, si aun que yo haya diseñado la interfaz en glade puedo usar el codigo de ejemplo, aun asi, lo probare y les dire que resultado obtuve gracias. y disculpen la demora... saludos... On 2/7/07, Arnau Sanchez wrote: > > Mario Jiménez Carrasco escribió: > > > OK, entiendo el procedimiento de Lorenzo lo que puedo ver en ello es que > > cuando se crea cada funcion lo que hace es asignar el valor > correspondiente > > a cada celda dependiendo del registro que se seleccione o del que se > > trate.... > > Que es justo lo que necesitas. Fíjate que no tienes más que cambiar el > modelo > activo (con un clear más los correspondientes append) y "mágicamente" el > treeview quedará actualizado. > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > -- ISC. Mario Jimenez Carrasco Ingeniero de Software. From minoztro en gmail.com Mon Feb 12 09:05:29 2007 From: minoztro en gmail.com (Milton Galo Patricio) Date: Mon, 12 Feb 2007 05:05:29 -0300 Subject: pygtk: Sobre los treeviews In-Reply-To: References: <3932.87.235.142.119.1170780180.squirrel@correo.ehas.org> <45C8B428.4040205@ehas.org> <45C9E5AB.1030607@ehas.org> Message-ID: <172699c50702120005r2335731dof28938cd8f258931@mail.gmail.com> Hola Mario: > Tal vez no me explique muy bien, y voy a tratar de hacerlo sin extenderme > mucho... > He diseñado una interfaz desde el glade, por un lado he insertado un > componente treeview para mostrar la lista de catalogos o tablas, y por el > otro lado he insertado otro donde mostrare los registros que hay por cada > tabla. ok..hasta ahí entiendo lo que haces...yo también trabajo con un diseñador de interfaces. > > pero cada tabla tiene campos diferentes, y yo quiero que en el mismo > treeview se puedan mostrar dichos campos y hacer el treeview completamente > dinamico. Claro aca a lo que te refieres es al treeview y no al modelo que sería el gtk.ListStore o gtk.TreeStore > > ya entendi que con el codigo que se muestra en el hilo se logra poner los > campos, mi duda es, si aun que yo haya diseñado la interfaz en glade puedo > usar el codigo de ejemplo, aun asi, lo probare y les dire que resultado > obtuve bueno habría que leerlo con más detención, pero en realidad ese código no te sirve para hacer lo que quieres, ya que en ese código las columnas son estáticas....claro en el modelo no tienes problemas...pero que pasa si la nueva tabla tiene una columna más..como modificamos la estructura de nuestro treeview..bueno a simple vista puedes ver las funciones de: remove_column [0] y append_column [1] [0] http://www.pygtk.org/docs/pygtk/class-gtktreeview.html#method-gtktreeview--remove-column [1] http://www.pygtk.org/docs/pygtk/class-gtktreeview.html#method-gtktreeview--append-column entonces quizás cada vez que cambies de tabla {como dices tu lado izquierdo}, debas construir nuevamente la estructura de tu treeview. algunos método que siempre utilizo para ordenarme un poquito, son: def fgn_llenar_modelo_guia_despacho(self, vpo_resultado): self.vpo_modelo_guia_despacho.clear() for i in vpo_resultado: self.vpo_modelo_guia_despacho.append([i[0],i[2],i[3],[4]]) return def fgn_define_vista_guia_despacho(self): lbl = unicode('Número') column = gtk.TreeViewColumn(lbl.encode('utf-8'), gtk.CellRendererText(), text=0) self.treeviewGuiaDespacho.append_column(column) lbl = unicode('Rut cliente') column = gtk.TreeViewColumn(lbl.encode('utf-8'), gtk.CellRendererText(), text=1) self.treeviewGuiaDespacho.append_column(column) lbl = unicode('Fecha emisión') column = gtk.TreeViewColumn(lbl.encode('utf-8'), gtk.CellRendererText(), text=2) self.treeviewGuiaDespacho.append_column(column) lbl = unicode('Precio total') column = gtk.TreeViewColumn(lbl.encode('utf-8'), gtk.CellRendererText(), text=3) self.treeviewGuiaDespacho.append_column(column) def fgn_crea_modelo_guia_despacho(self): self.vpo_modelo_guia_despacho = gtk.ListStore(str, str, str, str) self.treeviewGuiaDespacho.set_model(self.vpo_modelo_guia_despacho) claro está que primero llamo a crea_modelo_guia_despacho, luego a define_vista_guia_despacho y luego llenar_modelo_guia_despacho...lo que se me ocurre es hacer dinámico el método de define_vista_guia_despacho {no lo sé, guardando la definición o nombre de cada columna en una lista o quizás en un diccionario}. Espero que te sirva la ayuda...si estoy pelando el cable disculpame ya son las 05:03 am en mi país, salu2!! -- Milton Inostroza Aguilera From javielinux en gmail.com Mon Feb 12 09:12:02 2007 From: javielinux en gmail.com (=?ISO-8859-1?Q?Javier_P=E9rez_Pacheco?=) Date: Mon, 12 Feb 2007 09:12:02 +0100 Subject: Subir archivos a PicasaWeb desde Python Message-ID: <9778fd0a0702120012j33e7c7ech8bb4587eb471e2f9@mail.gmail.com> Estoy buscando la forma de poder subir archivos directamente a los album de PicasaWeb [http://picasaweb.google.com] desde Python. Desde el programa Picasa se puede hacer, por lo visto, pero yo estoy buscando la forma de hacerlo con un script ¿alguien sabe algo sobre el tema que me puede orientar? Sería sólo para linux un saludo From cgalisteo en k-rolus.net Mon Feb 12 09:36:59 2007 From: cgalisteo en k-rolus.net (Carlos Galisteo de Cabo) Date: Mon, 12 Feb 2007 9:36:59 +0100 Subject: obtener por consola la salida de un comando del sistemaoperativo In-Reply-To: <524690.2671.qm@web26004.mail.ukl.yahoo.com> References: <524690.2671.qm@web26004.mail.ukl.yahoo.com> Message-ID: <86a8822c713726a6250d9595ed964b18@localhost> Hola. Échale un ojo al módulo subprocess [1]. [1]http://docs.python.org/lib/module-subprocess.html On Sun, 11 Feb 2007 22:39:21 +0100 (CET), Sergi Rosello wrote: > Un saludo > > Estoy tratando de obtener por consola la salida de un > comando del sistema operativo, concretamente nslookup. > Aunque quizá no importe, comentar que estoy trabajando > en Windows. > > He intentado esto > > res = os.system ('nslookup google.es') > print res > > Creo recordar que en Perl esto funcionaría (que no > quiere decir que fuera la mejor manera de hacerlo ...) > > Gracias > > > ------------------------------------------------------------------------------------------------------------------------------------ > Nota Legal: Este correo electrónico puede contener información > estrictamente confidencial y es de uso exclusivo del destinatario, quedando > prohibida a cualquier otra persona su revelación, copia, distribución, o > el ejercicio de cualquier acción relativa a su contenido. Si ha recibido > este correo electrónico por error, por favor, conteste al remitente, y > posteriormente proceda a borrarlo de su sistema. Gracias por su > colaboración. > ------------------------------------------------------------------------------------------------------------------------------------ > > > > ______________________________________________ > LLama Gratis a cualquier PC del Mundo. > Llamadas a fijos y móviles desde 1 céntimo por minuto. > http://es.voice.yahoo.com > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es --- Carlos Galisteo http://blog.k-rolus.net PGP_key::http://k-rolus.net/~cgalisteo/cgalisteo.gpg Key_Fingerprint::F888 6FBA 9145 B5A2 C187 66D6 5B8C 027A 69AD BE65 --- ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From cescd en yahoo.com.mx Mon Feb 12 15:42:18 2007 From: cescd en yahoo.com.mx (Cesar Cardenas Desales) Date: Mon, 12 Feb 2007 06:42:18 -0800 (PST) Subject: leer un *.txt en la red Message-ID: <827914.24992.qm@web50402.mail.yahoo.com> ----- Mensaje original ---- De: alex ordoñez Para: python-es en aditel.org Enviado: sábado, 10 de febrero, 2007 17:06:29 Asunto: [Python-es] leer un *.txt en la red hola a todos, nesecito que me guien como hacer para leer un archivo de texto que se encuentra en una carpeta compartida en mi red local, trabajo con ip fija, donde encuentro informacion al respecto. gracias. att. alexander. _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es Yo recomendaria que usaras sockets. http://effbot.org/librarybook/socket.htm ___________________________________________________________ Do You Yahoo!? La mejor conexión a Internet y 2GB extra a tu correo por $100 al mes. http://net.yahoo.com.mx From mario.carrasco en gmail.com Mon Feb 12 15:43:00 2007 From: mario.carrasco en gmail.com (=?ISO-8859-1?Q?Mario_Jim=E9nez_Carrasco?=) Date: Mon, 12 Feb 2007 08:43:00 -0600 Subject: pygtk: Sobre los treeviews In-Reply-To: <172699c50702120005r2335731dof28938cd8f258931@mail.gmail.com> References: <3932.87.235.142.119.1170780180.squirrel@correo.ehas.org> <45C8B428.4040205@ehas.org> <45C9E5AB.1030607@ehas.org> <172699c50702120005r2335731dof28938cd8f258931@mail.gmail.com> Message-ID: Voy a checar tu metodo, realmente es algo asi lo que necesito... comentare mas tarde... On 2/12/07, Milton Galo Patricio wrote: > > Hola Mario: > > > Tal vez no me explique muy bien, y voy a tratar de hacerlo sin > extenderme > > mucho... > > He diseñado una interfaz desde el glade, por un lado he insertado un > > componente treeview para mostrar la lista de catalogos o tablas, y por > el > > otro lado he insertado otro donde mostrare los registros que hay por > cada > > tabla. > > ok..hasta ahí entiendo lo que haces...yo también trabajo con un > diseñador de interfaces. > > > > > pero cada tabla tiene campos diferentes, y yo quiero que en el mismo > > treeview se puedan mostrar dichos campos y hacer el treeview > completamente > > dinamico. > > Claro aca a lo que te refieres es al treeview y no al modelo que sería > el gtk.ListStore o gtk.TreeStore > > > > > > ya entendi que con el codigo que se muestra en el hilo se logra poner > los > > campos, mi duda es, si aun que yo haya diseñado la interfaz en glade > puedo > > usar el codigo de ejemplo, aun asi, lo probare y les dire que resultado > > obtuve > > bueno habría que leerlo con más detención, pero en realidad ese código > no te sirve para hacer lo que quieres, ya que en ese código las > columnas son estáticas....claro en el modelo no tienes > problemas...pero que pasa si la nueva tabla tiene una columna > más..como modificamos la estructura de nuestro treeview..bueno a > simple vista puedes ver las funciones de: > > remove_column [0] y append_column [1] > > [0] > http://www.pygtk.org/docs/pygtk/class-gtktreeview.html#method-gtktreeview--remove-column > > [1] > http://www.pygtk.org/docs/pygtk/class-gtktreeview.html#method-gtktreeview--append-column > > entonces quizás cada vez que cambies de tabla {como dices tu lado > izquierdo}, debas construir nuevamente la estructura de tu treeview. > > algunos método que siempre utilizo para ordenarme un poquito, son: > > def fgn_llenar_modelo_guia_despacho(self, vpo_resultado): > self.vpo_modelo_guia_despacho.clear() > > for i in vpo_resultado: > > self.vpo_modelo_guia_despacho.append > ([i[0],i[2],i[3],[4]]) > > return > > def fgn_define_vista_guia_despacho(self): > > lbl = unicode('Número') > > column = gtk.TreeViewColumn(lbl.encode('utf-8'), > gtk.CellRendererText(), text=0) > > self.treeviewGuiaDespacho.append_column(column) > lbl = unicode('Rut cliente') > > column = gtk.TreeViewColumn(lbl.encode('utf-8'), > gtk.CellRendererText(), text=1) > > self.treeviewGuiaDespacho.append_column(column) > lbl = unicode('Fecha emisión') > > column = gtk.TreeViewColumn(lbl.encode('utf-8'), > gtk.CellRendererText(), text=2) > > self.treeviewGuiaDespacho.append_column(column) > lbl = unicode('Precio total') > > column = gtk.TreeViewColumn(lbl.encode('utf-8'), > gtk.CellRendererText(), text=3) > > self.treeviewGuiaDespacho.append_column(column) > > def fgn_crea_modelo_guia_despacho(self): > > self.vpo_modelo_guia_despacho = gtk.ListStore(str, str, > str, str) > > self.treeviewGuiaDespacho.set_model( > self.vpo_modelo_guia_despacho) > > > > claro está que primero llamo a crea_modelo_guia_despacho, luego a > define_vista_guia_despacho y luego llenar_modelo_guia_despacho...lo > que se me ocurre es hacer dinámico el método de > define_vista_guia_despacho {no lo sé, guardando la definición o nombre > de cada columna en una lista o quizás en un diccionario}. > > Espero que te sirva la ayuda...si estoy pelando el cable disculpame ya > son las 05:03 am en mi país, salu2!! > -- > Milton Inostroza Aguilera > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > -- ISC. Mario Jimenez Carrasco Ingeniero de Software. From arnau en ehas.org Mon Feb 12 15:57:48 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Mon, 12 Feb 2007 15:57:48 +0100 Subject: pygtk: Sobre los treeviews In-Reply-To: References: <3932.87.235.142.119.1170780180.squirrel@correo.ehas.org> <45C8B428.4040205@ehas.org> <45C9E5AB.1030607@ehas.org> <172699c50702120005r2335731dof28938cd8f258931@mail.gmail.com> Message-ID: <45D0806C.7030509@ehas.org> Mario Jiménez Carrasco escribió: > Voy a checar tu metodo, realmente es algo asi lo que necesito... > comentare mas tarde... La gran cuestión es si las tablas a mostrar son "iguales" o no, es decir, si comportan la misma estructura de columnas . Si es que no, evidentemente tendrás que rehacer completamente el treeview a la hora de mostrarla. From luedu01 en yahoo.es Mon Feb 12 17:08:08 2007 From: luedu01 en yahoo.es (Luis Eduardo Ramirez) Date: Mon, 12 Feb 2007 16:08:08 +0000 (GMT) Subject: leer un *.txt en la red Message-ID: <225501.92630.qm@web23212.mail.ird.yahoo.com> Puedes abrirlo asi... file="\\\equipo\directorio_compartidos\archivo.txt" ----- Mensaje original ---- De: alex ordoñez Para: python-es en aditel.org Enviado: sábado, 10 de febrero, 2007 18:06:29 Asunto: [Python-es] leer un *.txt en la red hola a todos, nesecito que me guien como hacer para leer un archivo de texto que se encuentra en una carpeta compartida en mi red local, trabajo con ip fija, donde encuentro informacion al respecto. gracias. att. alexander. _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es ______________________________________________ LLama Gratis a cualquier PC del Mundo. Llamadas a fijos y móviles desde 1 céntimo por minuto. http://es.voice.yahoo.com From luedu01 en yahoo.es Mon Feb 12 17:19:16 2007 From: luedu01 en yahoo.es (Luis Eduardo Ramirez) Date: Mon, 12 Feb 2007 16:19:16 +0000 (GMT) Subject: leer un *.txt en la red Message-ID: <920005.17761.qm@web23204.mail.ird.yahoo.com> Pido disculpas file=open("\\\equipo\directorio_compartidos\archivo.txt") ----- Mensaje original ---- De: Luis Eduardo Ramirez Para: La lista de python en castellano Enviado: lunes, 12 de febrero, 2007 11:08:08 Asunto: Re: [Python-es] leer un *.txt en la red Puedes abrirlo asi... file="\\\equipo\directorio_compartidos\archivo.txt" ----- Mensaje original ---- De: alex ordoñez Para: python-es en aditel.org Enviado: sábado, 10 de febrero, 2007 18:06:29 Asunto: [Python-es] leer un *.txt en la red hola a todos, nesecito que me guien como hacer para leer un archivo de texto que se encuentra en una carpeta compartida en mi red local, trabajo con ip fija, donde encuentro informacion al respecto. gracias. att. alexander. _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es ______________________________________________ LLama Gratis a cualquier PC del Mundo. Llamadas a fijos y móviles desde 1 céntimo por minuto. http://es.voice.yahoo.com _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es ______________________________________________ LLama Gratis a cualquier PC del Mundo. Llamadas a fijos y móviles desde 1 céntimo por minuto. http://es.voice.yahoo.com From lmontilla en uc.edu.ve Mon Feb 12 17:20:03 2007 From: lmontilla en uc.edu.ve (lmontilla en uc.edu.ve) Date: Mon, 12 Feb 2007 12:20:03 -0400 (VET) Subject: insertar =?iso-8859-1?q?im=E1genes_en_qt?= Message-ID: <31340.200.1.171.138.1171297203.squirrel@www.correo.uc.edu.ve> hola a todos, estoy haciendo una interfaz gráfica en QT4, pero no sé como insertar una imagen desde mis documentos. aclaro que me encuentro trabajando en windows. si alguien me puede ayudar se los agradecería. atentamente. Lorenzo Montilla From espageti en hotmail.com Mon Feb 12 17:59:23 2007 From: espageti en hotmail.com (espageti en hotmail.com) Date: Mon, 12 Feb 2007 17:59:23 +0100 (CET) Subject: Califica mi foto en "SEXY o NO?" Message-ID: <20070212165923.BA5E494474@marti.uji.es> Me sumé a SEXY o NO! Mira mi foto en http://www.sexyono.com/r/?uid=ju4727923a SEXY o NO es una página de entretenimientos que te permite conocer gente, ver y votar fotos de gente de todos los países de habla hispana. Si subes tu foto podrás saber que tan sexy eres a los ojos de los demás y conocer gente de todas partes. Me gustaría que la conozcas, y que te suscribas gratuitamente. Para visitar la web, deberás ir a: http://www.sexyono.com Saludos, juanespa Si no deseas continuar recibiendo invitaciones de parte de tus amigos para ver sus fotos, simplemente accede en la siguiente dirección http://www.sexyono.com/unsuscribe?Email=python-es en aditel.org Este mensaje ha sido enviado automáticamente mediante los servicios de sexyono.com a pedido del remitente. Garantizamos que su dirección de correo no ha sido agregada a ninguna lista de envios ni será compartida con terceros en ningún momento. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From jcanto en hispasec.com Mon Feb 12 18:04:05 2007 From: jcanto en hispasec.com (Julio Canto) Date: Mon, 12 Feb 2007 18:04:05 +0100 Subject: Califica mi foto en "SEXY o NO?" In-Reply-To: <20070212165923.BA5E494474@marti.uji.es> References: <20070212165923.BA5E494474@marti.uji.es> Message-ID: <45D09E05.5080406@hispasec.com> espageti en hotmail.com wrote: > Me sumé a SEXY o NO! > Duh. -- Regards, Julio Canto | VirusTotal.com | Hispasec Sistemas Lab | Tlf: +34.902.161.025 | Fax: +34.952.028.694 | PGP Key ID: EF618D2B | jcanto en hispasec.com From kernel.no.found en gmail.com Mon Feb 12 18:29:24 2007 From: kernel.no.found en gmail.com (=?ISO-8859-1?Q?Juan_Jos=E9_Alonso.?=) Date: Mon, 12 Feb 2007 18:29:24 +0100 Subject: Califica mi foto en "SEXY o NO?" Message-ID: <117d6e170702120929y1ce1659xb49a199f89ab3634@mail.gmail.com> Ostia tio, yo cada vez flipo mas.... xDD -- Juan José Alonso. KarlsBerg. eMail: kernel.no.found en gmail.com MSN: kernel.no.found en gmail.com From gagsl-py en yahoo.com.ar Mon Feb 12 19:32:51 2007 From: gagsl-py en yahoo.com.ar (Gabriel Genellina) Date: Mon, 12 Feb 2007 15:32:51 -0300 Subject: leer un *.txt en la red References: <920005.17761.qm@web23204.mail.ird.yahoo.com> Message-ID: En Mon, 12 Feb 2007 13:19:16 -0300, Luis Eduardo Ramirez escribió: > Pido disculpas > file=open("\\\equipo\directorio_compartidos\archivo.txt") Casi. Es: f = open(r"\\equipo\directorio_compartidos\archivo.txt") o f = open("\\\\equipo\\directorio_compartidos\\archivo.txt") -- Gabriel Genellina ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From jrvilda en gmail.com Tue Feb 13 00:27:28 2007 From: jrvilda en gmail.com (Josu Rodriguez) Date: Tue, 13 Feb 2007 00:27:28 +0100 Subject: problema al consultar clave reg_multi_sz en registro de windows Message-ID: Hola amigos, Estoy teniendo problemas al consultar en un windows 2000, una clave del registro de windows. el codigo es el siguiente: from _winreg import * import sys #get the current value of the PendingFileRenameOperations key def getCurrentValue(): aReg = ConnectRegistry(None, HKEY_LOCAL_MACHINE) aKey = OpenKey(aReg, "SYSTEM\CurrentControlSet\Control\Session Manager") value=[] value.append(QueryValueEx(aKey, "PendingFileRenameOperations")) CloseKey(aKey) return value print getCurrentValue() pero aunque la clave dada tiene varias rutas, solo me devuelve 1. Alguien me podria ayudar a entender como poder realizar la consulta correctamente. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From mario.carrasco en gmail.com Tue Feb 13 00:45:37 2007 From: mario.carrasco en gmail.com (=?ISO-8859-1?Q?Mario_Jim=E9nez_Carrasco?=) Date: Mon, 12 Feb 2007 17:45:37 -0600 Subject: pygtk: Sobre los treeviews In-Reply-To: <45D0806C.7030509@ehas.org> References: <3932.87.235.142.119.1170780180.squirrel@correo.ehas.org> <45C8B428.4040205@ehas.org> <45C9E5AB.1030607@ehas.org> <172699c50702120005r2335731dof28938cd8f258931@mail.gmail.com> <45D0806C.7030509@ehas.org> Message-ID: NO, NO son iguales,,, lo explique incluso en el segundo correo que envié a este hilo. Se pueden mostrar camops de tablas diferentes con estructuras diferentes... On 2/12/07, Arnau Sanchez wrote: > > Mario Jiménez Carrasco escribió: > > > Voy a checar tu metodo, realmente es algo asi lo que necesito... > > comentare mas tarde... > > La gran cuestión es si las tablas a mostrar son "iguales" o no, es decir, > si > comportan la misma estructura de columnas . Si es que no, evidentemente > tendrás > que rehacer completamente el treeview a la hora de mostrarla. > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > -- ISC. Mario Jimenez Carrasco Ingeniero de Software. From gagsl-py en yahoo.com.ar Tue Feb 13 01:46:55 2007 From: gagsl-py en yahoo.com.ar (Gabriel Genellina) Date: Mon, 12 Feb 2007 21:46:55 -0300 Subject: problema al consultar clave reg_multi_sz en registro de windows References: Message-ID: En Mon, 12 Feb 2007 20:27:28 -0300, Josu Rodriguez escribió: > Estoy teniendo problemas al consultar en un windows 2000, una clave del > registro de windows. > el codigo es el siguiente: > > from _winreg import * > import sys > #get the current value of the PendingFileRenameOperations key > > def getCurrentValue(): > aReg = ConnectRegistry(None, HKEY_LOCAL_MACHINE) Si es local esto no hace falta, se le puede pasar HKEY_LOCAL_MACHINE al OpenKey directamente. > aKey = OpenKey(aReg, "SYSTEM\CurrentControlSet\Control\Session > Manager") Ojo con los \, en este caso no pasa nada porque \C y \S son invalidos, pero en general deberias usar \\ o bien r"...\..." > value=[] > value.append(QueryValueEx(aKey, "PendingFileRenameOperations")) Segun la documentacion http://docs.python.org/lib/module--winreg.html , QueryValueEx devuelve un par (value, type), y en este caso especifico type es siempre REG_MULTI_SZ. > CloseKey(aKey) Como con los archivos, el OpenKey/CloseKey deberian estar apareados y dentro de un try/finally. Quedaría algo así entonces: def getPendingFileRenameOperations(): aKey = OpenKey(HKEY_LOCAL_MACHINE, r"SYSTEM\CurrentControlSet\Control\Session Manager") try: try: values = QueryValueEx(aKey, "PendingFileRenameOperations")[0] except WindowsError: values = () finally: CloseKey(aKey) return values Cuando el valor no esta presente, atrapa la excepcion y devuelve (), que parece lo mas conveniente en este caso. -- Gabriel Genellina ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From flaper87 en gmail.com Tue Feb 13 01:58:57 2007 From: flaper87 en gmail.com (Flaper87) Date: Mon, 12 Feb 2007 20:58:57 -0400 Subject: De linux a Windows Message-ID: Saludos a todos: Un amigo me pidio si por favor podia hacerle un programa para el administrar algo y este debe correr en windows. Por supuesto que le dije que si. Yo quisiera poder desarrollarlo en Linux, aunque se que tendre que probarlo en windows para asegurarme que todo funcione al pelo(no hay prolema con esto). Quisiera saber que me recomiendan para desarrollarlo? pygtk corre en windows? (se que wxpython si sirve) Saludos y gracias -- Flavio Percoco Premoli, A.K.A. [Flaper87] http://www.flaper87.com Usuario Linux registrado #436538 Key Fingerprint: CFC0 C67D FF73 463B 7E55 CF43 25D1 E75B E2DB 15C7 From jrvilda en gmail.com Tue Feb 13 02:00:44 2007 From: jrvilda en gmail.com (Josu Rodriguez) Date: Tue, 13 Feb 2007 02:00:44 +0100 Subject: problema al consultar clave reg_multi_sz en registro de windows In-Reply-To: References: Message-ID: Muchas gracias por contestar. Funciona igual que el otro script, no se porque solo devuelve un valor. he probado con vbs, y curiosamente me da el mismo resultado (solo muestra una ruta), cuando se que hay varias por eliminar Const HKEY_LOCAL_MACHINE = &H80000002 Const REG_MULTI_SZ = 7 strComputer = "." Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_ strComputer & "\root\default:StdRegProv") strKeyPath = "SYSTEM\CurrentControlSet\Control\Session Manager" strValueName = "PendingFileRenameOperations" oReg.GetMultiStringValueHKEY_LOCAL_MACHINE,strKeyPath,strValueName,arrValues If Not IsNull(arrValues) Then For Each strValue In arrValues Wscript.Echo strValue Next Else Wscript.Echo "No Pending Reboot" End If resultado en todas la pruebas: [u'\\??\\C:\\WINNT\\PAVSHRB.INI'] Cuando abro la clave, veo varias rutas y tambien con PendMove, lo estoy probando en un windows 2000 pro en castellano, que no se si tiene algo que ver. he leido que las cadenas de una clave tipo REG_MULTI_SZ terminan con un doble caracter nulo. ¿Puede ser este el problema?. El día 13/02/07, Gabriel Genellina escribió: > > En Mon, 12 Feb 2007 20:27:28 -0300, Josu Rodriguez > escribió: > > > Estoy teniendo problemas al consultar en un windows 2000, una clave del > > registro de windows. > > el codigo es el siguiente: > > > > from _winreg import * > > import sys > > #get the current value of the PendingFileRenameOperations key > > > > def getCurrentValue(): > > aReg = ConnectRegistry(None, HKEY_LOCAL_MACHINE) > > Si es local esto no hace falta, se le puede pasar HKEY_LOCAL_MACHINE al > OpenKey directamente. > > > aKey = OpenKey(aReg, "SYSTEM\CurrentControlSet\Control\Session > > Manager") > > Ojo con los \, en este caso no pasa nada porque \C y \S son invalidos, > pero en general deberias usar \\ o bien r"...\..." > > > value=[] > > value.append(QueryValueEx(aKey, "PendingFileRenameOperations")) > > Segun la documentacion http://docs.python.org/lib/module--winreg.html , > QueryValueEx devuelve un par (value, type), y en este caso especifico type > es siempre REG_MULTI_SZ. > > > CloseKey(aKey) > > Como con los archivos, el OpenKey/CloseKey deberian estar apareados y > dentro de un try/finally. > > Quedaría algo así entonces: > > def getPendingFileRenameOperations(): > aKey = OpenKey(HKEY_LOCAL_MACHINE, > r"SYSTEM\CurrentControlSet\Control\Session Manager") > try: > try: values = QueryValueEx(aKey, "PendingFileRenameOperations")[0] > except WindowsError: values = () > finally: > CloseKey(aKey) > return values > > Cuando el valor no esta presente, atrapa la excepcion y devuelve (), que > parece lo mas conveniente en este caso. > > -- > Gabriel Genellina > > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > > -- ~~~~~~~~~~~~~~~~~~ Josu Rodriguez Vilda MCP. ~~~~~~~~~~~~~~~~~~ ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From gagsl-py en yahoo.com.ar Tue Feb 13 02:28:33 2007 From: gagsl-py en yahoo.com.ar (Gabriel Genellina) Date: Mon, 12 Feb 2007 22:28:33 -0300 Subject: problema al consultar clave reg_multi_sz en registro de windows References: Message-ID: En Mon, 12 Feb 2007 22:00:44 -0300, Josu Rodriguez escribió: > Muchas gracias por contestar. > Funciona igual que el otro script, no se porque solo devuelve un valor. > he probado con vbs, y curiosamente me da el mismo resultado (solo muestra > una ruta), cuando se que hay varias por eliminar Bueno, entonces no podemos echarle la culpa a Python :) > Cuando abro la clave, veo varias rutas y tambien con PendMove, lo estoy > probando en un windows 2000 pro en castellano, que no se si tiene algo > que > ver. O sea, usando regedit para ver el contenido, ves varias rutas? Podrias probar buscando otra clave que veas que tenga un valor REG_MULTI_SZ, a ver si la lee bien. > he leido que las cadenas de una clave tipo REG_MULTI_SZ terminan con un > doble caracter nulo. > ¿Puede ser este el problema?. Si, tienen un NUL separando cada valor, y dos NUL juntos indican el final. Pero de eso se encarga Python (o _winreg), desarmandola y devolviendo una tupla. -- Gabriel Genellina ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From pachi en rvburke.com Tue Feb 13 02:21:34 2007 From: pachi en rvburke.com (Rafael Villar Burke) Date: Tue, 13 Feb 2007 02:21:34 +0100 Subject: De linux a Windows In-Reply-To: References: Message-ID: <45D1129E.8030508@rvburke.com> Flaper87 wrote: > Saludos a todos: > > Un amigo me pidio si por favor podia hacerle un programa para el > administrar > algo y este debe correr en windows. Por supuesto que le dije que si. Yo > quisiera poder desarrollarlo en Linux, aunque se que tendre que > probarlo en > windows para asegurarme que todo funcione al pelo(no hay prolema con > esto). > > Quisiera saber que me recomiendan para desarrollarlo? > > pygtk corre en windows? (se que wxpython si sirve) Sí, pygtk funciona perfectamente en win32. La instalación es algo tediosa porque hay que instalar python, gtk+, pygtk (con pygobject), pero tienes un instalador todo-en-uno en: http://osl.ulpgc.es/~arc/gnome/pygtk-setup.exe que incluye hasta python. Saludos, Rafael Villar Burke www.rvburke.com From jrvilda en gmail.com Tue Feb 13 02:49:28 2007 From: jrvilda en gmail.com (Josu Rodriguez) Date: Tue, 13 Feb 2007 02:49:28 +0100 Subject: problema al consultar clave reg_multi_sz en registro de windows In-Reply-To: References: Message-ID: Curioso, he probado con HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Rpc DCOM Protocols que es tambien REG_MULTI_SZ y funcionan todas las pruebas anteriores ¿podria ser un caracter exztraño o algo asi? no me pasa con otra El día 13/02/07, Gabriel Genellina escribió: > > En Mon, 12 Feb 2007 22:00:44 -0300, Josu Rodriguez > escribió: > > > Muchas gracias por contestar. > > Funciona igual que el otro script, no se porque solo devuelve un valor. > > he probado con vbs, y curiosamente me da el mismo resultado (solo > muestra > > una ruta), cuando se que hay varias por eliminar > > Bueno, entonces no podemos echarle la culpa a Python :) > > > Cuando abro la clave, veo varias rutas y tambien con PendMove, lo estoy > > probando en un windows 2000 pro en castellano, que no se si tiene algo > > que > > ver. > > O sea, usando regedit para ver el contenido, ves varias rutas? > Podrias probar buscando otra clave que veas que tenga un valor > REG_MULTI_SZ, a ver si la lee bien. > > > he leido que las cadenas de una clave tipo REG_MULTI_SZ terminan con un > > doble caracter nulo. > > ¿Puede ser este el problema?. > > Si, tienen un NUL separando cada valor, y dos NUL juntos indican el final. > Pero de eso se encarga Python (o _winreg), desarmandola y devolviendo una > tupla. > > -- > Gabriel Genellina > > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > > -- ~~~~~~~~~~~~~~~~~~ Josu Rodriguez Vilda MCP. ~~~~~~~~~~~~~~~~~~ ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From flaper87 en gmail.com Tue Feb 13 03:07:09 2007 From: flaper87 en gmail.com (Flaper87) Date: Mon, 12 Feb 2007 22:07:09 -0400 Subject: De linux a Windows In-Reply-To: <45D1129E.8030508@rvburke.com> References: <45D1129E.8030508@rvburke.com> Message-ID: El día 12/02/07, Rafael Villar Burke escribió: > > Flaper87 wrote: > > Saludos a todos: > > > > Un amigo me pidio si por favor podia hacerle un programa para el > > administrar > > algo y este debe correr en windows. Por supuesto que le dije que si. Yo > > quisiera poder desarrollarlo en Linux, aunque se que tendre que > > probarlo en > > windows para asegurarme que todo funcione al pelo(no hay prolema con > > esto). > > > > Quisiera saber que me recomiendan para desarrollarlo? > > > > pygtk corre en windows? (se que wxpython si sirve) > Sí, pygtk funciona perfectamente en win32. La instalación es algo > tediosa porque hay que instalar python, gtk+, pygtk (con pygobject), > pero tienes un instalador todo-en-uno en: > http://osl.ulpgc.es/~arc/gnome/pygtk-setup.exe que incluye hasta python. Gracias por la respuesta, pero quisiera saber si yo hago una aplicacion desde linux con pygtk esta va a correr en windows? -- Flavio Percoco Premoli, A.K.A. [Flaper87] http://www.flaper87.com Usuario Linux registrado #436538 Key Fingerprint: CFC0 C67D FF73 463B 7E55 CF43 25D1 E75B E2DB 15C7 From gagsl-py en yahoo.com.ar Tue Feb 13 03:11:37 2007 From: gagsl-py en yahoo.com.ar (Gabriel Genellina) Date: Mon, 12 Feb 2007 23:11:37 -0300 Subject: problema al consultar clave reg_multi_sz en registro de windows References: Message-ID: En Mon, 12 Feb 2007 22:49:28 -0300, Josu Rodriguez escribió: > Curioso, > he probado con HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Rpc > DCOM Protocols que es tambien REG_MULTI_SZ y funcionan todas las pruebas > anteriores > ¿podria ser un caracter exztraño o algo asi? > no me pasa con otra Hay un poblema con los REG_MULTI_SZ, y es que es responsabilidad del programador armar bien el contenido, con los NUL de separadores e incluyendo los dos NUL del final que hay que contar tambien dentro del tamaño del buffer. Como dice http://msdn2.microsoft.com/en-us/library/ms724911.aspx: "If the data has the REG_SZ, REG_MULTI_SZ or REG_EXPAND_SZ type, the string may not have been stored with the proper null-terminating characters. Therefore, even if the function returns ERROR_SUCCESS, the application should ensure that the string is properly terminated before using it (...)" Podrias usar el regedit, exportar esa rama que tiene problemas a un archivo, y mirar los valores a ver como estan. Yo diria que algo esta mal armado. -- Gabriel Genellina ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From pachi en rvburke.com Tue Feb 13 03:16:54 2007 From: pachi en rvburke.com (Rafael Villar Burke) Date: Tue, 13 Feb 2007 03:16:54 +0100 Subject: De linux a Windows In-Reply-To: References: <45D1129E.8030508@rvburke.com> Message-ID: <45D11F96.8010904@rvburke.com> Flaper87 wrote: > El día 12/02/07, Rafael Villar Burke escribió: > > Gracias por la respuesta, pero quisiera saber si yo hago una aplicacion > desde linux con pygtk esta va a correr en windows? Sí, claro, salvo que uses llamadas al sistema que no sean portables, aunque esto te pasará con cualquier lenguaje y cualquier plataforma gráfica. Saludos, Rafael Villar Burke From rolandojtorres en gmail.com Tue Feb 13 05:01:00 2007 From: rolandojtorres en gmail.com (=?UTF-8?Q?Rolando_Jos=C3=A9_Torres_S=C3=A1nchez?=) Date: Mon, 12 Feb 2007 23:01:00 -0500 Subject: De linux a Windows In-Reply-To: <45D11F96.8010904@rvburke.com> References: <45D1129E.8030508@rvburke.com> <45D11F96.8010904@rvburke.com> Message-ID: <6a39a1d0702122001t1ffd259ct6a346c059a8d5b62@mail.gmail.com> Python con WXwindows funciona muy bien con Windows y Linux, también es muy compatible con otras plataformas, tiene un ambiente grafico renovado, la instalación es facil, sin embargo las librerias son bastante mas grandes que Tkinter. Si tienes problemas con WXwindows prueba con el tkinter, que sigue siendo el GUI para Python mas compatible, muy pequeño, facil de instalar y muy compatible en diferentes Sistemas Operativos, incluyendo Mac y Wince, pero tiene desventajas que me han hecho pensar en WXWindows, como widgets muy basicos, es muy lento por llamar a otro lenguaje(TCL/TK) y es muy rigido. Pero si solo vas a desarrollar en Windows y Linux y no te interesan ni la instalación, ni el tamaño de las librerias, ni otros Sistemas Operativos y ya conoces PyGTK, quedate con ese o con WXwindows. El 12/02/07, Rafael Villar Burke escribió: > Flaper87 wrote: > > El día 12/02/07, Rafael Villar Burke escribió: > > > > Gracias por la respuesta, pero quisiera saber si yo hago una aplicacion > > desde linux con pygtk esta va a correr en windows? > Sí, claro, salvo que uses llamadas al sistema que no sean portables, > aunque esto te pasará con cualquier lenguaje y cualquier plataforma gráfica. > > Saludos, > > Rafael Villar Burke > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > -- Rolando José Torres Sánchez TCL/TK inside Python MSN:rolandojtorres en hotmail.com ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From arnau en ehas.org Tue Feb 13 09:22:46 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Tue, 13 Feb 2007 09:22:46 +0100 Subject: pygtk: Sobre los treeviews In-Reply-To: References: <3932.87.235.142.119.1170780180.squirrel@correo.ehas.org> <45C8B428.4040205@ehas.org> <45C9E5AB.1030607@ehas.org> <172699c50702120005r2335731dof28938cd8f258931@mail.gmail.com> <45D0806C.7030509@ehas.org> Message-ID: <45D17556.9020907@ehas.org> Mario Jiménez Carrasco escribió: > NO, NO son iguales,,, lo explique incluso en el segundo correo que envié a > este hilo. > > Se pueden mostrar camops de tablas diferentes con estructuras diferentes... Ok, eso lo cambia todo. En tal caso la cosa tiene menos secreto: en cada cambio hay que rehacer el Treeview entero. Como mucho, lo que sí podrías tener preparado es el modelo de cada tabla, para que sólo tengas que asignarlo. Como no hay un clear para las columnas, puedes usar el remove_column (como decía Milton) o sencillamente borrarla y empezar de 0 (a no ser que vaya lento, hay que verlo) From rafaelcantos en hotmail.com Tue Feb 13 12:20:58 2007 From: rafaelcantos en hotmail.com (Rafael Cantos) Date: Tue, 13 Feb 2007 11:20:58 +0000 Subject: De linux a Windows In-Reply-To: <20070213012913.E3AF6144E239@devnull.aditel.org> References: <20070213012913.E3AF6144E239@devnull.aditel.org> Message-ID: Saludos a todos: Un amigo me pidio si por favor podia hacerle un programa para el administrar algo y este debe correr en windows. Por supuesto que le dije que si. Yo quisiera poder desarrollarlo en Linux, aunque se que tendre que probarlo en windows para asegurarme que todo funcione al pelo(no hay prolema con esto). Quisiera saber que me recomiendan para desarrollarlo? pygtk corre en windows? (se que wxpython si sirve) Saludos y gracias Hola. pygtk funciona en windows idéntigual que en linux. La instalación en Windows es lo más complicado, como ya se ha mencionado por ahí, aunque hay algun instalador que te lo facilita. Si lo instalas componente a componente, (como yo hice), necesitas instalar cinco cosillas: python pygtk pygobject pycairo gtk+ Por supuesto, instala las versiones más recientes. Al pasar de Linux a Windows, algunos comandos, como ya se ha mencionado por ahí, cambiarán. Uno que se usa con mucha frecuencia y que cambia, es para limpiar la pantalla. En Linux es: os.system('clear') mientras que en Windows es: os.system('cls') Como vas a desarrollarlo en Linux, utiliza los comandos propios de Linux, y cuando quieras probarlo en Windows, aunque sólo estés a medias, haz una copia del guión y modifica ahí los comandos que cambien. Por cierto, en Windows no importa donde guardes el fichero, cuando lo ejecutes, automáticamente se te abrirá una ventana de la consola de python y comenzará la ejecución. Saludos Rafa _________________________________________________________________ Grandes éxitos, superhéroes, imitaciones, cine y TV... http://es.msn.kiwee.com/ Lo mejor para tu móvil. From mlacunza en gmail.com Tue Feb 13 14:56:14 2007 From: mlacunza en gmail.com (Mario Lacunza) Date: Tue, 13 Feb 2007 08:56:14 -0500 Subject: De linux a Windows In-Reply-To: References: Message-ID: <1171374974.5218.13.camel@laptop> El mar, 13-02-2007 a las 11:20 +0000, Rafael Cantos escribió: > Saludos a todos: > > Un amigo me pidio si por favor podia hacerle un programa para el administrar > algo y este debe correr en windows. Por supuesto que le dije que si. Yo > quisiera poder desarrollarlo en Linux, aunque se que tendre que probarlo en > windows para asegurarme que todo funcione al pelo(no hay prolema con esto). > > Quisiera saber que me recomiendan para desarrollarlo? > > pygtk corre en windows? (se que wxpython si sirve) Te recomiendo q uses wxPython, es un gran proyecto muy bien soportado, funciona con los controles nativos del OS por lo q su look es muy natural en cada OS. Facil de instalar,pues cuenta con instaladores EXE segun la version de Win y de Python. Yo lo uso y no tengo problemas, programo en Ubuntu y la mayoria de mis clientes estan en Win y no tengo q retocar nada o casi nada. -- Mario Lacunza ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From fpalm en ula.ve Tue Feb 13 15:21:44 2007 From: fpalm en ula.ve (Francisco Palm) Date: Tue, 13 Feb 2007 10:21:44 -0400 Subject: De linux a Windows In-Reply-To: References: <20070213012913.E3AF6144E239@devnull.aditel.org> Message-ID: Hace poco colaboré en un proyecto basado en Glade y PyGTK desarrollado en Ubuntu y después se ejecutó en Windows y todo funcionó a la perfección -out of the box-. La apariencia es realmente la de una aplicación nativa, de hecho, los menús con iconos son más bonitos y fáciles que con Delphi o VB. Desde acá te descargas la versión -todo en uno- para windows: http://gladewin32.sourceforge.net/ En particular, la última versión: Gtk+/Win32 Development Environment (runtime, devel, docs, glade, etc.) Installer 2.10.7-1 http://gladewin32.sourceforge.net/modules/wfdownloads/visit.php?lid=108 Saludos F. Palm El 13/02/07, Rafael Cantos escribió: > Saludos a todos: > > Un amigo me pidio si por favor podia hacerle un programa para el administrar > algo y este debe correr en windows. Por supuesto que le dije que si. Yo > quisiera poder desarrollarlo en Linux, aunque se que tendre que probarlo en > windows para asegurarme que todo funcione al pelo(no hay prolema con esto). > > Quisiera saber que me recomiendan para desarrollarlo? > > pygtk corre en windows? (se que wxpython si sirve) > > Saludos y gracias > > Hola. pygtk funciona en windows idéntigual que en linux. La instalación en > Windows es lo más complicado, como ya se ha mencionado por ahí, aunque hay > algun instalador que te lo facilita. Si lo instalas componente a componente, > (como yo hice), necesitas instalar cinco cosillas: > python > pygtk > pygobject > pycairo > gtk+ > Por supuesto, instala las versiones más recientes. > > Al pasar de Linux a Windows, algunos comandos, como ya se ha mencionado por > ahí, cambiarán. Uno que se usa con mucha frecuencia y que cambia, es para > limpiar la pantalla. En Linux es: > os.system('clear') > mientras que en Windows es: > os.system('cls') > Como vas a desarrollarlo en Linux, utiliza los comandos propios de Linux, y > cuando quieras probarlo en Windows, aunque sólo estés a medias, haz una > copia del guión y modifica ahí los comandos que cambien. > > Por cierto, en Windows no importa donde guardes el fichero, cuando lo > ejecutes, automáticamente se te abrirá una ventana de la consola de python y > comenzará la ejecución. > > Saludos > > Rafa > > _________________________________________________________________ > Grandes éxitos, superhéroes, imitaciones, cine y TV... > http://es.msn.kiwee.com/ Lo mejor para tu móvil. > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > -- del Delirio al Limbo.... From sonajadiabolica en gmail.com Tue Feb 13 16:21:10 2007 From: sonajadiabolica en gmail.com (aNgel rEsendiz g.) Date: Tue, 13 Feb 2007 09:21:10 -0600 Subject: De linux a Windows In-Reply-To: References: Message-ID: <8d9e208f0702130721u69e91979s4abbd3412fbd73b7@mail.gmail.com> On 2/12/07, Flaper87 wrote: > Saludos a todos: > > Un amigo me pidio si por favor podia hacerle un programa para el administrar > algo y este debe correr en windows. Por supuesto que le dije que si. Yo > quisiera poder desarrollarlo en Linux, aunque se que tendre que probarlo en > windows para asegurarme que todo funcione al pelo(no hay prolema con esto). > > Quisiera saber que me recomiendan para desarrollarlo? > > pygtk corre en windows? (se que wxpython si sirve) > > Saludos y gracias Creo que eso puede darte una idea de lo fácil y compatible (linux-win) que es programar con pygtk. http://www.islascruz.org/html/index.php?blog/show/Escribiendo_aplicaciones_rapido_y_portable Saludos -- aNgel rEsendiz.! From mario.carrasco en gmail.com Tue Feb 13 17:40:33 2007 From: mario.carrasco en gmail.com (=?ISO-8859-1?Q?Mario_Jim=E9nez_Carrasco?=) Date: Tue, 13 Feb 2007 10:40:33 -0600 Subject: pygtk: Sobre los treeviews In-Reply-To: <45D17556.9020907@ehas.org> References: <3932.87.235.142.119.1170780180.squirrel@correo.ehas.org> <45C8B428.4040205@ehas.org> <45C9E5AB.1030607@ehas.org> <172699c50702120005r2335731dof28938cd8f258931@mail.gmail.com> <45D0806C.7030509@ehas.org> <45D17556.9020907@ehas.org> Message-ID: Esa es la respuesta que yo necesitaba y buscaba, yo intente con el clear muchas veces pero nunca me eliminaba las columnas ya agregadas con el append, pero intentare con el metodo remove de las columnas para poder realizarlo, lo que no entiendo es como tener preparado el modelo para cada tabla a mostrar... saludos y mil gracias,,, On 2/13/07, Arnau Sanchez wrote: > > Mario Jiménez Carrasco escribió: > > > NO, NO son iguales,,, lo explique incluso en el segundo correo que envié > a > > este hilo. > > > > Se pueden mostrar camops de tablas diferentes con estructuras > diferentes... > > Ok, eso lo cambia todo. En tal caso la cosa tiene menos secreto: en cada > cambio > hay que rehacer el Treeview entero. Como mucho, lo que sí podrías tener > preparado es el modelo de cada tabla, para que sólo tengas que asignarlo. > > Como no hay un clear para las columnas, puedes usar el remove_column (como > decía > Milton) o sencillamente borrarla y empezar de 0 (a no ser que vaya lento, > hay > que verlo) > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > -- ISC. Mario Jimenez Carrasco Ingeniero de Software. From tux_in_my_heart en hotmail.com Tue Feb 13 18:51:25 2007 From: tux_in_my_heart en hotmail.com (=?iso-8859-1?Q?Jacob_Nu=F1ez_Garcia?=) Date: Tue, 13 Feb 2007 11:51:25 -0600 Subject: Barra de Progreso Message-ID: Desde hace unas semanas venia desarrollando una aplicacion en la cual pudiera copiar archivos, y que esta mostrara una barra de progreso, esta aplicacion la desarrolle en con pygtk, se que a lo mejor mi codigo no este muy bien estructurado, le hize unos pequeños arreglos , que me menciono, Arnau Sanchez que por su puesto agradesco y pues este es el codigo y si sienten que le sobra o le falta algo por favor informelo aqui. ##################################################################### Este script se pone al alcanze de todos, para su estudio, mejora y utilizacion sin restriccion alguna, solo se pide conservar este encabezado. ##################################################################### Autor: Jacob de Jesus Núñez Garcia. ##################################################################### import threadingimport gobjectimport gtkimport os gobject.threads_init() class MyThread(threading.Thread): def __init__(self, label): super(MyThread, self).__init__() self.pb = pb self.w = w self.quit = False def update_pb(self, counter): percent=(self.counter) / float(self.size) self.pb.set_fraction(percent) self.pb.set_text('Completado: %i'%(percent*100)) return False def run(self): file1='in.zip' file2='out.zip' file_object = open(file1, 'rb') file_dest = open(file2, 'wb') self.size=os.path.getsize(file1) self.counter=0 while 1: chunk = file_object.read(8042) self.counter=self.counter + len(chunk) if not chunk: break file_dest.write(chunk) gobject.idle_add(self.update_pb, self.counter) file_object.close() file_dest.close() gtk.main_quit() w = gtk.Window() w.set_size_request(500,20)w.set_title("Copiando Archivo...")pb = gtk.ProgressBar()w.add(pb)w.show_all()w.connect("destroy", lambda _: gtk.main_quit())t = MyThread(pb)t.start()gtk.main()t.quit = True _________________________________________________________________ Live Search: New search found http://get.live.com/search/overview From tux_in_my_heart en hotmail.com Tue Feb 13 18:57:42 2007 From: tux_in_my_heart en hotmail.com (=?iso-8859-1?Q?Jacob_Nu=F1ez_Garcia?=) Date: Tue, 13 Feb 2007 11:57:42 -0600 Subject: Barra de Progreso Message-ID: Aqui se ve mejor el script (Bueno eso creo) import threading import gobject import gtk import os gobject.threads_init() class MyThread(threading.Thread): def __init__(self, label): super(MyThread, self).__init__() self.pb = pb self.w = w self.quit = False def update_pb(self, counter): percent=(self.counter) / float(self.size) self.pb.set_fraction(percent) self.pb.set_text('Completado: %i'%(percent*100)) return False def run(self): file1='in.zip' file2='out.zip' file_object = open(file1, 'rb') file_dest = open(file2, 'wb') self.size=os.path.getsize(file1) self.counter=0 while 1: chunk = file_object.read(8042) self.counter=self.counter + len(chunk) if not chunk: break file_dest.write(chunk) gobject.idle_add(self.update_pb, self.counter) file_object.close() file_dest.close() gtk.main_quit() w = gtk.Window() w.set_size_request(500,20) w.set_title('Copiando Archivo...') pb = gtk.ProgressBar() w.add(pb) w.show_all() w.connect('destroy', lambda _: gtk.main_quit()) t = MyThread(pb) t.start() gtk.main() t.quit = True _________________________________________________________________ Live Search: New search found http://get.live.com/search/overview From gerardo699 en gmail.com Tue Feb 13 20:21:45 2007 From: gerardo699 en gmail.com (Gerardo Ayala G.) Date: Tue, 13 Feb 2007 14:21:45 -0500 Subject: Hola (Evaluar f(x)) Message-ID: Hola!!! Necesito Evaluar una funcion en determinado valor por ej: Recibo la funcion f(x)= 3x^2 + 3x^3 - 2x en una cadena y tengo el valor para x=1 Como puedo evaluar esta funcion en x=1 3(1)^2 + 3(1)^3 - 2(1) Muchas griacias ---- Gerardo A. From gagsl-py en yahoo.com.ar Tue Feb 13 20:31:34 2007 From: gagsl-py en yahoo.com.ar (Gabriel Genellina) Date: Tue, 13 Feb 2007 16:31:34 -0300 Subject: Barra de Progreso References: Message-ID: En Tue, 13 Feb 2007 14:57:42 -0300, Jacob Nuñez Garcia escribió: > Aqui se ve mejor el script (Bueno eso creo) (Sí, el mensaje anterior no se podia leer nada!) Yo trataria de emprolijarlo un poco. > import threading > import gobject > import gtk > import os > gobject.threads_init() > class MyThread(threading.Thread): (Uhmm... podrias buscar un mejor nombre que MyThread, no?) > def __init__(self, label): > super(MyThread, self).__init__() > self.pb = pb > self.w = w > self.quit = False pb y w son variables globales - no parece muy bueno. w no se usa para nada. pb sería el argumento "label", que no se usa ahora, pero que mas abajo se le esta pasando. self.quit no tiene ninguna utilidad. > def update_pb(self, counter): > percent=(self.counter) / float(self.size) > self.pb.set_fraction(percent) > self.pb.set_text('Completado: %i'%(percent*100)) > return False Usa self.counter para las cuentas, pero lo recibe como argumento? Como de cualquier modo requiere tambien self.size, yo eliminaria el argumento. > def run(self): > file1='in.zip' > file2='out.zip' > file_object = open(file1, 'rb') > file_dest = open(file2, 'wb') > self.size=os.path.getsize(file1) > self.counter=0 > while 1: > chunk = file_object.read(8042) Algun motivo para usar 8042 exactamente, y no 8000, u 8192, u 8888? > self.counter=self.counter + len(chunk) > if not chunk: break > file_dest.write(chunk) > gobject.idle_add(self.update_pb, self.counter) > file_object.close() > file_dest.close() Aca faltaria todo el manejo de excepciones; y el open/close usualmente van apareados con try/finally (o bien usando el with de Python 2.5) Entiendo que esto tiene algun uso especifico, pero dejarlo atado a los nombres "in.zip" y "out.zip" dentro mismo del metodo que hace la copia seria demasiado. Seria bueno poder especificar ambos nombres al momento de construir el objeto. > gtk.main_quit() No se muy bien como se manejan estas cosas en gtk, pero parece un poco extraño que un thread de trabajo sea el que decide cuando debe terminar la aplicacion. (Usualmente, un "empleado" le dice a su "jefe" que termino de hacer su trabajo, y su "jefe" decide qué hacer en base a eso, no es el "empleado" quien decide). Del codigo que viene despues no opino porque parece ser todo gtk y no lo conozco. -- Gabriel Genellina ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From gagsl-py en yahoo.com.ar Tue Feb 13 20:42:33 2007 From: gagsl-py en yahoo.com.ar (Gabriel Genellina) Date: Tue, 13 Feb 2007 16:42:33 -0300 Subject: Hola (Evaluar f(x)) References: Message-ID: En Tue, 13 Feb 2007 16:21:45 -0300, Gerardo Ayala G. escribió: > Hola!!! > > Necesito Evaluar una funcion en determinado valor por ej: > Recibo la funcion f(x)= 3x^2 + 3x^3 - 2x > en una cadena > y tengo el valor para x=1 > > Como puedo evaluar esta funcion en x=1 > 3(1)^2 + 3(1)^3 - 2(1) Si puedes convencer a los usuarios de usar la sintaxis de Python: >>> s = "3*x**2 + 3*x**3 - 2*x" >>> libres = {"x": 1} >>> eval(s, {}, libres) 4 Si necesitas funciones trigonometricas y esas cosas: >>> import math >>> funcs = vars(math) >>> libres = dict(x=2, y=3) >>> s = "4*sin(x)*cos(y)" >>> eval(s, funcs, libres) -3.6007905189420697 -- Gabriel Genellina ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From dmunhiz en gmail.com Tue Feb 13 20:34:28 2007 From: dmunhiz en gmail.com (dmunhiz) Date: Tue, 13 Feb 2007 20:34:28 +0100 Subject: acceder a una base de datos access desde ubuntu Message-ID: <45D212C4.4050907@gmail.com> Hola: Me gustaría saber si hai forma de acceder a una base de datos access 97 loquesea.mdb desde linux, en windows uso el win32 pero en linux?? actualmente uso ubuntu, es posible acceder? Muchas gracias. -- Remitente: Daniel Muñiz Fontoira Eu uso software libre [1] [1]http://www.gnu.org/philosophy/free-sw.gl.html From kh_alatar en telefonica.net Wed Feb 14 01:13:27 2007 From: kh_alatar en telefonica.net (Alatar) Date: Wed, 14 Feb 2007 01:13:27 +0100 Subject: Utilidad de correo (problema con =?UTF-8?B?aW3DoWdlbg==?= =?UTF-8?B?ZXMgZW4gaHRtbCk=?= In-Reply-To: <45C9DF9C.1050207@telefonica.net> References: <45C20F1B.6070907@telefonica.net> <45C9DF9C.1050207@telefonica.net> Message-ID: <45D25427.80501@telefonica.net> Hola de nuevo a todos. Siguiendo el consejo de David, he encontrado todo lo necesario para mandar correos usando el módulo email y smtplib. Me he hecho una rutina para mandar correo en modo texto y html, con attachments y con referencias a imágenes almacenadas en sitios web, y todo funciona perfectamente. Sin embargo ahora me encuentro con el problema de que cuando quiero embeber alguna imagen en el cuerpo del mensaje en formato html, ésta se muestra deformada al recibirla. Es decir, ha perdido su relación de aspecto original. ¿Alguien puede ayudarme y decirme qué puedo hacer para solucionarlo? Este es el trozo de código que se encarga de embeber la o las imágenes en el content-id: (como parámetro le paso una lista con todas las imágenes a embeber) #Añadimos las imágenes embebidas for imagen in pm_imagenes_embebidas: #Cargar imagen archivo_imagen = open(imagen, 'rb') msgImage = MIMEImage(archivo_imagen.read()) archivo_imagen.close() #Adjuntar imagen en el content-id. #En el archivo html se debe hacer referencia al content-id #como fuente en el source de la imagen, por ejemplo: # msgImage.add_header('Content-ID', '<' + imagen + '>') msgRaiz.attach(msgImage) Gracias de antemano, Alatar P.D.: He usado imágenes en formato .jpg en mis puebas ------------------------------------------------------------------------------------------------- Alatar escribió: > Gracias David, voy a echarle un vistazo ;) > Un saludo, > > Alatar > > David Asorey Álvarez escribió: >>> [...] ¿podría desarrollar alguna utilidad mediante python que >>> me permita tomar por ejemplo un archivo de texto con todas las >>> direcciones electrónicas a las que debo enviar el mensaje y enviarles a >>> cada una de ellas el mismo? (yo desde luego preferiría esta última >>> opción). >> >> Yo optaría por hacerme un pequeño programa. Está la librería smtplib: >> http://docs.python.org/lib/module-smtplib.html >> Ejemplo: >> http://www.python.org/doc/lib/SMTP-example.html >> >> El tema ya se ha comentado otras veces en la lista: >> http://www.google.es/search?q=mandar+un+correo+site%3Ahttp%3A%2F%2Flistas.aditel.org%2Farchivos%2Fpython-es%2F >> > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From camontuyu en yahoo.es Wed Feb 14 12:04:30 2007 From: camontuyu en yahoo.es (camontuyu) Date: Wed, 14 Feb 2007 12:04:30 +0100 Subject: unir dos diccionarios Message-ID: <45D2ECBE.7080702@yahoo.es> Hola, supongo que es una tontería... pero como se unen dos diccionarios en uno. d1 = {"a":1, "b": 2} d2 = {"c": 3} d1 + d2 --> {"a":1, "b": 2, "c": 3} Saludos. ______________________________________________ LLama Gratis a cualquier PC del Mundo. Llamadas a fijos y móviles desde 1 céntimo por minuto. http://es.voice.yahoo.com From jespinog en gmail.com Wed Feb 14 12:11:34 2007 From: jespinog en gmail.com (=?ISO-8859-1?Q?Jes=FAs_Espino?=) Date: Wed, 14 Feb 2007 12:11:34 +0100 Subject: unir dos diccionarios In-Reply-To: <45D2ECBE.7080702@yahoo.es> References: <45D2ECBE.7080702@yahoo.es> Message-ID: d1.update(d2) :) El 14/02/07, camontuyu escribió: > Hola, supongo que es una tontería... pero como se unen dos diccionarios > en uno. > > d1 = {"a":1, "b": 2} > d2 = {"c": 3} > > d1 + d2 --> {"a":1, "b": 2, "c": 3} > > Saludos. > > > > ______________________________________________ > LLama Gratis a cualquier PC del Mundo. > Llamadas a fijos y móviles desde 1 céntimo por minuto. > http://es.voice.yahoo.com > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From pablomarmol en gmail.com Wed Feb 14 12:13:51 2007 From: pablomarmol en gmail.com (peter) Date: Wed, 14 Feb 2007 12:13:51 +0100 Subject: unir dos diccionarios In-Reply-To: <45D2ECBE.7080702@yahoo.es> References: <45D2ECBE.7080702@yahoo.es> Message-ID: <32ec9b10702140313i777fea92hb7524572dbd42b69@mail.gmail.com> El 14/02/07, camontuyu escribió: > Hola, supongo que es una tontería... pero como se unen dos diccionarios > en uno. > > d1 = {"a":1, "b": 2} > d2 = {"c": 3} > > d1 + d2 --> {"a":1, "b": 2, "c": 3} http://docs.python.org/lib/typesmapping.html según dice la documentación, d1.update(d2) debería funcionarte. . From ferrero.mariaeugenia en gmail.com Wed Feb 14 13:17:52 2007 From: ferrero.mariaeugenia en gmail.com (Maria Eugenia Ferrero) Date: Wed, 14 Feb 2007 09:17:52 -0300 Subject: =?iso-8859-1?q?Tomar_informaci=F3n_de_un_archivo_y_m?= =?iso-8859-1?q?ostrarlo_gr=E1ficamente?= Message-ID: <85f5e1fe0702140417h20b026b0j3757f1a615b66c8a@mail.gmail.com> Hola lista, cómo les va? Estoy con un pequeño problemita, a ver si me pueden dar una mano.... Yo ya tengo mis script creados, en cada uno va tomando información del sistema (uno la memoria, el otro la cpu, etc). Yo desde uno principal voy a ir llamando a cada uno, peor la idea es que esa información que me van arrojando en realidad yo plasmarla gráficamente, con un histograma, gráfico de barra, o algo así... pero no sé cómo hacer para que "esa información yo poder mostrarla gráficamente". No sé si me he dado a entender, pero quisiera si alguien me puede pasar alguna página, tutorial o lo que sea para que yo lo lea porque busque en internet (y se ve que no muy bien) porque no encontré nada. Yo trabajo con matplotlib y Tkinter, no sé si alguien me podrá dar la mano, pero les agradeceré, muchas gracias, hasta la próxima!!! From alxgnar en gmail.com Wed Feb 14 13:42:46 2007 From: alxgnar en gmail.com (=?ISO-8859-1?Q?alex_ordo=F1ez?=) Date: Wed, 14 Feb 2007 07:42:46 -0500 Subject: leer un *.txt en la red In-Reply-To: References: <920005.17761.qm@web23204.mail.ird.yahoo.com> Message-ID: <26a762360702140442p4ee2481dv354c04c183e904bf@mail.gmail.com> gracias a todos por todas sus soluciones probe f = open( \\\\equipo\\directorio_compartidos\\archivo.txt) y me salio muy bien. gracias. From gagsl-py en yahoo.com.ar Wed Feb 14 15:14:24 2007 From: gagsl-py en yahoo.com.ar (Gabriel Genellina) Date: Wed, 14 Feb 2007 11:14:24 -0300 Subject: =?iso-8859-15?q?Tomar_informaci=F3n_de_un_archivo_y_mostrarlo?= =?iso-8859-15?q?_gr=E1ficamente?= References: <85f5e1fe0702140417h20b026b0j3757f1a615b66c8a@mail.gmail.com> Message-ID: En Wed, 14 Feb 2007 09:17:52 -0300, Maria Eugenia Ferrero escribió: > la idea es que esa información > que me van arrojando en realidad yo plasmarla gráficamente, con un > histograma, gráfico de barra, o algo así... pero no sé cómo hacer para > que > "esa información yo poder mostrarla gráficamente". > No sé si me he dado a entender, pero quisiera si alguien me puede pasar > alguna página, tutorial o lo que sea para que yo lo lea porque busque en > internet (y se ve que no muy bien) porque no encontré nada. > Yo trabajo con matplotlib y Tkinter, no sé si alguien me podrá dar la > mano, > pero les agradeceré, muchas gracias, hasta la próxima!!! La verdad que no entiendo del todo la cuestion... "Yo trabajo con matplotlib" - que problema hay en usarlo para generar todos los graficos que quieras? -- Gabriel Genellina ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From joana_mendaro en hotmail.com Wed Feb 14 15:15:17 2007 From: joana_mendaro en hotmail.com (joana salgado gomez) Date: Wed, 14 Feb 2007 14:15:17 +0000 Subject: las clases en python Message-ID: Hola listeros!!!! No tengo muy claro esto de las clases en python, cuando usar __init__, self . . . me he leido un par de tutoriales pero no me han aclarado mucho. Por lo que he pasado a aprender probando. me he hecho esta clase: class IngYReceta: ingrediente=None listaRecetas=[] Me hago dos instancias de la clase i1 e i2 y cuando le añado al atributo listaRecetas un valor lo añade en las dos instancias ¿como puede ser esto? >>>i1=IngYReceta >>>i2=IngYReceta >>>i1.listaRecetas.append('2') >>>i2.listaRecetas.append('3') >>>print i1.listaRecetas ['2', '3'] Alguien me lo puede explicar no lo entiendo??? _________________________________________________________________ Acepta el reto MSN Premium: Correos más divertidos con fotos y textos increíbles en MSN Premium. Descárgalo y pruébalo 2 meses gratis. http://join.msn.com?XAPID=1697&DI=1055&HL=Footer_mailsenviados_correosmasdivertidos From jespinog en gmail.com Wed Feb 14 15:40:22 2007 From: jespinog en gmail.com (=?ISO-8859-1?Q?Jes=FAs_Espino?=) Date: Wed, 14 Feb 2007 15:40:22 +0100 Subject: las clases en python In-Reply-To: References: Message-ID: Al instanciar una clase tienes que usar los (), es decir i1 = IngYReceta(), si no lo que le estas diciendo es que i1 es la Clase, no una instancia de la clase. Respecto al __init__ es un metodo que se define en las clases, y es el constructor, es decir, es un metodo que se ejecuta al instanciar una clase. Respecto al self es un atributo que dentro de un objeto hace referencia a si mismo, es decir, si dentro de tu codigo de clase haces un self.get_ingrediente(), lo que estas diciendo es que llame al metodo get_ingrediente del objeto mismo. Igual me he equivocado en algun termino, pero a grandes razgos es asi. Un saludo. El 14/02/07, joana salgado gomez escribió: > Hola listeros!!!! > > No tengo muy claro esto de las clases en python, cuando usar __init__, self > . . . me he leido un par de tutoriales pero no me han aclarado mucho. Por > lo que he pasado a aprender probando. > > me he hecho esta clase: > > class IngYReceta: > ingrediente=None > listaRecetas=[] > > > Me hago dos instancias de la clase i1 e i2 y cuando le añado al atributo > listaRecetas un valor lo añade en las dos instancias ¿como puede ser esto? > > >>>i1=IngYReceta > >>>i2=IngYReceta > >>>i1.listaRecetas.append('2') > >>>i2.listaRecetas.append('3') > >>>print i1.listaRecetas > ['2', '3'] > > Alguien me lo puede explicar no lo entiendo??? > > _________________________________________________________________ > Acepta el reto MSN Premium: Correos más divertidos con fotos y textos > increíbles en MSN Premium. Descárgalo y pruébalo 2 meses gratis. > http://join.msn.com?XAPID=1697&DI=1055&HL=Footer_mailsenviados_correosmasdivertidos > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From gagsl-py en yahoo.com.ar Wed Feb 14 15:42:24 2007 From: gagsl-py en yahoo.com.ar (Gabriel Genellina) Date: Wed, 14 Feb 2007 11:42:24 -0300 Subject: las clases en python References: Message-ID: En Wed, 14 Feb 2007 11:15:17 -0300, joana salgado gomez escribió: > Hola listeros!!!! > > No tengo muy claro esto de las clases en python, cuando usar __init__, > self . . . me he leido un par de tutoriales pero no me han aclarado > mucho. Por lo que he pasado a aprender probando. Sugiero que leas algo de todo esto: http://dotpy.net/python_en_castellano.html En particular, "Inmersion en Python", una traduccion del libro Dive Into Python, esta muy completo y didactico: http://almacen.gulic.org/diveintopython-5.4-es/toc/index.html > me he hecho esta clase: > > class IngYReceta: > ingrediente=None > listaRecetas=[] Esos dos atributos pertenecen a la *clase*, no a ninguna *instancia* en particular, y el efecto es que son *compartidos* por todas las instancias. Deberias usar algo asi: class IngYReceta: def __init__(self): self.ingrediente = None self.listaRecetas = [] Es el capitulo 5 del libro de arriba (pero deberias leer los 4 anteriores!) -- Gabriel Genellina ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From ferrero.mariaeugenia en gmail.com Wed Feb 14 16:23:05 2007 From: ferrero.mariaeugenia en gmail.com (Maria Eugenia Ferrero) Date: Wed, 14 Feb 2007 12:23:05 -0300 Subject: =?ISO-8859-1?Q?Re:__Re:_Tomar_informaci=F3n_?= =?ISO-8859-1?Q?de_un_archivo_y_mostrarlo_gr=E1ficamente?= In-Reply-To: References: <85f5e1fe0702140417h20b026b0j3757f1a615b66c8a@mail.gmail.com> Message-ID: <85f5e1fe0702140723o12fede0epc0e5f49167733a13@mail.gmail.com> Uso esa librería para los gráficos. Problemas no hay ni uno, el problema es mío que no sé como hacerlo nada mas.... El día 14/02/07, Gabriel Genellina escribió: > > En Wed, 14 Feb 2007 09:17:52 -0300, Maria Eugenia Ferrero > escribió: > > > la idea es que esa información > > que me van arrojando en realidad yo plasmarla gráficamente, con un > > histograma, gráfico de barra, o algo así... pero no sé cómo hacer para > > que > > "esa información yo poder mostrarla gráficamente". > > No sé si me he dado a entender, pero quisiera si alguien me puede pasar > > alguna página, tutorial o lo que sea para que yo lo lea porque busque en > > internet (y se ve que no muy bien) porque no encontré nada. > > Yo trabajo con matplotlib y Tkinter, no sé si alguien me podrá dar la > > mano, > > pero les agradeceré, muchas gracias, hasta la próxima!!! > > La verdad que no entiendo del todo la cuestion... "Yo trabajo con > matplotlib" - que problema hay en usarlo para generar todos los graficos > que quieras? > > -- > Gabriel Genellina > > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > > From gerardo en computo-industrial.com.mx Wed Feb 14 17:02:11 2007 From: gerardo en computo-industrial.com.mx (Gerardo Juarez) Date: Wed, 14 Feb 2007 11:02:11 -0500 (EST) Subject: =?ISO-8859-1?Q?Re:__Re:_Tomar_informaci=F3n_?= =?ISO-8859-1?Q?de_un_archivo_y_mostrarlo_gr=E1ficamente?= In-Reply-To: <85f5e1fe0702140723o12fede0epc0e5f49167733a13@mail.gmail.com> References: <85f5e1fe0702140723o12fede0epc0e5f49167733a13@mail.gmail.com> Message-ID: Tal vez te convenga visitar http://www.uselesspython.com. Hay varios tutoriales, pero principalmente programas sencillos cuyos fuentes puedes consultar para ver como hicieron tal o cual cosa. saludos Gerardo On Wed, 14 Feb 2007, Maria Eugenia Ferrero wrote: > Uso esa librería para los gráficos. Problemas no hay ni uno, el problema es > mío que no sé como hacerlo nada mas.... > > El día 14/02/07, Gabriel Genellina escribió: > > > > En Wed, 14 Feb 2007 09:17:52 -0300, Maria Eugenia Ferrero > > escribió: > > > > > la idea es que esa información > > > que me van arrojando en realidad yo plasmarla gráficamente, con un > > > histograma, gráfico de barra, o algo así... pero no sé cómo hacer para > > > que > > > "esa información yo poder mostrarla gráficamente". > > > No sé si me he dado a entender, pero quisiera si alguien me puede pasar > > > alguna página, tutorial o lo que sea para que yo lo lea porque busque en > > > internet (y se ve que no muy bien) porque no encontré nada. > > > Yo trabajo con matplotlib y Tkinter, no sé si alguien me podrá dar la > > > mano, > > > pero les agradeceré, muchas gracias, hasta la próxima!!! > > > > La verdad que no entiendo del todo la cuestion... "Yo trabajo con > > matplotlib" - que problema hay en usarlo para generar todos los graficos > > que quieras? > > > > -- > > Gabriel Genellina > > > > > > _______________________________________________ > > Python-es mailing list > > Python-es en aditel.org > > http://listas.aditel.org/listinfo/python-es > > > > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From rolandojtorres en gmail.com Wed Feb 14 17:20:17 2007 From: rolandojtorres en gmail.com (=?UTF-8?Q?Rolando_Jos=C3=A9_Torres_S=C3=A1nchez?=) Date: Wed, 14 Feb 2007 11:20:17 -0500 Subject: =?UTF-8?Q?Re:__Re:_Tomar_informaci=C3=B3n_?= =?UTF-8?Q?de_un_archivo_y_mostrarlo_gr=C3=A1ficamente?= In-Reply-To: References: <85f5e1fe0702140723o12fede0epc0e5f49167733a13@mail.gmail.com> Message-ID: <6a39a1d0702140820xd60c607o7f325646076aada5@mail.gmail.com> Maria Eugenia podrias enviarme el codigo que llevas escrito, pues hace unas semanas vengo programando en TCL y ya no me acuerdo nada de python. Si tienes el ultimo que te envie que era como una barrita con botones de colores, te lo agradeceria, para implementarle una funcion sencilla que hace graficas de barras simples. O mejor te envio el codigo de TCL y tu lo conviertes a pyhton. ---------- Rolando José Torres Sánchez TCL/TK inside Python MSN:rolandojtorres en hotmail.com ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From elizundia en fitbak.com Wed Feb 14 17:38:00 2007 From: elizundia en fitbak.com (Ekaitz Lizundia) Date: Wed, 14 Feb 2007 17:38:00 +0100 Subject: Abrir ventanas Message-ID: <45D33AE8.9080900@fitbak.com> Saludos a todos, ¿Alguien sabe como se hace en Tkinter para abrir ventanas en la misma ventana, es decir, sin abrir una ventana nueva. Yo hago con Toplevel, pero me abre una ventana nueva, manteniendo la anterior. Lo que quiero es que se abra en la misma ventana. Gracias From camontuyu en yahoo.es Wed Feb 14 20:00:36 2007 From: camontuyu en yahoo.es (camontuyu) Date: Wed, 14 Feb 2007 20:00:36 +0100 Subject: python y referencias a =?iso-8859-1?q?m=E9todos?= Message-ID: <45D35C54.6020602@yahoo.es> Hola, tengo la siguientes duda y no se si es posible realizar lo que tengo en mente. Sería lo siguiente: Tengo una clase. class A: nombre = "" apellidos = "" ins = A() ahora tengo una diccionario que debería guarda referencia a las variables de clase de la instacia en concreto accion = {'nombre': ins.nombre, 'apellidos': ins.apellidos} para luego hacer: accion['nombre'] = "Pepito Perez" print ins.nombre # Pepito Perez Se debería modificar el valor del objeto, no del contenido del diccionario. ¿es posible hacer algo por el estilo? Saludos. ______________________________________________ LLama Gratis a cualquier PC del Mundo. Llamadas a fijos y móviles desde 1 céntimo por minuto. http://es.voice.yahoo.com From fidita48 en hotmail.com Wed Feb 14 20:59:43 2007 From: fidita48 en hotmail.com (=?iso-8859-1?B?SWRvaWEgVmlsbGFjaeFuIFrhcmF0ZQ==?=) Date: Wed, 14 Feb 2007 20:59:43 +0100 Subject: Hola Message-ID: Buenas: Soy nueva en el mundo Python y la verdad es que no controlo mucho sobre esto.Para empezar estoy configurando mi Apache con mod_python,hasta ahora me iba todo bien,pero en el momento que he puesto esto en el archivo de configuracion,me ha dado un error. SetHandler mod_python PythonHandler mod_python.publisher PythonDebug On AddHandler mod_python.psp PythonHandler mod_python.psp PythonDebug On El error es este: Invalid command PythonHandler perhaps mis-spelled or defined by a module not included in the server configuration. Si me podeis contar porque es,que hago mal y que es lo que debo hacer os lo agradeceria,gracias. _________________________________________________________________ Acepta el reto MSN Premium: Envía hasta 500 megas diarios de fotos desde Hotmail. [1]Descárgalo y pruébalo 2 meses gratis. References 1. http://g.msn.com/8HMAESES/2743??PS=47575 From afelipe.listas en gmail.com Wed Feb 14 21:25:07 2007 From: afelipe.listas en gmail.com (Anselmo Felipe) Date: Wed, 14 Feb 2007 12:25:07 -0800 Subject: Hola In-Reply-To: References: Message-ID: <45D37023.1050604@gmail.com> Hola, prueba a cambiar: > SetHandler mod_python > por: SetHandler mod_python.publisher es posible que el fallo este ahi. Anselmo From arnau en ehas.org Wed Feb 14 21:42:29 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Wed, 14 Feb 2007 21:42:29 +0100 Subject: python y referencias a =?ISO-8859-1?Q?m=E9todos?= In-Reply-To: <45D35C54.6020602@yahoo.es> References: <45D35C54.6020602@yahoo.es> Message-ID: <45D37435.5070903@ehas.org> camontuyu escribió: > Tengo una clase. > > class A: > nombre = "" > apellidos = "" > > ins = A() > > ahora tengo una diccionario que debería guarda referencia a las > variables de clase de la instacia en concreto > > accion = {'nombre': ins.nombre, 'apellidos': ins.apellidos} > > para luego hacer: > > accion['nombre'] = "Pepito Perez" > print ins.nombre > # Pepito Perez Uf, ¿no lo estás complicando innecesariamente creando un diccionario y una instancia que contienen la misma información? yo me quedaría sólo con uno de ellos, en este caso con la instancia. No se recomienda usar diccionarios para este tipo de estructuras, donde las claves son fijas y conocidas. Duele menos a la vista un registro.campo que registro["campo"]. A veces, es cierto, es necesario acceder a la estructura como si ésta fuera un diccionario (para extraer todos sus campos, por ejemplo). De las muchas alternativas para implementarlo, por su sencillez me quedaría con los Structs que propone P.Norvig en sus IAQ sobre Python: http://norvig.com/python-iaq.html (pregunta: "Is there a similar shortcut for objects?" y siguientes) Todo esto dicho sin saber exactamente qué quieres hacer, quizá no te sirva. From camontuyu en yahoo.es Wed Feb 14 22:35:35 2007 From: camontuyu en yahoo.es (camontuyu) Date: Wed, 14 Feb 2007 22:35:35 +0100 Subject: python y referencias a =?ISO-8859-1?Q?m=E9todos?= In-Reply-To: <45D37435.5070903@ehas.org> References: <45D35C54.6020602@yahoo.es> <45D37435.5070903@ehas.org> Message-ID: <45D380A7.20003@yahoo.es> Todo esto viene por que desde una página web hace una llamada a una función del tipo (a grandes rasgos) def set(id, campo, value): u = Usuario(id) if campo == 'nombre': u.nombre = value elif campo == 'apellidos': u.apellidos = value else: error de esta forma se me ocurrió definir en un diccionario todos los posibles campos que se pueden modificar del objeto, de esta forma la función quedaría algo así. def set(id, campo, value): u = Usuario(id) accion = {'nombre': u.nombre, 'apellidos': u.apellidos} if accion.has_key(campo): accion[campo] = value: else: error No se, rayadas de cabeza. Se puede hacer de muchas formas, pero pensando en esto, me ha surgido la duda si se podría realizar este tipo de operaciones con los diccionarios. Saludos Arnau Sanchez escribió: > camontuyu escribió: > >> Tengo una clase. >> >> class A: >> nombre = "" >> apellidos = "" >> >> ins = A() >> >> ahora tengo una diccionario que debería guarda referencia a las >> variables de clase de la instacia en concreto >> >> accion = {'nombre': ins.nombre, 'apellidos': ins.apellidos} >> >> para luego hacer: >> >> accion['nombre'] = "Pepito Perez" >> print ins.nombre >> # Pepito Perez > > Uf, ¿no lo estás complicando innecesariamente creando un diccionario y > una instancia que contienen la misma información? yo me quedaría sólo > con uno de ellos, en este caso con la instancia. No se recomienda usar > diccionarios para este tipo de estructuras, donde las claves son fijas > y conocidas. Duele menos a la vista un registro.campo que > registro["campo"]. > > A veces, es cierto, es necesario acceder a la estructura como si ésta > fuera un diccionario (para extraer todos sus campos, por ejemplo). De > las muchas alternativas para implementarlo, por su sencillez me > quedaría con los Structs que propone P.Norvig en sus IAQ sobre Python: > > http://norvig.com/python-iaq.html > > (pregunta: "Is there a similar shortcut for objects?" y siguientes) > > Todo esto dicho sin saber exactamente qué quieres hacer, quizá no te > sirva. > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > ______________________________________________ LLama Gratis a cualquier PC del Mundo. Llamadas a fijos y móviles desde 1 céntimo por minuto. http://es.voice.yahoo.com From arnau en ehas.org Wed Feb 14 23:09:08 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Wed, 14 Feb 2007 23:09:08 +0100 Subject: python y referencias a =?ISO-8859-1?Q?m=E9todos?= In-Reply-To: <45D380A7.20003@yahoo.es> References: <45D35C54.6020602@yahoo.es> <45D37435.5070903@ehas.org> <45D380A7.20003@yahoo.es> Message-ID: <45D38884.5090404@ehas.org> camontuyu escribió: > Todo esto viene por que desde una página web hace una llamada a una > función del tipo (a grandes rasgos) > > def set(id, campo, value): > u = Usuario(id) > if campo == 'nombre': > u.nombre = value > elif campo == 'apellidos': > u.apellidos = value > else: > error Eso ya es otra cosa, ahora sí se ve qué quieres hacer. Puedes probar con: def set(id, campo, value): u = Usuario(id) setattr(u, campo, value) Faltaría comprobar que la clase Usuario realmente entiende el campo. Una forma muy elegante sería usando los slots de las nuevas clases (las que derivan de object): >>> class Usuario(object): ... __slots__ = ["nombre", "apellido"] ... >>> u = Usuario() >>> u.nombre = "pedro" >>> u.desconocido = "aaaa" Traceback (most recent call last): File "", line 1, in ? AttributeError: 'Usuario' object has no attribute 'desconocido' From rafaelcantos en hotmail.com Thu Feb 15 00:22:34 2007 From: rafaelcantos en hotmail.com (Rafael Cantos) Date: Wed, 14 Feb 2007 23:22:34 +0000 Subject: Hola In-Reply-To: <20070214200013.92FDC144E23A@devnull.aditel.org> References: <20070214200013.92FDC144E23A@devnull.aditel.org> Message-ID: > Buenas: Hola > > Soy nueva en el mundo Python y la verdad es que no controlo mucho > sobre esto. Bienvenida al clubb de los nobatos..... Para empezar estoy configurando mi Apache con > mod_python,hasta ahora me iba todo bien,pero en el momento que he > puesto esto en el archivo de configuracion,me ha dado un error. > > Group/Apache2/cgi-bin/python"> > > SetHandler mod_python > > PythonHandler mod_python.publisher > > PythonDebug On > > > > > > > AddHandler mod_python.psp > > PythonHandler mod_python.psp > > PythonDebug On > > > > > El error es este: > > > Invalid command PythonHandler perhaps mis-spelled or defined by a > module not included in the server configuration. > > > Si me podeis contar porque es,que hago mal y que es lo que debo hacer > os lo agradeceria,gracias. Pues mira, con lo poco que sé creo que está mal en la ruta las barras de directorio, que sería así: Group\\Apache2\\cgi-bin\\python" En algun ilo anterior venía esto mismo, pero cualquiera de los expertos que hay por aquí te lo dirán mejor que yo, pero bueno, a ver si he servido un poco de ayuda..... Saludos Rafa _________________________________________________________________ Un amor, una aventura, compañía para un viaje. Regístrate gratis en MSN Amor & Amistad. http://match.msn.es/match/mt.cfm?pg=channel&tcid=162349 From oscar en jornada.com.mx Thu Feb 15 06:23:41 2007 From: oscar en jornada.com.mx (Oscar de Anda) Date: Wed, 14 Feb 2007 23:23:41 -0600 Subject: archivo de =?iso-8859-1?q?configuraci=F3n?= Message-ID: <45D3EE5D.2090009@jornada.com.mx> hola a tod en s Estoy trabajando en un programa para generar feeds rss a partir de archivos xml. Este programa quiero que funcione para varios sitios por lo que quisiera tener un archivo de configuración para cada uno de ellos en donde se indique la url, la ubicación física de los archivos xml, las secciones que tiene, entre otras cosas. Mi intencion es agregar una linea en el crontab que ejecute el programa con un parámetro que le indique que archivo de configuracion utilizar. Alguien sabe como puedo hacer esto, intente creando un archivo config.py que incluye únicamente las variables y sus valores; esperaba que al importarlo desde mi programa, este reconociera las variables pero no fue asi. Saludos. From rvr en infoastro.com Thu Feb 15 06:30:21 2007 From: rvr en infoastro.com (=?ISO-8859-1?Q?V=EDctor_R._Ruiz?=) Date: Thu, 15 Feb 2007 05:30:21 +0000 Subject: =?ISO-8859-1?Q?Re:__archivo_de_configuraci=F3n?= In-Reply-To: <45D3EE5D.2090009@jornada.com.mx> References: <45D3EE5D.2090009@jornada.com.mx> Message-ID: <560aa1c20702142130s5793d0a4xc6ac1be62e59dde6@mail.gmail.com> Hola: El 15/02/07, Oscar de Anda escribió: > Este programa quiero que funcione para varios sitios por lo que quisiera > tener un archivo de configuración para cada uno de ellos en donde se > indique la url, la ubicación física de los archivos xml, las secciones > que tiene, entre otras cosas. Échale un vistazo a ConfigParser: http://docs.python.org/lib/module-ConfigParser.html Saludetes, -- Víctor R. Ruiz http://infoastro.com/rvr From bameda en gmail.com Thu Feb 15 09:21:42 2007 From: bameda en gmail.com (bameda) Date: Thu, 15 Feb 2007 09:21:42 +0100 Subject: =?ISO-8859-1?Q?Re:__archivo_de_configuraci=F3n?= In-Reply-To: <560aa1c20702142130s5793d0a4xc6ac1be62e59dde6@mail.gmail.com> References: <45D3EE5D.2090009@jornada.com.mx> <560aa1c20702142130s5793d0a4xc6ac1be62e59dde6@mail.gmail.com> Message-ID: archivo de configuracion (config): VARIABLE='valor' en tu codigo: if os.path.exists("./config"): execfile("./config") print VARIABLE El 15/02/07, Víctor R. Ruiz escribió: > Hola: > > El 15/02/07, Oscar de Anda escribió: > > Este programa quiero que funcione para varios sitios por lo que quisiera > > tener un archivo de configuración para cada uno de ellos en donde se > > indique la url, la ubicación física de los archivos xml, las secciones > > que tiene, entre otras cosas. > > Échale un vistazo a ConfigParser: > http://docs.python.org/lib/module-ConfigParser.html > > Saludetes, > > -- > Víctor R. Ruiz > http://infoastro.com/rvr > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > -- ____________________________________________ | | David Barragán Merino | E-mail: bameda en ARROBA@gmail.com | Ingeniería Informática | Universidad Carlos III Madrid |____________________________________________ From cgalisteo en k-rolus.net Thu Feb 15 09:23:07 2007 From: cgalisteo en k-rolus.net (Carlos Galisteo de Cabo) Date: Thu, 15 Feb 2007 09:23:07 +0100 Subject: archivo de =?iso-8859-1?b?Y29uZmlndXJhY2nzbg==?= In-Reply-To: <45D3EE5D.2090009@jornada.com.mx> References: <45D3EE5D.2090009@jornada.com.mx> Message-ID: <20070215092307.fuvpfs28w84gg48k@k-rolus.net> Quoting Oscar de Anda : > Alguien sabe como puedo hacer esto, intente creando un archivo > config.py que incluye >únicamente las variables y sus valores; > esperaba que al importarlo desde mi programa, >este reconociera las > variables pero no fue asi. Eso debería funcionar. ¿Como lo estas importando? --- Carlos Galisteo http://blog.k-rolus.net PGP_key::http://k-rolus.net/~cgalisteo/cgalisteo.gpg Key_Fingerprint::F888 6FBA 9145 B5A2 C187 66D6 5B8C 027A 69AD BE65 --- From pych3m4 en gmail.com Thu Feb 15 09:28:07 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Thu, 15 Feb 2007 09:28:07 +0100 Subject: Abrir ventanas In-Reply-To: <45D33AE8.9080900@fitbak.com> References: <45D33AE8.9080900@fitbak.com> Message-ID: <2c9fb0dd0702150028k78309bddu17bdea891a248b59@mail.gmail.com> El 14/02/07, Ekaitz Lizundia escribió: > ¿Alguien sabe como se hace en Tkinter para abrir ventanas en la misma > ventana, es decir, sin abrir una ventana nueva. Yo hago con Toplevel, > pero me abre una ventana nueva, manteniendo la anterior. Lo que quiero > es que se abra en la misma ventana. Si te refieres a crear un interface MDI (Multiple Document), no se puede en Tkinter. Como mucho podrías crear tabulados (TDI) o con pestañas. Te recomiendo que te pases a wxpython. From alvaro.sanchez.ramirez en gmail.com Thu Feb 15 11:45:03 2007 From: alvaro.sanchez.ramirez en gmail.com (Alvaro Sanchez Ramirez) Date: Thu, 15 Feb 2007 11:45:03 +0100 Subject: Problema con ventanas Message-ID: Hola !!! Lo primero de todo saludar a todo el mundo (es mi primer mensaje). Mi pregunta es: Tengo un programa con un par de ventanas generadas por glade y lo que me gustaría es que una la otra apareciese dependiendo de un checkbutton de la primera, mientras aparece la segunda ventana (que tiene una progress_bar) en otro hilo voy copiando unos archivos. Mi problema es que al hacer un show a la segunda ventana el programa se queda parado ... y no continua. He escondido la primera ventana pero se ha quedado parado. También he probado (por si acaso) a poner después del show() un gtk.main_iteration() pero hace lo mismo ... alguna sugerencia? Thanx ! From cervera en ffn.ub.es Thu Feb 15 13:07:53 2007 From: cervera en ffn.ub.es (Pau Cervera Badia) Date: Thu, 15 Feb 2007 13:07:53 +0100 Subject: zip y generadores Message-ID: <45D44D19.2010104@ffn.ub.es> Hola, tengo que leer unos fixeros bastante largos, con lo que hize un generador ----------------------- ------------------------------------- def frames(fitxer, nparticules): counter = 0 frame_info = "" for line in open(fitxer).readlines()[1:]: if not counter % 2 == 0: frame = line.split(":")[1:-1] frame = [tuple(map(float, tuple(chunk.split()))) \ for chunk in frame] yield frame_info, frame[:nparticules] else: frame_info = line counter = counter + 1 ----------------------- ------------------------------------ que basicamente me volca el arxivo en un par de tuplas, cada vez que lo llamo. Si lo llamo como por ejemplo en, ----------------------- ------------------------------------- for frame_info, posicions in frames(fitxer, sys_info.sys_size): title = "frame: %s t = %s" % tuple(frame_info.split()) g("set title '%s'" % title) g.plot(Gnuplot.Data(posicions)) ----------------------- ------------------------------------ no tengo ningún problema y va bastante rápido. El problema es que quiero iterar sobre pares de ficheros, como en: ----------------------- ------------------------------------- for frame_posicions1, frame_posicions2 in \ zip(frames(fitxer, sys_info.sys_size), \ frames(fitxer2, sys_info.sys_size)): frame_info, posicions1 = frame_posicions1 frame_info, posicions2 = frame_posicions2 title = "frame: %s t = %s" % tuple(frame_info.split()) g("set title '%s'" % title) g.plot(posicions1, posicions2) ----------------------- ------------------------------------ Pensava que no me funcionava, pero parece que el problema está en *zip*, que tinene que generar la nueva lista antes que el *for* pueda ir iterando sobre ella. Hay alguna forma de acceder a estos pares sin tener que genear una nueva lista, que puede ser muy grande? Me estoy dejando algo, seguro. Grácias, -- Pau Cervera i Badia (e-mail cervera en ffn.ub.es) { Departament de Física Fonamental Martí i Franqués, 1 Universitat de Barcelona Planta 3, despatx 346 bis 08028 Barcelona tel: +34 934 921 155 Spain "Simple things should be simple, complex things should be possible." -- Alan Kay return http://www.ffn.ub.es/%7Ecervera/ } ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From py en ch3m4.org Thu Feb 15 13:14:43 2007 From: py en ch3m4.org (Chema Cortes) Date: Thu, 15 Feb 2007 13:14:43 +0100 Subject: zip y generadores In-Reply-To: <45D44D19.2010104@ffn.ub.es> References: <45D44D19.2010104@ffn.ub.es> Message-ID: <45D44EB3.4030303@ch3m4.org> Pau Cervera Badia escribió: > Pensava que no me funcionava, pero parece que el problema está en *zip*, > que tinene que generar la nueva lista antes que el *for* pueda ir > iterando sobre ella. > > Hay alguna forma de acceder a estos pares sin tener que genear una nueva > lista, que puede ser muy grande? Me estoy dejando algo, seguro. from itertools import izip -- Chema Cortés (py en ch3m4.org) "Proudly made on earth by generic humanoid carbon units" ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From manel en nosotrosmismos.org Thu Feb 15 13:31:28 2007 From: manel en nosotrosmismos.org (Manel Cebolla) Date: Thu, 15 Feb 2007 13:31:28 +0100 Subject: archivo de =?utf-8?b?Y29uZmlndXJhY2nDs24=?= In-Reply-To: <20070215092307.fuvpfs28w84gg48k@k-rolus.net> References: <45D3EE5D.2090009@jornada.com.mx> <20070215092307.fuvpfs28w84gg48k@k-rolus.net> Message-ID: <20070215133128.6lteanod36kgks0c@webmail.nosotrosmismos.org> cat a.py a=1 b=2 c="hola" ipython In [1]: import a In [2]: print a.a, a.b, a.c 1 2 hola Quoting Carlos Galisteo de Cabo : > Quoting Oscar de Anda : > >> Alguien sabe como puedo hacer esto, intente creando un archivo >> config.py que incluye >únicamente las variables y sus valores; >> esperaba que al importarlo desde mi programa, >este reconociera las >> variables pero no fue asi. > > Eso debería funcionar. ¿Como lo estas importando? > > > > > --- > Carlos Galisteo > http://blog.k-rolus.net > PGP_key::http://k-rolus.net/~cgalisteo/cgalisteo.gpg > Key_Fingerprint::F888 6FBA 9145 B5A2 C187 66D6 5B8C 027A 69AD BE65 > --- > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From rolandojtorres en gmail.com Thu Feb 15 13:38:05 2007 From: rolandojtorres en gmail.com (=?UTF-8?Q?Rolando_Jos=C3=A9_Torres_S=C3=A1nchez?=) Date: Thu, 15 Feb 2007 07:38:05 -0500 Subject: Abrir ventanas In-Reply-To: <2c9fb0dd0702150028k78309bddu17bdea891a248b59@mail.gmail.com> References: <45D33AE8.9080900@fitbak.com> <2c9fb0dd0702150028k78309bddu17bdea891a248b59@mail.gmail.com> Message-ID: <6a39a1d0702150438tf500d0aldd7c5e0ee7c9fe6f@mail.gmail.com> Como tkinter no se puede, aunque podrias hacer eventos para mover dentro de la ventana padre y para redimensionar los toplevel, y luego quitarles el borde de ventana de cada toplevel con wm withdraw. Hay mas información en: http://wiki.tcl.tk/2?Q=MDI El 15/02/07, Chema Cortes escribió: > El 14/02/07, Ekaitz Lizundia escribió: > > > ¿Alguien sabe como se hace en Tkinter para abrir ventanas en la misma > > ventana, es decir, sin abrir una ventana nueva. Yo hago con Toplevel, > > pero me abre una ventana nueva, manteniendo la anterior. Lo que quiero > > es que se abra en la misma ventana. > > Si te refieres a crear un interface MDI (Multiple Document), no se > puede en Tkinter. Como mucho podrías crear tabulados (TDI) o con > pestañas. Te recomiendo que te pases a wxpython. > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > -- Rolando José Torres Sánchez TCL/TK inside Python MSN:rolandojtorres en hotmail.com ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From rafaelcantos en hotmail.com Thu Feb 15 14:12:44 2007 From: rafaelcantos en hotmail.com (Rafael Cantos) Date: Thu, 15 Feb 2007 13:12:44 +0000 Subject: Python en Windows Message-ID: Hola a todos Normalmente estoy probando python con pygtk bajo Windows. Cuando quiero ejecutar algun guión, simpolemente ejecuto el fichero con python y normalmente suele funcionar. Ahora bien, si se produce algun error el programita se cierra automáticmente y no se ve ni el error. tampoco, claro, puedo pasarle argumentos. ¿Cómo puedo ejecutar un fichero desde la línea de comandos de python en windows? He probado a situarlo dentro de la carpeta python25, o en alguna interna, pero cuando escribo el nombre del fichero en la línea de comandos dice que no existe. Además, siempre me sale de fondo la línea de comandos. si yo quiero que esta no salga, ya que se supone que es una interfaz gráfica, que puedo hacer? gracias a todos! Rafa _________________________________________________________________ Acepta el reto MSN Premium: Protección para tus hijos en internet. Descárgalo y pruébalo 2 meses gratis. http://join.msn.com?XAPID=1697&DI=1055&HL=Footer_mailsenviados_proteccioninfantil From cervera en ffn.ub.es Thu Feb 15 14:53:50 2007 From: cervera en ffn.ub.es (Pau Cervera Badia) Date: Thu, 15 Feb 2007 14:53:50 +0100 Subject: zip y generadores In-Reply-To: <45D44EB3.4030303@ch3m4.org> References: <45D44D19.2010104@ffn.ub.es> <45D44EB3.4030303@ch3m4.org> Message-ID: <45D465EE.7000303@ffn.ub.es> Genial! ;-) Disculpas por preguntar antes de mirar TFM! Chema Cortes wrote: > Pau Cervera Badia escribió: > > >> Pensava que no me funcionava, pero parece que el problema está en *zip*, >> que tinene que generar la nueva lista antes que el *for* pueda ir >> iterando sobre ella. >> >> Hay alguna forma de acceder a estos pares sin tener que genear una nueva >> lista, que puede ser muy grande? Me estoy dejando algo, seguro. >> > > from itertools import izip > > > > ------------------------------------------------------------------------ > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > -- Pau Cervera i Badia (e-mail cervera en ffn.ub.es) { Departament de Física Fonamental Martí i Franqués, 1 Universitat de Barcelona Planta 3, despatx 346 bis 08028 Barcelona tel: +34 934 921 155 Spain "Simple things should be simple, complex things should be possible." -- Alan Kay return http://www.ffn.ub.es/%7Ecervera/ } ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From gagsl-py en yahoo.com.ar Thu Feb 15 15:26:58 2007 From: gagsl-py en yahoo.com.ar (Gabriel Genellina) Date: Thu, 15 Feb 2007 11:26:58 -0300 Subject: =?iso-8859-15?q?python_y_referencias_a_m=E9todos?= References: <45D35C54.6020602@yahoo.es> <45D37435.5070903@ehas.org> <45D380A7.20003@yahoo.es> Message-ID: En Wed, 14 Feb 2007 18:35:35 -0300, camontuyu escribió: > Todo esto viene por que desde una página web hace una llamada a una > función del tipo (a grandes rasgos) > > def set(id, campo, value): > u = Usuario(id) > if campo == 'nombre': > u.nombre = value > elif campo == 'apellidos': > u.apellidos = value > else: > error setattr(u, campo, value) -- Gabriel Genellina ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From gagsl-py en yahoo.com.ar Thu Feb 15 15:33:25 2007 From: gagsl-py en yahoo.com.ar (Gabriel Genellina) Date: Thu, 15 Feb 2007 11:33:25 -0300 Subject: Python en Windows References: Message-ID: En Thu, 15 Feb 2007 10:12:44 -0300, Rafael Cantos escribió: > Normalmente estoy probando python con pygtk bajo Windows. > Cuando quiero ejecutar algun guión, simpolemente ejecuto el fichero con > python y normalmente suele funcionar. > Ahora bien, si se produce algun error el programita se cierra > automáticmente y no se ve ni el error. Primero abrir una consola, y desde ahi lanzar el programa; los errores van a quedar en la consola abierta. > tampoco, claro, puedo pasarle argumentos. ¿Cómo puedo ejecutar un > fichero desde la línea de comandos de python en windows? He probado a > situarlo dentro de la carpeta python25, o en alguna interna, pero cuando > escribo el nombre del fichero en la línea de comandos dice que no existe. python loquesea.py ar gu mentos > Además, siempre me sale de fondo la línea de comandos. si yo quiero que > esta no salga, ya que se supone que es una interfaz gráfica, que puedo > hacer? pythonw loquesea.py -- Gabriel Genellina ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From jileon en parcan.es Thu Feb 15 16:00:59 2007 From: jileon en parcan.es (Juan Ignacio Rodriguez de Leon) Date: Thu, 15 Feb 2007 15:00:59 +0000 Subject: [Python 2.5] Otros cambios en el lenguaje Message-ID: <45D475AB.5010802@parcan.es> He puesto en mi blog un nuevo capítulo de la traducción que estoy haciendo del *What's new in Python 2.5*. En este caso se hablará de los cambios introducidos en el núcleo del lenguaje en sí. El próximo (Y aun más extenso bloque) versará sobre otros cambios en la librería estandar. El enlace es: O en versión corta: He tardado bastante con este apartado, la razón, para el que le interese, aquí: Como siempre, se agradece cualquier comentario, ayuda, sugerencia e inclusive insultos y descalificaciones personales, ya sea en la pagina o en esta lista. From sonajadiabolica en gmail.com Thu Feb 15 16:37:44 2007 From: sonajadiabolica en gmail.com (aNgel rEsendiz g.) Date: Thu, 15 Feb 2007 09:37:44 -0600 Subject: =?ISO-8859-1?Q?Re:__archivo_de_configuraci=F3n?= In-Reply-To: <45D3EE5D.2090009@jornada.com.mx> References: <45D3EE5D.2090009@jornada.com.mx> Message-ID: <8d9e208f0702150737n472c77cdgd7e673c1614f3a25@mail.gmail.com> > ntente creando un archivo config.py > que incluye únicamente las variables y sus valores; esperaba que al > importarlo desde mi programa, este reconociera las variables pero no fue > asi. > Debe funcionar, tal vez estas olvidando anteponer el nombre del modulo (o fichero de configuración), o también podrias importar todo con * , podria ser algo así: config.py ------------------- #!/usr/bin/python var1=1 var2=2 var3=3 -------------------- miprograma.py ---------------------- #!/usr/bin/python import config print config.var1 print config.var2 .... ó puedes hacerlo así: #!/usr/bin/python from config import * print var1 print var2 ...etc Saludos -- aNgel rEsendiz.! From manel en nosotrosmismos.org Thu Feb 15 16:32:31 2007 From: manel en nosotrosmismos.org (Manel Cebolla) Date: Thu, 15 Feb 2007 16:32:31 +0100 Subject: [Python 2.5] Otros cambios en el lenguaje In-Reply-To: <45D475AB.5010802@parcan.es> References: <45D475AB.5010802@parcan.es> Message-ID: <20070215163231.q7jde3g7qygwgskk@webmail.nosotrosmismos.org> Enhorabuena por todo!!!, principalmente por lo último. Quoting Juan Ignacio Rodriguez de Leon : > He puesto en mi blog un nuevo capítulo de la traducción que estoy > haciendo del *What's new in Python 2.5*. En este caso se hablará de > los cambios introducidos en el núcleo del lenguaje en sí. El > próximo (Y aun más extenso bloque) versará sobre otros cambios en > la librería estandar. > > El enlace es: > > > > O en versión corta: > > > > He tardado bastante con este apartado, la razón, para el que le > interese, aquí: > > > > Como siempre, se agradece cualquier comentario, ayuda, sugerencia e > inclusive insultos y descalificaciones personales, ya sea en la > pagina o en esta lista. > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From kh_alatar en telefonica.net Thu Feb 15 16:34:47 2007 From: kh_alatar en telefonica.net (Alatar) Date: Thu, 15 Feb 2007 16:34:47 +0100 Subject: =?UTF-8?B?UmU6IFtQeXRob24tZXNdIFV0aWxpZGFkIGRlIGNvcnJlbyAocHJvYmw=?= =?UTF-8?B?ZW1hIGNvbiBpbcOhZ2VuZXMgZW4gaHRtbCk=?= In-Reply-To: <45D25427.80501@telefonica.net> References: <45C20F1B.6070907@telefonica.net> <45C9DF9C.1050207@telefonica.net> <45D25427.80501@telefonica.net> Message-ID: <45D47D97.7040401@telefonica.net> Saludos, sigo sin encontrar qué puedo hacer. ¿Alguién se ha encontrado con este problema o puede ayudarme? Gracias. Alatar. Alatar escribió: > Hola a todos. > > Siguiendo el consejo de David, he encontrado todo lo necesario para > mandar correos usando el módulo email y smtplib. Me he hecho una > rutina para mandar correo en modo texto y html, con attachments y con > referencias a imágenes almacenadas en sitios web, y todo funciona > perfectamente. > > Sin embargo ahora me encuentro con el problema de que cuando quiero > embeber alguna imagen en el cuerpo del mensaje en formato html, ésta > se muestra deformada al recibirla. Es decir, ha perdido su relación de > aspecto original. ¿Alguien puede ayudarme y decirme qué puedo hacer > para solucionarlo? > > Este es el trozo de código que se encarga de embeber la o las imágenes > en el content-id: > (como parámetro le paso una lista con todas las imágenes a embeber) > > > #Añadimos las imágenes embebidas > for imagen in pm_imagenes_embebidas: > #Cargar imagen > archivo_imagen = open(imagen, 'rb') > msgImage = MIMEImage(archivo_imagen.read()) > archivo_imagen.close() > #Adjuntar imagen en el content-id. > #En el archivo html se debe hacer referencia al content-id > #como fuente en el source de la imagen, por ejemplo: > # > msgImage.add_header('Content-ID', '<' + imagen + '>') > msgRaiz.attach(msgImage) > > Gracias de antemano, > > Alatar > > P.D.: He usado imágenes en formato .jpg en mis puebas > > ------------------------------------------------------------------------------------------------- > > Alatar escribió: >> Gracias David, voy a echarle un vistazo ;) >> Un saludo, >> >> Alatar >> >> David Asorey Álvarez escribió: >>>> [...] ¿podría desarrollar alguna utilidad mediante python que >>>> me permita tomar por ejemplo un archivo de texto con todas las >>>> direcciones electrónicas a las que debo enviar el mensaje y >>>> enviarles a >>>> cada una de ellas el mismo? (yo desde luego preferiría esta última >>>> opción). >>> >>> Yo optaría por hacerme un pequeño programa. Está la librería smtplib: >>> http://docs.python.org/lib/module-smtplib.html >>> Ejemplo: >>> http://www.python.org/doc/lib/SMTP-example.html >>> >>> El tema ya se ha comentado otras veces en la lista: >>> http://www.google.es/search?q=mandar+un+correo+site%3Ahttp%3A%2F%2Flistas.aditel.org%2Farchivos%2Fpython-es%2F >>> >> >> _______________________________________________ >> Python-es mailing list >> Python-es en aditel.org >> http://listas.aditel.org/listinfo/python-es >> > > ------------------------------------------------------------------------ > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From sonajadiabolica en gmail.com Thu Feb 15 16:59:54 2007 From: sonajadiabolica en gmail.com (aNgel rEsendiz g.) Date: Thu, 15 Feb 2007 09:59:54 -0600 Subject: =?ISO-8859-1?Q?Re:__Utilidad_de_corre?= =?ISO-8859-1?Q?o_(problema_con_im=E1genes_en_html)?= In-Reply-To: <45D47D97.7040401@telefonica.net> References: <45C20F1B.6070907@telefonica.net> <45C9DF9C.1050207@telefonica.net> <45D25427.80501@telefonica.net> <45D47D97.7040401@telefonica.net> Message-ID: <8d9e208f0702150759l16bf81b7j5406f84f512d234@mail.gmail.com> > > #Cargar imagen > > archivo_imagen = open(imagen, 'rb') > > msgImage = MIMEImage(archivo_imagen.read()) > > archivo_imagen.close() > > #Adjuntar imagen en el content-id. > > #En el archivo html se debe hacer referencia al content-id > > #como fuente en el source de la imagen, por ejemplo: > > # > > msgImage.add_header('Content-ID', '<' + imagen + '>') Tal vez te convenga tener la imagen en algún servidor y enlazarla en el html. , si estan viendo tu correo, deben tener acceso a internet. Incluso hay muchos sitios con servicios para alojar imágenes. Saludos. -- aNgel rEsendiz.! From jileon en parcan.es Thu Feb 15 17:17:40 2007 From: jileon en parcan.es (=?ISO-8859-1?Q?Juan_Ignacio_Rodr=EDguez_de_Le=F3n?=) Date: Thu, 15 Feb 2007 16:17:40 +0000 Subject: [Python 2.5] Otros cambios en el lenguaje In-Reply-To: <20070215163231.q7jde3g7qygwgskk@webmail.nosotrosmismos.org> References: <45D475AB.5010802@parcan.es> <20070215163231.q7jde3g7qygwgskk@webmail.nosotrosmismos.org> Message-ID: <45D487A4.6030103@parcan.es> Manel Cebolla escribió: > Enhorabuena por todo!!!, principalmente por lo último. > ¡Gracias! La verdad es que es una fuente de alegrías! Aunque cada vez que le cambio de pañales me recuerda mi trabajo :-) From cgalisteo en k-rolus.net Thu Feb 15 16:53:09 2007 From: cgalisteo en k-rolus.net (Carlos Galisteo de Cabo) Date: Thu, 15 Feb 2007 16:53:09 +0100 Subject: archivo de =?iso-8859-1?b?Y29uZmlndXJhY2nzbg==?= In-Reply-To: <20070215133128.6lteanod36kgks0c@webmail.nosotrosmismos.org> References: <45D3EE5D.2090009@jornada.com.mx> <20070215092307.fuvpfs28w84gg48k@k-rolus.net> <20070215133128.6lteanod36kgks0c@webmail.nosotrosmismos.org> Message-ID: <20070215165309.1quzdvcou84ow4og@k-rolus.net> Pues eso tiene buena pinta ¿no? ¿no es eso lo que querías? Quoting Manel Cebolla : > cat a.py > > a=1 > b=2 > c="hola" > > ipython > In [1]: import a > In [2]: print a.a, a.b, a.c > 1 2 hola --- Carlos Galisteo http://blog.k-rolus.net PGP_key::http://k-rolus.net/~cgalisteo/cgalisteo.gpg Key_Fingerprint::F888 6FBA 9145 B5A2 C187 66D6 5B8C 027A 69AD BE65 --- From kh_alatar en telefonica.net Thu Feb 15 17:51:29 2007 From: kh_alatar en telefonica.net (Alatar) Date: Thu, 15 Feb 2007 17:51:29 +0100 Subject: =?UTF-8?B?UmU6IFtQeXRob24tZXNdIFV0aWxpZGFkIGRlIGNvcnJlbyAocHJvYmw=?= =?UTF-8?B?ZW1hIGNvbiBpbcOhZ2VuZXMgZW4gaHRtbCk=?= In-Reply-To: <8d9e208f0702150759l16bf81b7j5406f84f512d234@mail.gmail.com> References: <45C20F1B.6070907@telefonica.net> <45C9DF9C.1050207@telefonica.net> <45D25427.80501@telefonica.net> <45D47D97.7040401@telefonica.net> <8d9e208f0702150759l16bf81b7j5406f84f512d234@mail.gmail.com> Message-ID: <45D48F91.9050901@telefonica.net> Gracias, Angel pero ya enlazo la mayoría de las imágenes (sobre todo las de más peso) a una web, y me funciona a la perfección. Sólo quiero poder embeberlas para casos muy concretos y és es la parte que todavía no me funciona correctamente por lo que he explicado anteriormente. De todas formas, Angel, te doy de nuevo las gracias por tomarte la molestia en contestarme. Un saludo, Alatar aNgel rEsendiz g. escribió: >> > #Cargar imagen >> > archivo_imagen = open(imagen, 'rb') >> > msgImage = MIMEImage(archivo_imagen.read()) >> > archivo_imagen.close() >> > #Adjuntar imagen en el content-id. >> > #En el archivo html se debe hacer referencia al content-id >> > #como fuente en el source de la imagen, por ejemplo: >> > # >> > msgImage.add_header('Content-ID', '<' + imagen + '>') > > > Tal vez te convenga tener la imagen en algún servidor y enlazarla en > el html. > , si estan viendo tu > correo, deben tener acceso a internet. Incluso hay muchos sitios con > servicios para alojar imágenes. > > Saludos. > ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From joana_mendaro en hotmail.com Thu Feb 15 19:36:28 2007 From: joana_mendaro en hotmail.com (joana salgado gomez) Date: Thu, 15 Feb 2007 18:36:28 +0000 Subject: interfaces graficas Message-ID: Hola [1]chic en s: Estoy implemetando una aplicacion en python, una especie de web. Necesito hacer la interfaz grafica pero no se que herramientas usar que me recomendais , algo sencillo y facil de aprender??? _________________________________________________________________ Coches nuevos, coches de ocasión, coches de Km 0 [2]Si piensas en cambiar de coche, MSN Motor. References 1. mailto:chic en s 2. http://g.msn.com/8HMAESES/2746??PS=47575 From dani.berzas en gmail.com Thu Feb 15 19:58:06 2007 From: dani.berzas en gmail.com (Dani) Date: Thu, 15 Feb 2007 19:58:06 +0100 Subject: interfaces graficas In-Reply-To: References: Message-ID: Hola Joana, yo uso pygtk y me va de maravilla, además gracias al enlace que mandó Pachi el otro día: >Sí, pygtk funciona perfectamente en win32. La instalación es algo >tediosa porque hay que instalar python, gtk+, pygtk (con pygobject), >pero tienes un instalador todo-en-uno en: >http://osl.ulpgc.es/~arc/gnome/pygtk-setup.exeque incluye hasta python. mi aplicación también corre sobre Windows (cambiando las llamas la sistema operativo). En www.pygtk.org tienes todo lo que necesitas, incluido ese pedazo de tutorial en castellano: http://pygtk.org/pygtk2tutorial-es/index.html Saludos y buena suerte. Dani. El día 15/02/07, joana salgado gomez < joana_mendaro en hotmail.com> escribió: > > > Hola [1]chic en s: > > Estoy implemetando una aplicacion en python, una especie de web. > Necesito hacer la interfaz grafica pero no se que herramientas usar > que me recomendais , algo sencillo y facil de aprender??? > _________________________________________________________________ > > Coches nuevos, coches de ocasión, coches de Km 0 [2]Si piensas en > cambiar de coche, MSN Motor. > > References > > 1. mailto:chic en s > 2. http://g.msn.com/8HMAESES/2746??PS=47575 > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From bameda en gmail.com Thu Feb 15 20:16:40 2007 From: bameda en gmail.com (bameda) Date: Thu, 15 Feb 2007 20:16:40 +0100 Subject: Problemas de encoding ejecutando en consola de linux, para variar. Message-ID: Hola listeros, tengo un problema y necesito de vuestra ayuda: Estoy haciendo una aplicación que recibe información de un archivo XML y del teclado. Lo que contiene el archivo XML es un listado de Categorías, cada categoria posee una serie de atributos. para crear un objeto de la clase categoría el codigo es algo asi: """""" #!/usr/bin/env python # -*- coding: UTF-8 -*- (...) class Category: def __init__(self,values): print "Valor: \'" + values[0] + "\'", print " - Tipo de value[0]: ", print type(values[0]) if values[0] != None: self.__name = values[0].encode('utf8') else: self.__name = "" print "Valor: \'" + self.__name + "\'", print " - Tipo de __name: ", print type(self.__name) (...) """""" En primer lugar carga la información de un arhivo XMl y luego realiza una determinada acción.Si ejecuto el programa para añadir una categoría por teclado (esta es la acción) la salida es la siguiente: ----- $ ./winsol.py add_categ Valor: 'Ofimática' - Tipo de value[0]: Valor: 'Ofimática' - Tipo de __name: Valor: 'Desarrollo' - Tipo de value[0]: Valor: 'Desarrollo' - Tipo de __name: Valor: 'Red' - Tipo de value[0]: Valor: 'Red' - Tipo de __name: Valor: 'Matemáticas' - Tipo de value[0]: Valor: 'Matemáticas' - Tipo de __name: Valor: 'Juegos' - Tipo de value[0]: Valor: 'Juegos' - Tipo de __name: Valor: 'Técnicas' - Tipo de value[0]: Valor: 'Técnicas' - Tipo de __name: Valor: 'Gráficos' - Tipo de value[0]: Valor: 'Gráficos' - Tipo de __name: Valor: 'Educación' - Tipo de value[0]: Valor: 'Educación' - Tipo de __name: Valor: 'Multimedia' - Tipo de value[0]: Valor: 'Multimedia' - Tipo de __name: Valor: 'Miscelania' - Tipo de value[0]: Valor: 'Miscelania' - Tipo de __name: Valor: 'Bases de Datos' - Tipo de value[0]: Valor: 'Bases de Datos' - Tipo de __name: Valor: 'Sistemas Operativos' - Tipo de value[0]: Valor: 'Sistemas Operativos' - Tipo de __name: Valor: 'Sistema y Administración' - Tipo de value[0]: Valor: 'Sistema y Administración' - Tipo de __name: Valor: 'No Categorized' - Tipo de value[0]: Valor: 'No Categorized' - Tipo de __name: Write the "Category Name": Categoría Write the "Category Label": none Write the "Category Description": none Valor: 'Categoría' - Tipo de value[0]: Traceback (most recent call last): File "./winsol.py", line 836, in ? winsol.add_category() File "./winsol.py", line 168, in add_category if ( self.__image.add_category( [name, label, description] )): File "/home/pelukas/Proyectos/winsol/trunk/winsollib.py", line 995, in add_category cat = Category(category_values) File "/home/pelukas/Proyectos/winsol/trunk/winsollib.py", line 49, in __init__ if values[0] != None: self.__name = values[0].encode('utf8') UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 7: ordinal not in range(128) ----- Por el contrario si quito el metodo encoding aplicado a values[0] el error me la dá a la hora de hacer el siguiente __cmp__(), cuando ejecuta el lower(): """" ## Compare this Categpry to other category. # # @param other - (Category | None) Object to compare with this. # @return \b -1 If this < other. \b 0 If this = other. \b 1 If this > other on other = None def __cmp__(self,other): if other == None: return 1 if self.__name.lower() > other.get_name().lower(): return 1 elif self.__name.lower() == other.get_name().lower(): return 0 else: return -1 """" Alguien sabe como puedo resolver este problema. Estoy muy perdido, he visto todos los comentarios sobre encoding de la lista y todos los enlaces que en ellos se especifican y no logro encontrar respuesta Gracias de antemano a todo aquel que me haya leído UN SALUDO. PD. Mi Editor está en utf8, si en la consola de python solicito el encoding me da utf8 y en el XML también esta el encoding como utf8. -- ____________________________________________ | | David Barragán Merino | E-mail: bameda en ARROBA@gmail.com | Ingeniería Informática | Universidad Carlos III Madrid |____________________________________________ From gagsl-py en yahoo.com.ar Thu Feb 15 21:17:05 2007 From: gagsl-py en yahoo.com.ar (Gabriel Genellina) Date: Thu, 15 Feb 2007 17:17:05 -0300 Subject: Problemas de encoding ejecutando en consola de linux, para variar. References: Message-ID: En Thu, 15 Feb 2007 16:16:40 -0300, bameda escribió: > para crear un objeto de la clase categoría el codigo es algo asi: > > """""" > #!/usr/bin/env python > # -*- coding: UTF-8 -*- > (...) > class Category: > def __init__(self,values): > print "Valor: \'" + values[0] + "\'", > print " - Tipo de value[0]: ", > print type(values[0]) En general conviene usar repr() para debug, porque te da mas informacion; repr(values[0]) Aca no sabes realmente qué contiene, sólo cómo se "ve" en pantalla. > > if values[0] != None: self.__name = > values[0].encode('utf8') encode es un metodo de los objetos unicode; recibe unicode y devuelve str en el encoding pedido. (en realidad nunca debió existir str.encode, solo str.decode y unicode.encode, pero sino se hubiera complicado mucho la compatibilidad) Todo va a andar bien si values[0] es unicode. O, si es una string pero ascii puro. > Valor: 'Ofimática' - Tipo de value[0]: > Valor: 'Ofimática' - Tipo de __name: Vamos bien; recibe unicode, genera str > Valor: 'Desarrollo' - Tipo de value[0]: > Valor: 'Desarrollo' - Tipo de __name: Aca tambien; recibe str (pero ascii); devuelve str. > Write the "Category Description": none > Valor: 'Categoría' - Tipo de value[0]: Oops... Que es esta 'Categoría' como str? Deberia ser unicode Lo mejor seria fijarse de donde salio este valor, y arreglarlo para que sea unicode. En general, "el mundo exterior" habla bytes y strings, y eso es lo que se guarda en los archivos. "Adentro" del programa, conviene manejar unicode siempre. La conversion string->unicode conviene hacerla apenas leido el dato, y la conversion unicode->str conviene hacerla justo antes de grabar. La otra alternativa, bastante mas "chancha", es aceptar que te pueden aparecer indistintamente strings y unicode, y tratar de manejarlo: if values[0] is not None: if isinstance(values[0], unicode): self.__name = values[0].encode('utf8') else: self.__name = values[0] # y aca confiamos en que realmente sea utf8 # o bien: self.__name = values[0].decode('utf8').encode('utf8') # que, si es cierto que es un string en utf-8, deberia dar lo mismo... > PD. Mi Editor está en utf8, si en la consola de python solicito el > encoding me da utf8 y en el XML también esta el encoding como utf8. No estaras jugando con sys.setdefaultencoding, no? Seguro que sys.getdefaultencoding() te da utf-8? -- Gabriel Genellina ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From bameda en gmail.com Thu Feb 15 22:44:24 2007 From: bameda en gmail.com (bameda) Date: Thu, 15 Feb 2007 22:44:24 +0100 Subject: Problemas de encoding ejecutando en consola de linux, para variar. In-Reply-To: References: Message-ID: ------------------- $ python Python 2.4.4c1 (#2, Oct 11 2006, 21:51:02) [GCC 4.1.2 20060928 (prerelease) (Ubuntu 4.1.1-13ubuntu5)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> sys.getdefaultencoding() 'ascii' ------------------- No, no es seguro, me da "ascii". Juraria que el otro dia cuando lo probe me daba "utf8". Fallo mio probare a ver si lo que me comentas funciona, lo que pasa es que es algo mas complicao porque lo que he comentao es una biblioteca usada por una interfaz en linea de comandos y otra interfaz web hecha con web.py y que trata templates con cheeta. Probare . Gracias El 15/02/07, Gabriel Genellina escribió: > En Thu, 15 Feb 2007 16:16:40 -0300, bameda escribió: > > > para crear un objeto de la clase categoría el codigo es algo asi: > > > > """""" > > #!/usr/bin/env python > > # -*- coding: UTF-8 -*- > > (...) > > class Category: > > def __init__(self,values): > > print "Valor: \'" + values[0] + "\'", > > print " - Tipo de value[0]: ", > > print type(values[0]) > > En general conviene usar repr() para debug, porque te da mas informacion; > repr(values[0]) > Aca no sabes realmente qué contiene, sólo cómo se "ve" en pantalla. > > > > > if values[0] != None: self.__name = > > values[0].encode('utf8') > > encode es un metodo de los objetos unicode; recibe unicode y devuelve str > en el encoding pedido. > (en realidad nunca debió existir str.encode, solo str.decode y > unicode.encode, pero sino se hubiera complicado mucho la compatibilidad) > Todo va a andar bien si values[0] es unicode. O, si es una string pero > ascii puro. > > > Valor: 'Ofimática' - Tipo de value[0]: > > Valor: 'Ofimática' - Tipo de __name: > > Vamos bien; recibe unicode, genera str > > > Valor: 'Desarrollo' - Tipo de value[0]: > > Valor: 'Desarrollo' - Tipo de __name: > > Aca tambien; recibe str (pero ascii); devuelve str. > > > Write the "Category Description": none > > Valor: 'Categoría' - Tipo de value[0]: > > Oops... Que es esta 'Categoría' como str? Deberia ser unicode > Lo mejor seria fijarse de donde salio este valor, y arreglarlo para que > sea unicode. > En general, "el mundo exterior" habla bytes y strings, y eso es lo que se > guarda en los archivos. "Adentro" del programa, conviene manejar unicode > siempre. La conversion string->unicode conviene hacerla apenas leido el > dato, y la conversion unicode->str conviene hacerla justo antes de grabar. > La otra alternativa, bastante mas "chancha", es aceptar que te pueden > aparecer indistintamente strings y unicode, y tratar de manejarlo: > > if values[0] is not None: > if isinstance(values[0], unicode): > self.__name = values[0].encode('utf8') > else: > self.__name = values[0] # y aca confiamos en que realmente sea > utf8 > # o bien: self.__name = values[0].decode('utf8').encode('utf8') > # que, si es cierto que es un string en utf-8, deberia dar lo > mismo... > > > PD. Mi Editor está en utf8, si en la consola de python solicito el > > encoding me da utf8 y en el XML también esta el encoding como utf8. > > No estaras jugando con sys.setdefaultencoding, no? Seguro que > sys.getdefaultencoding() te da utf-8? > > -- > Gabriel Genellina > > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > > -- ____________________________________________ | | David Barragán Merino | E-mail: bameda en ARROBA@gmail.com | Ingeniería Informática | Universidad Carlos III Madrid |____________________________________________ From py en ch3m4.org Thu Feb 15 22:59:22 2007 From: py en ch3m4.org (Chema Cortes) Date: Thu, 15 Feb 2007 22:59:22 +0100 Subject: zip y generadores In-Reply-To: <45D465EE.7000303@ffn.ub.es> References: <45D44D19.2010104@ffn.ub.es> <45D44EB3.4030303@ch3m4.org> <45D465EE.7000303@ffn.ub.es> Message-ID: <200702152259.23771.py@ch3m4.org> El Jueves, 15 de Febrero de 2007 Pau Cervera Badia escribió: > Genial! ;-) > > Disculpas por preguntar antes de mirar TFM! No era mi intención reenviarte a la documentación. No creo que sea suficiente para hacerse con la maestría de manejo de los generadores. Ahora que tengo más tiempo, te respondo más extensamente: ya que te has lanzado a usar generadores, las itertools son una gran ayuda; pero no te creas que ofrecen nada que no hubieras podido hacer tú mismo con un poco de trabajo. Algunos consejos que pueden mejorar tu código: > def frames(fitxer, nparticules): > counter = 0 > frame_info = "" > for line in open(fitxer).readlines()[1:]: > if not counter % 2 == 0: > frame = line.split(":")[1:-1] > frame = [tuple(map(float, tuple(chunk.split()))) \ > for chunk in frame] > yield frame_info, frame[:nparticules] > else: > frame_info = line > counter = counter + 1 .readlines() lee todas las líneas del fichero y las pasa a una lista. Ya que quieres crear un generador, deberías leer las líneas a medida que se necesiten. Por ejemplo, se podría usar .xreadlines(); pero hoy en día ya no es necesario ya que los objetos fichero se definen como "iteradores". La misma iteración que tienes se puede hacer de esta manera: for line in open(fitxer): ... Como consejo, no hace falta poner el signo de continuación de línea '\' en medio de una lista, tupla, etc. --en general, cuando no hay ambigüedad--. Refactorizando un poco tu código, quedaría algo así: from itertools import izip def frames(fitxer, nparticules):     f=open(fitxer) #quitar la primera linea f.next() frame_info = ""     for line,fr in izip(f,f):         frame = [tuple(float(x) for x in chunk.split())                     for chunk in line.split(":")[1:-1] ]         yield frame_info, frame[:nparticules] frame_info=fr > > ----------------------- ------------------------------------ > > que basicamente me volca el arxivo en un par de tuplas, cada vez que lo > llamo. > Si lo llamo como por ejemplo en, > > ----------------------- ------------------------------------- > > for frame_info, posicions in frames(fitxer, sys_info.sys_size): > title = "frame: %s t = %s" % tuple(frame_info.split()) > g("set title '%s'" % title) > g.plot(Gnuplot.Data(posicions)) Aquí, lo único decirte que .split ya devuelve una "secuencia", y que no hace falta la conversión explícita a tupla: title = "frame: %s t = %s" % frame_info.split() > > ----------------------- ------------------------------------ > > no tengo ningún problema y va bastante rápido. > > El problema es que quiero iterar sobre pares de ficheros, como en: > > ----------------------- ------------------------------------- > > for frame_posicions1, frame_posicions2 in \ > zip(frames(fitxer, sys_info.sys_size), \ > frames(fitxer2, sys_info.sys_size)): > > frame_info, posicions1 = frame_posicions1 > frame_info, posicions2 = frame_posicions2 > title = "frame: %s t = %s" % tuple(frame_info.split()) > g("set title '%s'" % title) > g.plot(posicions1, posicions2) > > ----------------------- ------------------------------------ Supongo que ya lo has resuelto con el izip. Si quieres una forma más concisa de poner lo mismo: two_frames=izip(frames(fitxer, sys_info.sys_size), frames(fitxer2, sys_info.sys_size)) for ((fr1_info,fr1_pos),(fr2_info,fr2_pos)) in two_frames: title = "frame: %s t = %s" % fr2_info.split() g("set title '%s'" % title) g.plot(fr1_pos, fr2_pos) Aunque también puedes optar por la siguiente manera, algo más fácil de digerir (y sin usar zip() ): fr1=frames(fitxer, sys_info.sys_size) fr2=frames(fitxer2, sys_info.sys_size) for fr1_info,fr1_pos in fr1: fr2_info,fr2_pos=fr2.next() title = "frame: %s t = %s" % fr2_info.split() g("set title '%s'" % title) g.plot(fr1_pos, fr2_pos) > > Pensava que no me funcionava, pero parece que el problema está en *zip*, > que tinene que generar la nueva lista antes que el *for* pueda ir > iterando sobre ella. > > Hay alguna forma de acceder a estos pares sin tener que genear una nueva > lista, que puede ser muy grande? Me estoy dejando algo, seguro. > > Grácias, PD: tan sólo una opinión, pero preferiría leer todo en catalán antes que en un castellano tan maltratado. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From oscar en jornada.com.mx Fri Feb 16 00:24:28 2007 From: oscar en jornada.com.mx (Oscar de Anda) Date: Thu, 15 Feb 2007 17:24:28 -0600 Subject: archivo de =?ISO-8859-1?Q?configuraci=F3n?= In-Reply-To: <20070215165309.1quzdvcou84ow4og@k-rolus.net> References: <45D3EE5D.2090009@jornada.com.mx> <20070215092307.fuvpfs28w84gg48k@k-rolus.net> <20070215133128.6lteanod36kgks0c@webmail.nosotrosmismos.org> <20070215165309.1quzdvcou84ow4og@k-rolus.net> Message-ID: <45D4EBAC.2000007@jornada.com.mx> Señores, de verdad muchas gracias por sus oportunas respuestas. Existe una forma de hacerlo que es con un módulo llamado config, http://www.red-dove.com/python_config.html. Me parece elegante esta forma de hacerlo solamanente que funciona únicamente asignando un valor a cada variable y yo necesito asignar a mis variables, mas que valores, operaciones del tipo date, diccionarios, entre otras cosas. Como varios de ustedes me comentaron, tal cual lo tenía debía funcionar, solo necesitaba anteponer el nombre del archivo de configuración a cada variable, ¿qué tontería no?, mil disculpas y ni modo, así también se aprende en la vida. Saludos. From gagsl-py en yahoo.com.ar Fri Feb 16 02:12:40 2007 From: gagsl-py en yahoo.com.ar (Gabriel Genellina) Date: Thu, 15 Feb 2007 22:12:40 -0300 Subject: zip y generadores References: <45D44D19.2010104@ffn.ub.es> <45D44EB3.4030303@ch3m4.org> <45D465EE.7000303@ffn.ub.es> <200702152259.23771.py@ch3m4.org> Message-ID: En Thu, 15 Feb 2007 18:59:22 -0300, Chema Cortes escribió: > El Jueves, 15 de Febrero de 2007 Pau Cervera Badia escribió: >> for frame_info, posicions in frames(fitxer, sys_info.sys_size): >> title = "frame: %s t = %s" % tuple(frame_info.split()) >> g("set title '%s'" % title) >> g.plot(Gnuplot.Data(posicions)) > > Aquí, lo único decirte que .split ya devuelve una "secuencia", y que no > hace > falta la conversión explícita a tupla: > > title = "frame: %s t = %s" % frame_info.split() En realidad el codigo original es correcto, porque % solo desempaca múltiples argumentos desde una tupla, no de una lista: py> "%s %s" % "a b".split() Traceback (most recent call last): File "", line 1, in ? TypeError: not enough arguments for format string py> "%s %s" % tuple("a b".split()) 'a b' -- Gabriel Genellina ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From rolandojtorres en gmail.com Fri Feb 16 04:05:26 2007 From: rolandojtorres en gmail.com (=?UTF-8?Q?Rolando_Jos=C3=A9_Torres_S=C3=A1nchez?=) Date: Thu, 15 Feb 2007 22:05:26 -0500 Subject: interfaces graficas In-Reply-To: References: Message-ID: <6a39a1d0702151905p2473bdb2w51f158e7962405c5@mail.gmail.com> Tkinter es quizas el mas compatible, viene incluido en las versiones oficiales de Python y es soportado desde Win95 hasta WinXP, también en linux y Mac, también en Pocketpc, es pequeño, y facil de instalar, lamentablemente es lento y cada vez mas obsoleto. Estoy probando Wx y me parece el sucesor de tkinter, pues es muy compatible, no es pequeño pero si facil de instalar, es rapido y tiene las nuevas características de los GUI mas innovadores. Recomendaria esos dos, pues los otros, aunque pueden ser mejores no he podido ni conseguido información de como instalarlos en Mac, ni en Windows Pocket, por tanto puedo descartarlos por ser menos compatibles. El 15/02/07, Dani escribió: > Hola Joana, > yo uso pygtk y me va de maravilla, además gracias al enlace que mandó Pachi > el otro día: > > >Sí, pygtk funciona perfectamente en win32. La instalación es algo > >tediosa porque hay que instalar python, gtk+, pygtk (con pygobject), > >pero tienes un instalador todo-en-uno en: > >http://osl.ulpgc.es/~arc/gnome/pygtk-setup.exeque > incluye hasta python. > > mi aplicación también corre sobre Windows (cambiando las llamas la sistema > operativo). > > En www.pygtk.org tienes todo lo que necesitas, incluido ese pedazo de > tutorial en castellano: > http://pygtk.org/pygtk2tutorial-es/index.html > > Saludos y buena suerte. > Dani. > > El día 15/02/07, joana salgado gomez < joana_mendaro en hotmail.com> escribió: > > > > > > Hola [1]chic en s: > > > > Estoy implemetando una aplicacion en python, una especie de web. > > Necesito hacer la interfaz grafica pero no se que herramientas usar > > que me recomendais , algo sencillo y facil de aprender??? > > _________________________________________________________________ > > > > Coches nuevos, coches de ocasión, coches de Km 0 [2]Si piensas en > > cambiar de coche, MSN Motor. > > > > References > > > > 1. mailto:chic en s > > 2. http://g.msn.com/8HMAESES/2746??PS=47575 > > _______________________________________________ > > Python-es mailing list > > Python-es en aditel.org > > http://listas.aditel.org/listinfo/python-es > > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > -- Rolando José Torres Sánchez TCL/TK inside Python MSN:rolandojtorres en hotmail.com ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From pych3m4 en gmail.com Fri Feb 16 09:51:38 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Fri, 16 Feb 2007 09:51:38 +0100 Subject: zip y generadores In-Reply-To: References: <45D44D19.2010104@ffn.ub.es> <45D44EB3.4030303@ch3m4.org> <45D465EE.7000303@ffn.ub.es> <200702152259.23771.py@ch3m4.org> Message-ID: <2c9fb0dd0702160051t5632325doec81ef18bab8b4f6@mail.gmail.com> El 16/02/07, Gabriel Genellina escribió: > En Thu, 15 Feb 2007 18:59:22 -0300, Chema Cortes escribió: > > > El Jueves, 15 de Febrero de 2007 Pau Cervera Badia escribió: > > >> for frame_info, posicions in frames(fitxer, sys_info.sys_size): > >> title = "frame: %s t = %s" % tuple(frame_info.split()) > >> g("set title '%s'" % title) > >> g.plot(Gnuplot.Data(posicions)) > > > > Aquí, lo único decirte que .split ya devuelve una "secuencia", y que no > > hace > > falta la conversión explícita a tupla: > > > > title = "frame: %s t = %s" % frame_info.split() > > En realidad el codigo original es correcto, porque % solo desempaca > múltiples argumentos desde una tupla, no de una lista: > > py> "%s %s" % "a b".split() > Traceback (most recent call last): > File "", line 1, in ? > TypeError: not enough arguments for format string > py> "%s %s" % tuple("a b".split()) > 'a b' Tienes toda la razón. Menos mal que hay quién está al quite. From xinxic en gmail.com Fri Feb 16 12:12:20 2007 From: xinxic en gmail.com (Xin Xic) Date: Fri, 16 Feb 2007 12:12:20 +0100 Subject: Problemas de encoding ejecutando en consola de linux, para variar. In-Reply-To: References: Message-ID: <9977bc86fa54d0bd1c6c70cb196e50dd@GMail.com> Eso me pasó ayer, pero solo ejecutando el script des del cron. Algo muy estraño. Quizà fué también por la shell "ksh". Tendré que comprovar-lo. Al final opté por no imprimir ningun acento. El 15/02/2007, a les 20:16, en/na bameda va escriure: > Hola listeros, > > tengo un problema y necesito de vuestra ayuda: > > Estoy haciendo una aplicación que recibe información de un archivo XML > y del teclado. Lo que contiene el archivo XML es un listado de > Categorías, cada categoria posee una serie de atributos. > > para crear un objeto de la clase categoría el codigo es algo asi: > > """""" > #!/usr/bin/env python > # -*- coding: UTF-8 -*- > (...) > class Category: > def __init__(self,values): > print "Valor: \'" + values[0] + "\'", > print " - Tipo de value[0]: ", > print type(values[0]) > > if values[0] != None: self.__name = > values[0].encode('utf8') > else: self.__name = "" > > print "Valor: \'" + self.__name + "\'", > print " - Tipo de __name: ", > print type(self.__name) > (...) > """""" > > En primer lugar carga la información de un arhivo XMl y luego realiza > una determinada acción.Si ejecuto el programa para añadir una > categoría por teclado (esta es la acción) la salida es la siguiente: > > ----- > $ ./winsol.py add_categ > Valor: 'Ofimática' - Tipo de value[0]: > Valor: 'Ofimática' - Tipo de __name: > Valor: 'Desarrollo' - Tipo de value[0]: > Valor: 'Desarrollo' - Tipo de __name: > Valor: 'Red' - Tipo de value[0]: > Valor: 'Red' - Tipo de __name: > Valor: 'Matemáticas' - Tipo de value[0]: > Valor: 'Matemáticas' - Tipo de __name: > Valor: 'Juegos' - Tipo de value[0]: > Valor: 'Juegos' - Tipo de __name: > Valor: 'Técnicas' - Tipo de value[0]: > Valor: 'Técnicas' - Tipo de __name: > Valor: 'Gráficos' - Tipo de value[0]: > Valor: 'Gráficos' - Tipo de __name: > Valor: 'Educación' - Tipo de value[0]: > Valor: 'Educación' - Tipo de __name: > Valor: 'Multimedia' - Tipo de value[0]: > Valor: 'Multimedia' - Tipo de __name: > Valor: 'Miscelania' - Tipo de value[0]: > Valor: 'Miscelania' - Tipo de __name: > Valor: 'Bases de Datos' - Tipo de value[0]: > Valor: 'Bases de Datos' - Tipo de __name: > Valor: 'Sistemas Operativos' - Tipo de value[0]: > Valor: 'Sistemas Operativos' - Tipo de __name: > Valor: 'Sistema y Administración' - Tipo de value[0]: 'unicode'> > Valor: 'Sistema y Administración' - Tipo de __name: > Valor: 'No Categorized' - Tipo de value[0]: > Valor: 'No Categorized' - Tipo de __name: > Write the "Category Name": Categoría > Write the "Category Label": none > Write the "Category Description": none > Valor: 'Categoría' - Tipo de value[0]: > Traceback (most recent call last): > File "./winsol.py", line 836, in ? > winsol.add_category() > File "./winsol.py", line 168, in add_category > if ( self.__image.add_category( [name, label, description] )): > File "/home/pelukas/Proyectos/winsol/trunk/winsollib.py", line 995, > in add_category > cat = Category(category_values) > File "/home/pelukas/Proyectos/winsol/trunk/winsollib.py", line 49, in > __init__ > if values[0] != None: self.__name = values[0].encode('utf8') > UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position > 7: ordinal not in range(128) > ----- > > Por el contrario si quito el metodo encoding aplicado a values[0] el > error me la dá a la hora de hacer el siguiente __cmp__(), cuando > ejecuta el lower(): > > """" > ## Compare this Categpry to other category. > # > # @param other - (Category | None) Object to compare with this. > # @return \b -1 If this < other. \b 0 If this = other. \b 1 If > this > other on other = None > def __cmp__(self,other): > if other == None: > return 1 > if self.__name.lower() > other.get_name().lower(): > return 1 > elif self.__name.lower() == other.get_name().lower(): > return 0 > else: > return -1 > """" > > Alguien sabe como puedo resolver este problema. Estoy muy perdido, he > visto todos los comentarios sobre encoding de la lista y todos los > enlaces que en ellos se especifican y no logro encontrar respuesta > > Gracias de antemano a todo aquel que me haya leído > > UN SALUDO. > > PD. Mi Editor está en utf8, si en la consola de python solicito el > encoding me da utf8 y en el XML también esta el encoding como utf8. > > -- > ____________________________________________ > | > | David Barragán Merino > | E-mail: bameda en ARROBA@gmail.com > | Ingeniería Informática > | Universidad Carlos III Madrid > |____________________________________________ > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From billguedes.python en terra.com.br Fri Feb 16 13:07:57 2007 From: billguedes.python en terra.com.br (Guedes) Date: Fri, 16 Feb 2007 10:07:57 -0200 Subject: Problema con ventanas In-Reply-To: <20070215143229.C3CF4146DA7D@devnull.aditel.org> References: <20070215143229.C3CF4146DA7D@devnull.aditel.org> Message-ID: <1171627677.17147.2.camel@localhost.localdomain> Hola Alvaro Sanchez Ramirez, Segue abaixo exemplo do uso do "progress bar": http://www.pythonbrasil.com.br/moin.cgi/BarraProgresso Abracos, Guedes. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From cervera en ffn.ub.es Fri Feb 16 13:12:15 2007 From: cervera en ffn.ub.es (Pau Cervera Badia) Date: Fri, 16 Feb 2007 13:12:15 +0100 Subject: zip y generadores In-Reply-To: <2c9fb0dd0702160051t5632325doec81ef18bab8b4f6@mail.gmail.com> References: <45D44D19.2010104@ffn.ub.es> <45D44EB3.4030303@ch3m4.org><45D465EE.7000303@ffn.ub.es> <200702152259.23771.py@ch3m4.org> <2c9fb0dd0702160051t5632325doec81ef18bab8b4f6@mail.gmail.com> Message-ID: <45D59F9F.7030509@ffn.ub.es> Estoy de acuerdo contigo (Chema); la documentación no es suficiente. Por eso creo que esta lista es muy útil, es una buena fuente de idioms y experiencia. Si no es abusar mucho de la lista, para resolver el problema estuve jugando un poco más. Veo que no puedo sobrecargar el next de un file. Quería hacer algo como, def new_next(iter): def next(): try: return iter.next(), iter.next() except StopIteration, e: raise e return next y llamarlo como def frames(fitxer, nparticules): f = open(fitxer) f.next() f.next = new_next(f) # <-- se para aquí: AttributeError: 'file' object attribute 'next' is read-only for frame_info, line in f: yield frame_info, frame[:nparticules] # frame ~ line con lo que tuve que hacer lo siguiente: def two_lines(iter): class _Nou: def __iter__(self): return self def next(self): try: return iter.next(), iter.next() except StopIteration, e: raise e return _Nou() y al final llamarlo como def frames(fitxer, nparticules): f = open(fitxer) f.next() f = two_lines(f) for frame_info, line in f: yield frame_info, frame[:nparticules] # frame ~ line que me parece bastante elegante. Bueno, para resolver el problema inicial, tal vez lo más sencillo sea, simplemente: def frames_d(fitxer, nparticules): f = open(fitxer) # quito la primera f.next() frame_info = "" try: while 1: frame_info = f.next() line = f.next() yield frame_info, frame[:nparticules] # frame ~ line except StopIteration: pass Gracias a todos por vuestras respuestas!!! P.D: Mi intención principal no fue nunca destrozar el castellano, aunque puede haber sido un side effect que se me escapó de las manos. ;-) Chema Cortes wrote: > El 16/02/07, Gabriel Genellina escribió: >> En Thu, 15 Feb 2007 18:59:22 -0300, Chema Cortes >> escribió: >> >> > El Jueves, 15 de Febrero de 2007 Pau Cervera Badia escribió: >> >> >> for frame_info, posicions in frames(fitxer, sys_info.sys_size): >> >> title = "frame: %s t = %s" % tuple(frame_info.split()) >> >> g("set title '%s'" % title) >> >> g.plot(Gnuplot.Data(posicions)) >> > >> > Aquí, lo único decirte que .split ya devuelve una "secuencia", y >> que no >> > hace >> > falta la conversión explícita a tupla: >> > >> > title = "frame: %s t = %s" % frame_info.split() >> >> En realidad el codigo original es correcto, porque % solo desempaca >> múltiples argumentos desde una tupla, no de una lista: >> >> py> "%s %s" % "a b".split() >> Traceback (most recent call last): >> File "", line 1, in ? >> TypeError: not enough arguments for format string >> py> "%s %s" % tuple("a b".split()) >> 'a b' > > Tienes toda la razón. Menos mal que hay quién está al quite. > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > > -- Pau Cervera i Badia (e-mail cervera en ffn.ub.es) { Departament de Física Fonamental Martí i Franqués, 1 Universitat de Barcelona Planta 3, despatx 346 bis 08028 Barcelona tel: +34 934 921 155 Spain "Simple things should be simple, complex things should be possible." -- Alan Kay return http://www.ffn.ub.es/%7Ecervera/ } From py en ch3m4.org Fri Feb 16 19:01:24 2007 From: py en ch3m4.org (Chema Cortes) Date: Fri, 16 Feb 2007 19:01:24 +0100 Subject: Problemas de encoding ejecutando en consola de linux, para variar. In-Reply-To: References: Message-ID: <200702161901.25598.py@ch3m4.org> El Jueves, 15 de Febrero de 2007 22:44, bameda escribió: > lo que pasa es que es > algo mas complicao porque lo que he comentao es una biblioteca usada > por una interfaz en linea de comandos y otra interfaz web hecha con > web.py y que trata templates con cheeta. Nos faltaría ver el resto del código; pero considera que por poner el comentario con el "coding: utf8" no basta para asegurar que las strings del código estén en unicode. Seguramente, cuando añades la categoría lo estás haciendo como ascii y no como unicode. Te faltará una conversión explícita con u"..." o unicode(). Con XML, puedes estar seguro que se usa utf8...a no ser que se indique explícitamente. Como te dice Gabriel, chequea de dónde viene el nombre de la categoría que añades. From antonio en districte4.com Fri Feb 16 20:54:26 2007 From: antonio en districte4.com (Antonio Luis Diaz) Date: Fri, 16 Feb 2007 20:54:26 +0100 Subject: obtener por consola la salida de un comando del sistema operativo In-Reply-To: <524690.2671.qm@web26004.mail.ukl.yahoo.com> References: <524690.2671.qm@web26004.mail.ukl.yahoo.com> Message-ID: <45D60BF2.2050201@districte4.com> Yo he trabajado pexpect y creo que te va a ir de maravilla para lo que tu quieres, incluso puedes interectuar en la consola. Yo lo utilizo para saber quien esta conectado en un sistema SMB (SAMBA) y hacer copias de seguridad. te pongo parte del programa > #!/usr/bin/python > > import time > import pexpect > import os > import sys > import curses > > > f=open('/var/log/Copias_seguridad','a+') > p = pexpect.spawn('/usr/bin/smbtree --no-pass') > c= p.readlines() > > > > f.write('\n\n\n##########################################################################################\n') > for elemento in c: > > if "\\\\LINCE\Trabajo" in elemento: > f.writelines(time.ctime(time.time())+'\r\n') > f.write("\nActualizando directorio %s en el SERVIDOR\r\n" > %elemento.strip('\t').strip('\r\n')) > p = pexpect.spawn("smbmount //LINCE/Trabajo /mnt -o guest,rw") > p = pexpect.spawn('rsync -ruav /mnt/ /Seguridad/Trabajo/',timeout=60) > list=p.readlines() > if list<>[]: > for l in list[1:-2]: > f.write(l) > f.write("\nActualizando directorio %s en el cliente\n" > %elemento.strip('\t').strip('\r\n')) > p = pexpect.spawn('rsync -ruav /Seguridad/Trabajo/ /mnt/',timeout=240) > list=p.readlines() > if list<>[]: > for l in list[1:-2]: > f.write(l) > f.write('....................................\n') > p = pexpect.spawn("umount /mnt") Sergi Rosello escribió: > Un saludo > > Estoy tratando de obtener por consola la salida de un > comando del sistema operativo, concretamente nslookup. > Aunque quizá no importe, comentar que estoy trabajando > en Windows. > > He intentado esto > > res = os.system ('nslookup google.es') > print res > > Creo recordar que en Perl esto funcionaría (que no > quiere decir que fuera la mejor manera de hacerlo ...) > > Gracias > > > ------------------------------------------------------------------------------------------------------------------------------------ > Nota Legal: Este correo electrónico puede contener información estrictamente confidencial y es de uso exclusivo del destinatario, quedando prohibida a cualquier otra persona su revelación, copia, distribución, o el ejercicio de cualquier acción relativa a su contenido. Si ha recibido este correo electrónico por error, por favor, conteste al remitente, y posteriormente proceda a borrarlo de su sistema. Gracias por su colaboración. ------------------------------------------------------------------------------------------------------------------------------------ > > > > ______________________________________________ > LLama Gratis a cualquier PC del Mundo. > Llamadas a fijos y móviles desde 1 céntimo por minuto. > http://es.voice.yahoo.com > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From jgonzalez en grupopitaco.com Fri Feb 16 13:40:31 2007 From: jgonzalez en grupopitaco.com (=?iso-8859-1?Q?Javier_Gonz=E1lez?=) Date: Fri, 16 Feb 2007 13:40:31 +0100 Subject: Ayuda con la herencia de clases y el metodo __init__ Message-ID: <000801c751c7$a6b65f20$c401a8c0@pcjavi> Hola a todos, ante de nada, decir que soy novato en esto de python asi que disculparme si pregunto una tonteria, tengo el siguiente problema , partiendo de dos clases con sus respectivos metodos __init__ creo una tercera que hereda de las dos primeras todos sus metodos, al cuestion es que necesito que cuando inicializo esta tercera clase se tienen que ejecutan los metodos init de cada clase. y no se como hacerlo ejemplo: class Z: def __init__(self): self.A=5 self.B=10 class Y: def __init__(self): self.A=15 self.B=20 class X(Y,Z): pass def main(): m=X() print m.A,m.B if __name__ == '__main__': main() en funcion de si la clase x es(Y,Z) o es (Z,Y) sale una cosa otro porque solo se ejecuta un metodo, y necesitaria qu ese ejecutaran los dos, alguien puede aconsejarme como hacerlo? gracias por vuestra ayuda. From pych3m4 en gmail.com Sat Feb 17 05:05:22 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Sat, 17 Feb 2007 05:05:22 +0100 Subject: Ayuda con la herencia de clases y el metodo __init__ In-Reply-To: <000801c751c7$a6b65f20$c401a8c0@pcjavi> References: <000801c751c7$a6b65f20$c401a8c0@pcjavi> Message-ID: <2c9fb0dd0702162005h4ba4d7c7t10c3a5643be02897@mail.gmail.com> El 16/02/07, Javier González escribió: > ante de nada, decir que soy novato en esto de python asi que disculparme si pregunto una tonteria, tengo el siguiente problema , partiendo de dos clases con sus respectivos metodos __init__ creo una tercera que hereda de las dos primeras todos sus metodos, al cuestion es que necesito que cuando inicializo esta tercera clase se tienen que ejecutan los metodos init de cada clase. y no se como hacerlo > > ejemplo: > > class Z: > def __init__(self): > self.A=5 > self.B=10 > > class Y: > def __init__(self): > self.A=15 > self.B=20 > > class X(Y,Z): > pass > > def main(): > m=X() > print m.A,m.B > > if __name__ == '__main__': > main() > > en funcion de si la clase x es(Y,Z) o es (Z,Y) sale una cosa otro porque solo se ejecuta un metodo, y necesitaria qu ese ejecutaran los dos, alguien puede aconsejarme como hacerlo? Lo más simple sería hacer las dos inicializaciones desde un método __init__ en X: class X(Y,Z): def __init__(self): Y.__init__(self) Z.__init__(self) Aparte de poco elegante, resulta difícil de mantener, sobre todo cuando el diagrama de herencias paterno-filiales se enreda. Debido a los problemas para implementarla, algunos lenguajes orientados a objetos no tienen herencia múltiple (pe: ruby ó java). Afortunadamente, python lo resuelve bastante gracias al algoritmo llamado MRO, con él se crea una secuencia sin repetición de todas las clases base de un objeto, que puede consultarse en el atributo de clase __mro__. Esta secuencia es la que se sigue para la búsqueda de los atributos adquiridos por una instancia. Simplificándolo muchísimo, hemos pasado de tener un problema de "herencia múltiple" a "herencia simple". Este algoritmo MRO sólo funciona con las "nuevas" clases, que usan "object" como tipo/clase del que derivan todos los demás tipos/clases (acostúmbrate a ver usar "tipo" y "clase" de forma indistinta). De esta manera, class Z(object): pass class Y(object): pass class X(Y,Z): pass tendríamos que X.__mro__ == (X,Y,Z,object) En una instancia de X, la búsqueda de uno de sus atributo seguirá éste orden: primero en la clase X, luego en Y, luego en Z y finalmente en object. No es una sorpresa, pero no hace falta decir que se puede hacer mucho más enrevesado. Lo importante es darse cuenta que, por más que se complique la cosa, sólo aparecerá una vez cada clase. (A veces el algoritmo MRO no puede conseguirlo y da un error). Ahora entramos en el problema: con la secuencia MRO, una forma que tendríamos de asegurarnos que se ejecutan todo los métodos __init__ sería que en cada __init__ se ejecutara el método __init__ de la siguiente clase de la secuencia. Justamente para ésto tenemos el tipo super(), y se emplearía así: class Z(object): def __init__(self): print "Z" super(Z,self).__init__() class Y(object): def __init__(self): print "Y" super(Y,self).__init__() class X(Y,Z): def __init__(self): print "X" super(X,self).__init__() m=X() Va recorriendo X-->Y-->Z-->object Teniendo un tipo 'T' y un objeto 'o', super(T,o) devuelve el siguiente tipo de la secuencia MRO de type(o), o sea, de la clase de quien es instancia 'o'. Si te olvidas de la complejidad, recuérdalo como una forma de propagar "hacia arriba" la llamada a un método. Espero que te haya aclarado algo el tema. From gagsl-py en yahoo.com.ar Sat Feb 17 06:25:13 2007 From: gagsl-py en yahoo.com.ar (Gabriel Genellina) Date: Sat, 17 Feb 2007 02:25:13 -0300 Subject: Ayuda con la herencia de clases y el metodo __init__ References: <000801c751c7$a6b65f20$c401a8c0@pcjavi> Message-ID: En Fri, 16 Feb 2007 09:40:31 -0300, Javier González escribió: > ante de nada, decir que soy novato en esto de python asi que > disculparme si pregunto una tonteria, tengo el siguiente problema , > partiendo de dos clases con sus respectivos metodos __init__ creo una > tercera que hereda de las dos primeras todos sus metodos, al cuestion es > que necesito que cuando inicializo esta tercera clase se tienen que > ejecutan los metodos init de cada clase. y no se como hacerlo Hay que invocarlos explicitamente, usando: clase_base.__init__(self, los, argumentos, que, correspondan) Tu ejemplo es muy extraño, porque las clases Z e Y definen los *mismos* atributos asi que, no se sabria cuales valores usar. Lo voy a cambiar un poco para que sea mas realista: class Z: def __init__(self, a, b): self.a = a self.b = b class Y: def __init__(self, c, d=None): if d is None: d=20 self.c = c self.d = d class X(Y,Z): def __init__(self, a, b, c, d=None): Z.__init__(self, a, b) Y.__init__(self, c, d) py> m1 = X(1, 3, 5, 7) py> print m1.a, m1.b, m1.c, m1.d 1 3 5 7 py> m2 = X(11, 12, 13) py> print m2.a, m2.b, m2.c, m2.d 11 12 13 20 -- Gabriel Genellina ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From pych3m4 en gmail.com Sat Feb 17 06:30:54 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Sat, 17 Feb 2007 06:30:54 +0100 Subject: zip y generadores In-Reply-To: <45D59F9F.7030509@ffn.ub.es> References: <45D44D19.2010104@ffn.ub.es> <45D44EB3.4030303@ch3m4.org> <45D465EE.7000303@ffn.ub.es> <200702152259.23771.py@ch3m4.org> <2c9fb0dd0702160051t5632325doec81ef18bab8b4f6@mail.gmail.com> <45D59F9F.7030509@ffn.ub.es> Message-ID: <2c9fb0dd0702162130m712dad02wc7fa6a10cec8915@mail.gmail.com> El 16/02/07, Pau Cervera Badia escribió: > Si no es abusar mucho de la lista, para resolver el problema estuve > jugando un poco más. > > Veo que no puedo sobrecargar el next de un file. Quería hacer algo como, > > def new_next(iter): > def next(): > try: > return iter.next(), iter.next() > except StopIteration, e: > raise e > return next > > y llamarlo como > > def frames(fitxer, nparticules): > f = open(fitxer) > f.next() > f.next = new_next(f) # <-- se para aquí: AttributeError: 'file' > object attribute 'next' is read-only Lo que quieres se denomina crear "métodos singleton". Por lo general, siempre se pueden crear, con la excepción de los métodos heredados de un tipo estándar. En este caso, 'next' viene heredado del tipo file, por lo que no puede modificarse. Siendo más precisos, habría que hablar de "descriptores", que es la forma que tiene python de hacer funcionar las clases. Los descriptores de los tipos estándar están definidos para que no se puedan escribir ni borrar, sólo leer/ejecutar. Solución: crea una clase derivada > > for frame_info, line in f: > yield frame_info, frame[:nparticules] # frame ~ line > > con lo que tuve que hacer lo siguiente: > > def two_lines(iter): > class _Nou: > def __iter__(self): > return self > def next(self): > try: > return iter.next(), iter.next() > except StopIteration, e: > raise e > return _Nou() Estás empleando una función para generar la instancia (Patrón Factoría). No parece una buena idea. Estaría mejor sacar la clase fuera. Quedaría algo así: class F(file): def next(self): return super(F,self).next(),super(F,self).next() que se emplearía así: f=F(fitxer) for frame_info, line in f: ... Aunque, ya puestos, y aprovechando que ya tenemos el izip, porqué no hacer simplemente: f=open(fitxer) for frame_info,line in izip(f,f): .... > P.D: Mi intención principal no fue nunca destrozar el castellano, aunque > puede haber sido un side effect que se me escapó de las manos. ;-) Comprendo lo difícil que tiene que ser para los bilingües el ceñiros a un idioma. From gerardo699 en gmail.com Sat Feb 17 17:03:43 2007 From: gerardo699 en gmail.com (Gerardo Ayala G.) Date: Sat, 17 Feb 2007 11:03:43 -0500 Subject: Hola Message-ID: Hola a todos ... Necesito hacer el control del movimiento contable de un restaurente lo que se refiere a: ---------------- Productos Ventas Compras Pagos ---------------- productos --> Ingresar nuevos productos ventas --> Ventas diarias , totalizar ventas diarias y mensuales compras --> Lo que se compra para el restaurante Pagos --> Deudas del restaurante que se van pagando ALguien que me pueda colaborar con un ejemplo de como manejar esto. De antemano muchas gracias..... -- Gerardo A. From necudeco en gmail.com Sat Feb 17 17:24:00 2007 From: necudeco en gmail.com (NeCuDeCo) Date: Sat, 17 Feb 2007 11:24:00 -0500 Subject: Hola In-Reply-To: References: Message-ID: <2ccb93070702170824m29220e36k860c78d417f980b@mail.gmail.com> Gerardo alguna vez has programdo algun sistema o un sistema contable ?? Por favor se mas especifico en tu pregunta.. On 2/17/07, Gerardo Ayala G. wrote: > > Hola a todos ... > > Necesito hacer el control del movimiento contable de un restaurente > lo que se refiere a: > ---------------- > Productos > Ventas > Compras > Pagos > ---------------- > productos --> Ingresar nuevos productos > ventas --> Ventas diarias , totalizar ventas diarias y mensuales > compras --> Lo que se compra para el restaurante > Pagos --> Deudas del restaurante que se van pagando > > ALguien que me pueda colaborar con un ejemplo de como manejar esto. > > De antemano muchas gracias..... > -- > Gerardo A. > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > -- -------------------------- NeCuDeCo Junta de Decanos de los Colegios de Notarios del Peru http://necudeco.blogsome.com http://apesol.org Your Jugdment Day is NOW sudo kills -9 $richard_penguin_signature From minoztro en gmail.com Sat Feb 17 21:09:52 2007 From: minoztro en gmail.com (Milton Galo Patricio) Date: Sat, 17 Feb 2007 17:09:52 -0300 Subject: Hola In-Reply-To: References: Message-ID: <172699c50702171209h6b4a6a0cj2a8036e64f1b1248@mail.gmail.com> El 17/02/07, Gerardo Ayala G. escribió: > Hola a todos ... hola a ti.... > ALguien que me pueda colaborar con un ejemplo de como manejar esto. > http://chileforge.cl/projects/inventarix descarga el cvs.. -- Milton Inostroza Aguilera From fidita48 en hotmail.com Sun Feb 18 14:13:14 2007 From: fidita48 en hotmail.com (=?iso-8859-1?B?SWRvaWEgVmlsbGFjaeFuIFrhcmF0ZQ==?=) Date: Sun, 18 Feb 2007 14:13:14 +0100 Subject: Programas de Python Message-ID: Hola a todos: Estoy un poco perdidilla en esto y a la vez un tanto liadilla,estoy siguiendo mediante un documento como utilizar Apache con Python,tengo todo instalado y configurado. Para empezar nose porque depende de donde ponga el programa en una carpeta u otra me sale en la direccion url o no. Segundo,y creo lo mas importante,al seguir un documento pos estoy probando un programa simple que viene,vamos el hola mundo,he probado dos y en los dos no me sale lo que me tiene que salir: El primero es este: <% if form.has_key('nombre'): # el objeto es descrito en la siguiente seccion saludo= '¡Hola,%s!' % form['nombre'].capitalize() else: saludo = 'Hola solop!' #end %>

<&=saludo %>

Aquí deferia de salirme¡Hola,solop! Pero lo que me sale es: <&=saludo %> El segundo programilla es este: def _formatAsHTML(req, content): req.content_type = "text/html" return "Hola Mundo Python CGI

Ejemplo Python de CGI

" + content + "

" Aqui me deberia de salir Ejemplo Python de CGI y lo que me sale a mi es: def _formatAsHTML (req, content): req.content_type = "text/html" return " Ejemplo Python de CGI " + content + " " Yo veo que def_formatAsHTML me sobra y lo que sigue tambien,lo mismo con content y lo demas. Si alguien me puede echar una mano,muchas gracias de todas maneras. _________________________________________________________________ Éxitos, grandes clásicos y novedades. [1]Un millón de canciones en MSN Music. References 1. http://g.msn.com/8HMAESES/2755??PS=47575 From lasizoillo en gmail.com Sun Feb 18 18:01:26 2007 From: lasizoillo en gmail.com (lasizoillo) Date: Sun, 18 Feb 2007 18:01:26 +0100 Subject: Programas de Python In-Reply-To: References: Message-ID: <49414f570702180901i28b2027dy666e6453ecd9733c@mail.gmail.com> El 18/02/07, Idoia Villacián Zárate escribió: > > Hola a todos: > Hola > > Estoy un poco perdidilla en esto y a la vez un tanto liadilla,estoy > siguiendo mediante un documento como utilizar Apache con Python,tengo > todo instalado y configurado. > ¿Con mod_python? ¿Otra opcion? > Para empezar nose porque depende de donde ponga el programa en una > carpeta u otra me sale en la direccion url o no. > ¿Cómo lo tienes configurado? > > Segundo,y creo lo mas importante,al seguir un documento pos estoy > probando un programa simple que viene,vamos el hola mundo,he probado > dos y en los dos no me sale lo que me tiene que salir: > Veamos > > El primero es este: > > > > > <% > > if form.has_key('nombre'): # el objeto es descrito en la siguiente > seccion > > saludo= '¡Hola,%s!' % form['nombre'].capitalize() > > else: > > saludo = 'Hola solop!' > > #end > > %> > >

<&=saludo %>

> > > Parece PSP de mod_python. Pero hay algo que esta mal. http://www.modpython.org/live/current/doc-html/pyapi-psp.html ¿No deberias haber puesto "<%=saludo%>"? > > Aquí deferia de salirme¡Hola,solop! Pero lo que me sale es: <&=saludo %> > Quiza haya una errata en el tutorial. ¿Que dice la documentacion oficial? > El segundo programilla es este: > > def _formatAsHTML(req, content): > > req.content_type = "text/html" > > return "Hola Mundo Python > CGI

Ejemplo Python de CGI

" + content + > "

" > > Aqui me deberia de salir Ejemplo Python de CGI y lo que me sale a mi es: > > def _formatAsHTML (req, content): req.content_type = "text/html" > return " > > Ejemplo Python de CGI > > " + content + " > > " > > Yo veo que def_formatAsHTML me sobra y lo que sigue tambien,lo mismo con > content y lo demas. > Aqui me he quedado descolocado. ¿CGI? Pensaba que estabas haciendo cosas con mod_python. Estoy descolocado. ¿Puedes enlazar el tutorial que estas siguiendo y decirno que tecnologia usas? > Si alguien me puede echar una mano,muchas gracias de todas maneras. > _________________________________________________________________ From fidojones en fidojones.com Sun Feb 18 18:40:02 2007 From: fidojones en fidojones.com (Lorenzo Tejera) Date: Sun, 18 Feb 2007 18:40:02 +0100 Subject: Justificado de columnas en en QTableView pyqt4? Message-ID: <19cca6e50702180940h51d51749rbe10dde2333c769e@mail.gmail.com> Hola, soy nuevo en python, y me he querido iniciar haciendo una aplicación que ya tenia hecha en delphi. He empezado haciendo una aplicación con sqlobject y qt4 pero como hay pocos ejemplos de qt4 he tenido que exprimir a san google hasta el máximo, pero tengo un detalle que no se resolver. Como justificar una columna a derecha e izquierda en un QTableView de QT4. Les dejo el enlace a mi programa por si les puede servidor de ayuda para aplicaciones qt4. http://www.fidojones.com/download/pycuentas-0.1.tar.gz Saludos, me encanta la lista tiene mucho movimiento. lorenzo From gluismy en hotmail.com Sun Feb 18 22:50:20 2007 From: gluismy en hotmail.com (LUISMY GUERRERO) Date: Sun, 18 Feb 2007 21:50:20 +0000 Subject: llamar dialogo con wxpython Message-ID: Buenas a todos, Soy muy novato en python y mas aun en wxpython pero con paciencia y lecturas e conseguido montar una aplicacion visual de consulta de mi base de datos, pero ahora me surge una pregunta o problema: Tendo dos archivos principal (el programa en si) y un segundo archivo que es un Ventana dialogo con botones para insertar valores en la BD. ¿como puedo llamar a este dialogo desde el principal? o quizas ejecutarlo de alguna forma muchas gracias _________________________________________________________________ Encuentra una aventura, un romance o al amor de tu vida. [1]Date de alta gratis. References 1. http://g.msn.com/8HMBESES/2737??PS=47575 From rabs en dimension-virtual.com Mon Feb 19 00:39:17 2007 From: rabs en dimension-virtual.com (=?utf-8?q?Ra=C3=BAl_Alexis_Betancor_Santana?=) Date: Sun, 18 Feb 2007 23:39:17 +0000 Subject: Paquete para manejo de Fechas/Horas Message-ID: <200702182339.18253.rabs@dimension-virtual.com> Buenas a todos, ¿que paquete recomendáis para manejar fechas/horas? mx.DateTime ó datetime+pytz ¿? El problema es que es necesario tener acceso a la funciones de mx.DateTime.Parser, que son muy buenas y al mismo tiempo la opción de datetime.astimezone, porque es para procesar fechas/horas en distintas zonas horarias. -- Saludos. Raúl Alexis Betancor Santana Dimensión Virtual S.L. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From gabri.losada en gmail.com Mon Feb 19 10:51:45 2007 From: gabri.losada en gmail.com (Gabri) Date: Mon, 19 Feb 2007 10:51:45 +0100 Subject: =?iso-8859-1?q?Entorno_gr=E1fico?= Message-ID: <61290ece0702190151i304b515dob27ba7e00eb456fd@mail.gmail.com> Hola a a tod en s. Llevo unos 5 años desarrollando en Python, pero siempre orientado a la producción. Quiero decir, que siempre he desarrollado para ejecutarlo desde una línea de MSDOS. Cuando necesito algo visual lo desarrollo en Visual Basic, y listo. Me gusta más Python y la verdad es que la tendencia a la que quiero ir es a usar Python como Visual Basic, es decir de forma visual. Existe "algo" para poder programar en Python de forma visual, a modo de Visual Basic, donde pueda poner combos para seleccionar, cuadros de texto, tablas para mostrar datos, ... y por detrás haya un código [...]?. Muchas gracias, y un saludo. From rafaelcantos en hotmail.com Mon Feb 19 11:11:37 2007 From: rafaelcantos en hotmail.com (Rafael Cantos) Date: Mon, 19 Feb 2007 10:11:37 +0000 Subject: Python en Windows In-Reply-To: <20070215165214.2FD8D146DA97@devnull.aditel.org> References: <20070215165214.2FD8D146DA97@devnull.aditel.org> Message-ID: Hola. aunque lance la consola, tanto desde la opción de python como a través de una ventana de ms-dos, el resultado es el mismo. Si pongo: fichero.py ó fichero ó python fichero.py ó python fichero me devuelve el siguiente error: Traceback (most recent call last: File "", line 1, in NameError: name 'fichero' is not defined El programa, entre otros, que me falla es el del tutorial de pygtk , packbox.py, que se encuentra en la siguiente dirección: http://www.pygtk.org/pygtk2tutorial-es/examples/packbox.py gracias de nuevo. Rafa escribió: > > > Normalmente estoy probando python con pygtk bajo Windows. > > Cuando quiero ejecutar algun guión, simpolemente ejecuto el fichero con > > python y normalmente suele funcionar. > > Ahora bien, si se produce algun error el programita se cierra > > automáticmente y no se ve ni el error. > >Primero abrir una consola, y desde ahi lanzar el programa; los errores van >a quedar en la consola abierta. > > > tampoco, claro, puedo pasarle argumentos. ¿Cómo puedo ejecutar un > > fichero desde la línea de comandos de python en windows? He probado a > > situarlo dentro de la carpeta python25, o en alguna interna, pero cuando > > escribo el nombre del fichero en la línea de comandos dice que no >existe. > >python loquesea.py ar gu mentos > > > Además, siempre me sale de fondo la línea de comandos. si yo quiero que > > esta no salga, ya que se supone que es una interfaz gráfica, que puedo > > hacer? > >pythonw loquesea.py > >-- >Gabriel Genellina _________________________________________________________________ Grandes éxitos, superhéroes, imitaciones, cine y TV... http://es.msn.kiwee.com/ Lo mejor para tu móvil. From dmunhiz en gmail.com Mon Feb 19 11:42:23 2007 From: dmunhiz en gmail.com (=?ISO-8859-1?Q?Daniel_Mu=F1iz_Fontoira?=) Date: Mon, 19 Feb 2007 11:42:23 +0100 Subject: Entorno =?ISO-8859-1?Q?gr=E1fico?= In-Reply-To: <61290ece0702190151i304b515dob27ba7e00eb456fd@mail.gmail.com> References: <61290ece0702190151i304b515dob27ba7e00eb456fd@mail.gmail.com> Message-ID: <45D97F0F.2010208@gmail.com> El boa constructor puede ser lo que buscas. Remitente: Daniel Muñiz Fontoira Eu uso software libre [1] [1]http://www.gnu.org/philosophy/free-sw.gl.html Gabri escribió: > Hola a a tod en s. > Llevo unos 5 años desarrollando en Python, pero siempre orientado a la > producción. Quiero decir, que siempre he desarrollado para ejecutarlo desde > una línea de MSDOS. Cuando necesito algo visual lo desarrollo en Visual > Basic, y listo. > Me gusta más Python y la verdad es que la tendencia a la que quiero ir es a > usar Python como Visual Basic, es decir de forma visual. Existe "algo" para > poder programar en Python de forma visual, a modo de Visual Basic, donde > pueda poner combos para seleccionar, cuadros de texto, tablas para mostrar > datos, ... y por detrás haya un código [...]?. > > Muchas gracias, y un saludo. > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From jrvilda en gmail.com Mon Feb 19 12:05:22 2007 From: jrvilda en gmail.com (Josu Rodriguez Vilda) Date: Mon, 19 Feb 2007 12:05:22 +0100 Subject: Entorno =?ISO-8859-1?Q?gr=E1fico?= In-Reply-To: <61290ece0702190151i304b515dob27ba7e00eb456fd@mail.gmail.com> References: <61290ece0702190151i304b515dob27ba7e00eb456fd@mail.gmail.com> Message-ID: <45D98472.9070102@gmail.com> Yo empeze con boa, pero le encontre algunos fallos y tampoco parece estar muy activo el proyecto, mas que nada por las versiones que se han quedado un poco estancadas. Yo estoy usando visulawx http://visualwx.altervista.org/ y la verdad que no he encontrado ninguna limitación, y la version es reciente. Gabri wrote: > Hola a a tod en s. > Llevo unos 5 años desarrollando en Python, pero siempre orientado a la > producción. Quiero decir, que siempre he desarrollado para ejecutarlo > desde > una línea de MSDOS. Cuando necesito algo visual lo desarrollo en Visual > Basic, y listo. > Me gusta más Python y la verdad es que la tendencia a la que quiero ir > es a > usar Python como Visual Basic, es decir de forma visual. Existe "algo" > para > poder programar en Python de forma visual, a modo de Visual Basic, donde > pueda poner combos para seleccionar, cuadros de texto, tablas para > mostrar > datos, ... y por detrás haya un código [...]?. > > Muchas gracias, y un saludo. > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From evelasco en notes.banesto.es Mon Feb 19 12:27:51 2007 From: evelasco en notes.banesto.es (evelasco en notes.banesto.es) Date: Mon, 19 Feb 2007 12:27:51 +0100 Subject: Entorno =?ISO-8859-1?Q?gr=E1fico?= Message-ID: Pido disculpas de antemano a los listeros, porque con seguridad el tema que voy a preguntar se ha ido tratando. Como no obstante no lo he llegado a ver como resumen, pregunto: ¿Alguien podría hacer un resumen o apuntar a un resumen de los diferentes Toolkits gráficos y sus condiciones de licencia? Al igual que la persona que inició este thread, me gustaría poder sustituir total y absolutamente VB por Python, pero no quiero encontrarme, por ejemplo, con que tengo que pagar royalties si mi aplicación es comercial, como parece que pasa con Wx (¿?). Muchas gracias por la paciencia. Este mensaje y sus anexos pueden contener información confidencial, por lo que se informa de que su uso no autorizado está prohibido por la ley. Si Vd. considera que no es el destinatario pretendido por el remitente, por favor póngalo en su conocimiento por esta misma vía o por cualquier otro medio y elimine esta comunicación y los anexos de su sistema, sin copiar, remitir o revelar los contenidos del mismo a cualquier otra persona. Cualquier información, opinión, conclusión, recomendación, etc. contenida en el presente mensaje no relacionada con la actividad empresarial del Grupo Banesto y/o emitida por persona sin capacidad para ello, deberá considerarse como no proporcionada ni aprobada por el Banco. Banesto pone los medios a su alcance para garantizar la seguridad y ausencia de errores en la correspondencia electrónica, pero no puede asegurar la inexistencia de virus o la no alteración de los documentos transmitidos electrónicamente, por lo que declina cualquier responsabilidad a este respecto. This message and its contents may contain confidential information and its non-authorised use is prohibited by law. If you are not the intended recipient of this email, please advise the sender of the fact using the same, or other, means and delete this message and its contents from your system without copying, forwarding or revealing the contents of the message to any other person. Any information, opinion, conclusion, recommendation, etc. contained in this message and which is unrelated to the business activity of Grupo Banesto and/or issued by unauthorised personnel, shall be considered unapproved by the Bank. Banesto implements control measures to ensure, as far as possible, the security and reliability of all its electronic correspondence. However, the Bank does not guarantee that emails are virus-free or that documents have not be altered and takes no responsibility in this respect. From pych3m4 en gmail.com Mon Feb 19 12:47:21 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Mon, 19 Feb 2007 12:47:21 +0100 Subject: Python en Windows In-Reply-To: References: <20070215165214.2FD8D146DA97@devnull.aditel.org> Message-ID: <2c9fb0dd0702190347p529d9120uf24d2dfbbbf1873d@mail.gmail.com> El 19/02/07, Rafael Cantos escribió: > Hola. aunque lance la consola, tanto desde la opción de python como a través > de una ventana de ms-dos, el resultado es el mismo. Si pongo: > fichero.py > ó > fichero > ó > python fichero.py > ó > python fichero > me devuelve el siguiente error: > Traceback (most recent call last: > File "", line 1, in > NameError: name 'fichero' is not defined Por el error que pones, estás intentando ejecutar la orden desde la "cónsola python". Vuelve a probar, pero esta vez desde la "cónsola de ms-dos". From pych3m4 en gmail.com Mon Feb 19 12:56:10 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Mon, 19 Feb 2007 12:56:10 +0100 Subject: =?ISO-8859-1?Q?Re:__Entorno_gr=E1fico?= In-Reply-To: References: Message-ID: <2c9fb0dd0702190356n5739f653s67fe6697f101cb30@mail.gmail.com> El 19/02/07, evelasco en notes.banesto.es escribió: > Pido disculpas de antemano a los listeros, porque con seguridad el tema que > voy a preguntar se ha ido tratando. Como no obstante no lo he llegado a > ver como resumen, pregunto: ¿Alguien podría hacer un resumen o apuntar a un > resumen de los diferentes Toolkits gráficos y sus condiciones de licencia? Mírate éste artículo: http://libertonia.escomposlinux.org/story/2002/12/31/13481/135 Te pongo algunos mensajes. Aunque son de hace un tiempo, siguen estando vigentes: > Al igual que la persona que inició este thread, me gustaría poder sustituir > total y absolutamente VB por Python, pero no quiero encontrarme, por > ejemplo, con que tengo que pagar royalties si mi aplicación es comercial, > como parece que pasa con Wx (¿?). > > Muchas gracias por la paciencia. > > > Este mensaje y sus anexos pueden contener información confidencial, por lo > que se informa de que su uso no autorizado está prohibido por la ley. Si > Vd. considera que no es el destinatario pretendido por el remitente, por > favor póngalo en su conocimiento por esta misma vía o por cualquier otro > medio y elimine esta comunicación y los anexos de su sistema, sin copiar, > remitir o revelar los contenidos del mismo a cualquier otra persona. > Cualquier información, opinión, conclusión, recomendación, etc. contenida > en el presente mensaje no relacionada con la actividad empresarial del > Grupo Banesto y/o emitida por persona sin capacidad para ello, deberá > considerarse como no proporcionada ni aprobada por el Banco. Banesto > pone los medios a su alcance para garantizar la seguridad y ausencia de > errores en la correspondencia electrónica, pero no puede asegurar la > inexistencia de virus o la no alteración de los documentos transmitidos > electrónicamente, por lo que declina cualquier responsabilidad a este > respecto. > > This message and its contents may contain confidential information and its > non-authorised use is prohibited by law. If you are not the intended > recipient of this email, please advise the sender of the fact using the > same, or other, means and delete this message and its contents from your > system without copying, forwarding or revealing the contents of the > message to any other person. Any information, opinion, conclusion, > recommendation, etc. contained in this message and which is unrelated to > the business activity of Grupo Banesto and/or issued by unauthorised > personnel, shall be considered unapproved by the Bank. Banesto implements > control measures to ensure, as far as possible, the security and > reliability of all its electronic correspondence. However, the Bank does > not guarantee that emails are virus-free or that documents have not be > altered and takes no responsibility in this respect. > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From dmunhiz en gmail.com Mon Feb 19 12:56:55 2007 From: dmunhiz en gmail.com (=?ISO-8859-1?Q?Daniel_Mu=F1iz_Fontoira?=) Date: Mon, 19 Feb 2007 12:56:55 +0100 Subject: Entorno =?ISO-8859-1?Q?gr=E1fico?= In-Reply-To: <45D98472.9070102@gmail.com> References: <61290ece0702190151i304b515dob27ba7e00eb456fd@mail.gmail.com> <45D98472.9070102@gmail.com> Message-ID: <45D99087.6070108@gmail.com> Activo está (no es que sea mucho pero sí), por lo menos la lista. El cvs se actualiza. Yo uso la versión 0.52. Remitente: Daniel Muñiz Fontoira Eu uso software libre [1] [1]http://www.gnu.org/philosophy/free-sw.gl.html Josu Rodriguez Vilda escribió: > Yo empeze con boa, pero le encontre algunos fallos y tampoco parece > estar muy activo el proyecto, mas que nada por las versiones que se han > quedado un poco estancadas. > Yo estoy usando visulawx http://visualwx.altervista.org/ y la verdad que > no he encontrado ninguna limitación, y la version es reciente. > > > > Gabri wrote: >> Hola a a tod en s. >> Llevo unos 5 años desarrollando en Python, pero siempre orientado a la >> producción. Quiero decir, que siempre he desarrollado para ejecutarlo >> desde >> una línea de MSDOS. Cuando necesito algo visual lo desarrollo en Visual >> Basic, y listo. >> Me gusta más Python y la verdad es que la tendencia a la que quiero ir >> es a >> usar Python como Visual Basic, es decir de forma visual. Existe "algo" >> para >> poder programar en Python de forma visual, a modo de Visual Basic, donde >> pueda poner combos para seleccionar, cuadros de texto, tablas para >> mostrar >> datos, ... y por detrás haya un código [...]?. >> >> Muchas gracias, y un saludo. >> _______________________________________________ >> Python-es mailing list >> Python-es en aditel.org >> http://listas.aditel.org/listinfo/python-es >> > > > ------------------------------------------------------------------------ > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es From jjachuf en gmail.com Mon Feb 19 13:04:41 2007 From: jjachuf en gmail.com (=?ISO-8859-1?Q?Jos=E9_Jachuf?=) Date: Mon, 19 Feb 2007 09:04:41 -0300 Subject: Entorno =?ISO-8859-1?Q?gr=E1fico?= In-Reply-To: <45D98472.9070102@gmail.com> References: <61290ece0702190151i304b515dob27ba7e00eb456fd@mail.gmail.com> <45D98472.9070102@gmail.com> Message-ID: <45D99259.1030102@gmail.com> Josu Rodriguez Vilda escribió: > Yo empeze con boa, pero le encontre algunos fallos y tampoco parece > estar muy activo el proyecto, mas que nada por las versiones que se > han quedado un poco estancadas. > Yo estoy usando visulawx http://visualwx.altervista.org/ y la verdad > que no he encontrado ninguna limitación, y la version es reciente. Como se hace con visualwx para trabajar con grids? Jose From pych3m4 en gmail.com Mon Feb 19 13:06:04 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Mon, 19 Feb 2007 13:06:04 +0100 Subject: =?ISO-8859-1?Q?Re:__Entorno_gr=E1fico?= In-Reply-To: <61290ece0702190151i304b515dob27ba7e00eb456fd@mail.gmail.com> References: <61290ece0702190151i304b515dob27ba7e00eb456fd@mail.gmail.com> Message-ID: <2c9fb0dd0702190406t6599c9b0h31a805d1bb667ede@mail.gmail.com> El 19/02/07, Gabri escribió: > Llevo unos 5 años desarrollando en Python, pero siempre orientado a la > producción. Quiero decir, que siempre he desarrollado para ejecutarlo desde > una línea de MSDOS. Cuando necesito algo visual lo desarrollo en Visual > Basic, y listo. > Me gusta más Python y la verdad es que la tendencia a la que quiero ir es a > usar Python como Visual Basic, es decir de forma visual. Existe "algo" para > poder programar en Python de forma visual, a modo de Visual Basic, donde > pueda poner combos para seleccionar, cuadros de texto, tablas para mostrar > datos, ... y por detrás haya un código [...]?. Hay varias alternativas a elegir, según el toolkit gráfico de tus amores. De estilo VB tienes pythoncard, fácil de usar y sin grandes pretensiones. En plan más profesional, mírate el qtdesiner y pyqt que, creo yo, está a la misma altura o incluso más de que lo se pueda hacer con VB, y encima es GPL y multiplataforma. From antonio en xilus.es Mon Feb 19 12:58:47 2007 From: antonio en xilus.es (Antonio =?ISO-8859-1?Q?Guti=E9rrez?=) Date: Mon, 19 Feb 2007 12:58:47 +0100 Subject: llamar dialogo con wxpython In-Reply-To: References: Message-ID: <1171886327.4665.3.camel@Pc-01> -Si la ventana es diseñada con Con boa-constructor: import ventana = .create(self) ventana.Show() o ventana.ShowModal() -Si la ventana es diseñada a mano: import ventana = .ClaseVentana(self) ventana.Show() o ventana.ShowModal() -Se considera que la ventana adicional está en otro fichero .py -Se puede usar Show() para mostrarla como otra ventana más o ShowModal() para mostrarla como una ventana modal. Saludos a todos -- Antonio Gutiérrez ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From rafaelcantos en hotmail.com Mon Feb 19 13:45:39 2007 From: rafaelcantos en hotmail.com (Rafael Cantos) Date: Mon, 19 Feb 2007 12:45:39 +0000 Subject: python y Windows In-Reply-To: <20070219120618.769E9145F967@devnull.aditel.org> References: <20070219120618.769E9145F967@devnull.aditel.org> Message-ID: GraciasChema! Era eso. Al ejecutarlo desde la consola de ms-dos sale, aunque da algunos warning que no sé por qué serán, pero eso ya es otro tema, jeje. Saludos y gracias a todos. Rafa >El 19/02/07, Rafael Cantos escribió: > > Hola. aunque lance la consola, tanto desde la opción de python como a >través > > de una ventana de ms-dos, el resultado es el mismo. Si pongo: > > fichero.py > > ó > > fichero > > ó > > python fichero.py > > ó > > python fichero > > me devuelve el siguiente error: > > Traceback (most recent call last: > > File "", line 1, in > > NameError: name 'fichero' is not defined > >Por el error que pones, estás intentando ejecutar la orden desde la >"cónsola python". Vuelve a probar, pero esta vez desde la "cónsola de >ms-dos". _________________________________________________________________ Moda para esta temporada. Ponte al día de todas las tendencias. http://www.msn.es/Mujer/moda/default.asp From evelasco en notes.banesto.es Mon Feb 19 16:29:24 2007 From: evelasco en notes.banesto.es (evelasco en notes.banesto.es) Date: Mon, 19 Feb 2007 16:29:24 +0100 Subject: Entorno =?ISO-8859-1?Q?gr=E1fico?= Message-ID: Muchas gracias, investigaré desde este enlace. Un cordial saludo. Enrique Velasco Díaz Unidad de Tecnología Tesorería y Mercados Mesena, 80 -CPD Planta 0 91.338.12.41 Este mensaje y sus anexos pueden contener información confidencial, por lo que se informa de que su uso no autorizado está prohibido por la ley. Si Vd. considera que no es el destinatario pretendido por el remitente, por favor póngalo en su conocimiento por esta misma vía o por cualquier otro medio y elimine esta comunicación y los anexos de su sistema, sin copiar, remitir o revelar los contenidos del mismo a cualquier otra persona. Cualquier información, opinión, conclusión, recomendación, etc. contenida en el presente mensaje no relacionada con la actividad empresarial del Grupo Banesto y/o emitida por persona sin capacidad para ello, deberá considerarse como no proporcionada ni aprobada por el Banco. Banesto pone los medios a su alcance para garantizar la seguridad y ausencia de errores en la correspondencia electrónica, pero no puede asegurar la inexistencia de virus o la no alteración de los documentos transmitidos electrónicamente, por lo que declina cualquier responsabilidad a este respecto. This message and its contents may contain confidential information and its non-authorised use is prohibited by law. If you are not the intended recipient of this email, please advise the sender of the fact using the same, or other, means and delete this message and its contents from your system without copying, forwarding or revealing the contents of the message to any other person. Any information, opinion, conclusion, recommendation, etc. contained in this message and which is unrelated to the business activity of Grupo Banesto and/or issued by unauthorised personnel, shall be considered unapproved by the Bank. Banesto implements control measures to ensure, as far as possible, the security and reliability of all its electronic correspondence. However, the Bank does not guarantee that emails are virus-free or that documents have not be altered and takes no responsibility in this respect. From sonajadiabolica en gmail.com Mon Feb 19 16:36:17 2007 From: sonajadiabolica en gmail.com (aNgel rEsendiz g.) Date: Mon, 19 Feb 2007 09:36:17 -0600 Subject: Python en Windows In-Reply-To: References: <20070215165214.2FD8D146DA97@devnull.aditel.org> Message-ID: <8d9e208f0702190736t55aca124wfe88e44da03654ba@mail.gmail.com> > Hola. aunque lance la consola, tanto desde la opción de python como a través > de una ventana de ms-dos, el resultado es el mismo. Si pongo: > fichero.py > ó > fichero > ó > python fichero.py > ó > python fichero > me devuelve el siguiente error: > Traceback (most recent call last: > File "", line 1, in > NameError: name 'fichero' is not defined > > El programa, entre otros, que me falla es el del tutorial de pygtk , > packbox.py, que se encuentra en la siguiente dirección: > > > http://www.pygtk.org/pygtk2tutorial-es/examples/packbox.py > > gracias de nuevo. > Esos errores son de python, debes ejecutar el programa desde la consola de ms-dos. para ello, me parece que la ruta es inicio-->todos los programas--> accesorios-->simbolo de sistema . Para evitar problemas con la ruta, pudes ejecutar tu programa ingresando el nombre de archivo con todo y ruta, y para ello, puede ser comodo que te crees una carpeta en la raiz, para tus programas. Los ejecutarias algo así: "c:\archivos de programa\python2.x\python.exe c:\mis_py\mi_programita.py". Por último, para que no te salga la consola en la parte de atrás, cambia la extención de tu programa principal de ".py" a ".pyw". Saludos. -- aNgel rEsendiz.! From gabri.losada en gmail.com Mon Feb 19 16:41:41 2007 From: gabri.losada en gmail.com (Gabri) Date: Mon, 19 Feb 2007 16:41:41 +0100 Subject: =?ISO-8859-1?Q?Re:__Entorno_gr=E1fico?= In-Reply-To: References: Message-ID: <61290ece0702190741p2e164319pc52437a930bf2c96@mail.gmail.com> Por lo que he podido leer entre líneas no hay ningún editor específico y que sea el más usado. Cada uno usa el que mejor le viene. Bueno, probaré con alguinos de lso que me habeis comentado. Muchas gracias, y un saludo. El día 19/02/07, evelasco en notes.banesto.es escribió: > > > > > > Muchas gracias, investigaré desde este enlace. > > Un cordial saludo. > > Enrique Velasco Díaz > Unidad de Tecnología > Tesorería y Mercados > Mesena, 80 -CPD Planta 0 > 91.338.12.41 > > Este mensaje y sus anexos pueden contener información confidencial, por lo > que se informa de que su uso no autorizado está prohibido por la ley. Si > Vd. considera que no es el destinatario pretendido por el remitente, por > favor póngalo en su conocimiento por esta misma vía o por cualquier otro > medio y elimine esta comunicación y los anexos de su sistema, sin > copiar, > remitir o revelar los contenidos del mismo a cualquier otra persona. > Cualquier información, opinión, conclusión, recomendación, etc. > contenida > en el presente mensaje no relacionada con la actividad empresarial del > Grupo Banesto y/o emitida por persona sin capacidad para ello, deberá > considerarse como no proporcionada ni aprobada por el Banco. Banesto > pone los medios a su alcance para garantizar la seguridad y ausencia de > errores en la correspondencia electrónica, pero no puede asegurar la > inexistencia de virus o la no alteración de los documentos transmitidos > electrónicamente, por lo que declina cualquier responsabilidad a este > respecto. > > This message and its contents may contain confidential information and its > non-authorised use is prohibited by law. If you are not the intended > recipient of this email, please advise the sender of the fact using the > same, or other, means and delete this message and its contents from your > system without copying, forwarding or revealing the contents of the > message to any other person. Any information, opinion, conclusion, > recommendation, etc. contained in this message and which is unrelated to > the business activity of Grupo Banesto and/or issued by unauthorised > personnel, shall be considered unapproved by the Bank. Banesto > implements > control measures to ensure, as far as possible, the security and > reliability of all its electronic correspondence. However, the Bank does > not guarantee that emails are virus-free or that documents have not be > altered and takes no responsibility in this respect. > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From jrvilda en gmail.com Mon Feb 19 16:50:04 2007 From: jrvilda en gmail.com (Josu Rodriguez Vilda) Date: Mon, 19 Feb 2007 16:50:04 +0100 Subject: Entorno =?ISO-8859-1?Q?gr=E1fico?= In-Reply-To: <45D99259.1030102@gmail.com> References: <61290ece0702190151i304b515dob27ba7e00eb456fd@mail.gmail.com> <45D98472.9070102@gmail.com> <45D99259.1030102@gmail.com> Message-ID: <45D9C72C.4060608@gmail.com> En este momento me pilláis en el trabajo y no tengo el programa delante. Si es verdad que al principio es difícil coger la forma que tiene de trabajar, como meter codigo en las funciones o escribir debajo de las lineas que pone escribe a partir de aquí tu código. pero la verdad es el mas completo que he usado, y es bastante cómodo. Tiene algún fallo con los refrescos sobre todo cuando se usan capas. José Jachuf wrote: > Josu Rodriguez Vilda escribió: >> Yo empeze con boa, pero le encontre algunos fallos y tampoco parece >> estar muy activo el proyecto, mas que nada por las versiones que se >> han quedado un poco estancadas. >> Yo estoy usando visulawx http://visualwx.altervista.org/ y la verdad >> que no he encontrado ninguna limitación, y la version es reciente. > Como se hace con visualwx para trabajar con grids? > > Jose > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From ingcomrbr en gmail.com Mon Feb 19 17:02:49 2007 From: ingcomrbr en gmail.com (Ramon Becerra Reynoso) Date: Mon, 19 Feb 2007 10:02:49 -0600 Subject: =?iso-8859-1?q?Re=3A_Resumen_de_Python-es=2C_Vol_298?= =?iso-8859-1?q?=2C_Env=EDo_31?= In-Reply-To: <20070219101225.B8E22144E239@devnull.aditel.org> References: <20070219101225.B8E22144E239@devnull.aditel.org> Message-ID: > > Asuntos del día: > > 1. Re: Hola (NeCuDeCo) > 2. Re: Hola (Milton Galo Patricio) > 3. Programas de Python (Idoia Villacián Zárate) > 4. Re: Programas de Python (lasizoillo) > 5. Justificado de columnas en en QTableView pyqt4? (Lorenzo Tejera) > 6. llamar dialogo con wxpython (LUISMY GUERRERO) > 7. Paquete para manejo de Fechas/Horas (Raúl Alexis Betancor Santana) > 8. Entorno gráfico (Gabri) > 9. RE: Python en Windows (Rafael Cantos) > > Hola a todos: > > > Estoy un poco perdidilla en esto y a la vez un tanto liadilla,estoy > siguiendo mediante un documento como utilizar Apache con Python,tengo > todo instalado y configurado. > > Para empezar nose porque depende de donde ponga el programa en una > carpeta u otra me sale en la direccion url o no. > > > Segundo,y creo lo mas importante,al seguir un documento pos estoy > probando un programa simple que viene,vamos el hola mundo,he probado > dos y en los dos no me sale lo que me tiene que salir: > > > El primero es este: > > > > > <% > > if form.has_key('nombre'): # el objeto es descrito en la siguiente > seccion > > saludo= '¡Hola,%s!' % form['nombre'].capitalize() > > else: > > saludo = 'Hola solop!' > > #end > > %> > >

<&=saludo %>

> > > > > Aquí deferia de salirme¡Hola,solop! Pero lo que me sale es: <&=saludo %> > > El segundo programilla es este: > > def _formatAsHTML(req, content): > > req.content_type = "text/html" > > return "Hola Mundo Python > CGI

Ejemplo Python de CGI

" + content + > "

" > > Aqui me deberia de salir Ejemplo Python de CGI y lo que me sale a mi es: > > def _formatAsHTML (req, content): req.content_type = "text/html" > return " > > Ejemplo Python de CGI > > " + content + " > > " > > Yo veo que def_formatAsHTML me sobra y lo que sigue tambien,lo mismo con > content y lo demas. > > Si alguien me puede echar una mano,muchas gracias de todas maneras. > > Otra opcion para Python sobre Apache es SPYCE PSP ( Python Server Pages ) http://spyce.sourceforge.net/ checala pagina es mas facil de configurar. Y comienzas a programas en menos de 5 minutos. Saludos. !!! -- No basta saber, se debe también aplicar. No es suficiente querer, se debe también hacer. From dmunhiz en gmail.com Mon Feb 19 18:57:02 2007 From: dmunhiz en gmail.com (=?ISO-8859-1?Q?Daniel_Mu=F1iz_Fontoira?=) Date: Mon, 19 Feb 2007 18:57:02 +0100 Subject: Entorno =?ISO-8859-1?Q?gr=E1fico?= In-Reply-To: <45D9C72C.4060608@gmail.com> References: <61290ece0702190151i304b515dob27ba7e00eb456fd@mail.gmail.com> <45D98472.9070102@gmail.com> <45D99259.1030102@gmail.com> <45D9C72C.4060608@gmail.com> Message-ID: <45D9E4EE.7060604@gmail.com> Yo pienso que una vez le pillas el tranquillo va muy bien. La posibilidad de diseñar formularios de forma visual facilita mucho las cosas. Yo en lo poco que lo he usado estoy bastante satisfecho. Saludos Remitente: Daniel Muñiz Fontoira Eu uso software libre [1] [1]http://www.gnu.org/philosophy/free-sw.gl.html Josu Rodriguez Vilda escribió: > En este momento me pilláis en el trabajo y no tengo el programa delante. > Si es verdad que al principio es difícil coger la forma que tiene de > trabajar, como meter codigo en las funciones o escribir debajo de las > lineas que pone escribe a partir de aquí tu código. pero la verdad es el > mas completo que he usado, y es bastante cómodo. > Tiene algún fallo con los refrescos sobre todo cuando se usan capas. > > > José Jachuf wrote: >> Josu Rodriguez Vilda escribió: >>> Yo empeze con boa, pero le encontre algunos fallos y tampoco parece >>> estar muy activo el proyecto, mas que nada por las versiones que se >>> han quedado un poco estancadas. >>> Yo estoy usando visulawx http://visualwx.altervista.org/ y la verdad >>> que no he encontrado ninguna limitación, y la version es reciente. >> Como se hace con visualwx para trabajar con grids? >> >> Jose >> _______________________________________________ >> Python-es mailing list >> Python-es en aditel.org >> http://listas.aditel.org/listinfo/python-es >> > > > ------------------------------------------------------------------------ > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es From fidita48 en hotmail.com Mon Feb 19 21:00:46 2007 From: fidita48 en hotmail.com (=?iso-8859-1?B?SWRvaWEgVmlsbGFjaeFuIFrhcmF0ZQ==?=) Date: Mon, 19 Feb 2007 21:00:46 +0100 Subject: Hola Message-ID: Bueno,yo tambien ando un poco descolocada la verdad,porque me veo bastante perdida en todo esto.He echo el cambio que me has dicho poner las comillas pero nada,me sigue saliendo lo mismo de antes pero con las comillas,es decir,esto: "<%=saludo%>". Pos estoy utilizando Apache 2.0.59,tengo Python 2.4 y mod_python instalados.He seguido las indicaciones de esta pagina,que es para una aplicacion web que va a acceder a una base de datos,que es lo que yo quiero,dejo la direccion aqui y gracias por todo. [1]http://64.233.183.104/search?q=cache:5gAIA8nOok0J:paginaspersonales .deusto.es/dipina/publications/PensandoEnPythonIII.pdf+http://paginasp ersonales.deusto.es/dipina/publications/PensandoEnPythonIII&hl=es&ct=c lnk&cd=1 PD: Bueno,no me entra toda la dire entera. _________________________________________________________________ Ofertas y reservas para viajar por todo el mundo. [2]Organiza y contrata tus viajes aquí. References 1. http://64.233.183.104/search?q=cache:5gAIA8nOok0J:paginaspersonales.deusto.es/dipina/publications/PensandoEnPythonIII.pdf+http://paginaspersonales.deusto.es/dipina/publications/PensandoEnPythonIII&hl=es&ct=clnk&cd=1 2. http://g.msn.com/8HMAESES/2749??PS=47575 From juatman_2000 en yahoo.es Mon Feb 19 21:34:23 2007 From: juatman_2000 en yahoo.es (Juan M.) Date: Mon, 19 Feb 2007 21:34:23 +0100 Subject: =?iso-8859-1?Q?Re:_=5BPython-es=5D_Entorno_gr=E1fico?= References: <61290ece0702190151i304b515dob27ba7e00eb456fd@mail.gmail.com> <45D98472.9070102@gmail.com> Message-ID: <000f01c75465$587410a0$358ae050@equipo> Coincido con lo que aquí se ha dicho sobre los entornos gráficos. Tengo entendido que Gtk es una evolución de Tk, y que Wx es una evolución de Gtk. Pienso que las bibliotecas Wx son las más "universales". Hay dos entornos gráficos multi-plataforma que me parecen interesantes: 1* Boa Constructor. Es lo más parecido a VB, aunque tiene una manera un poco rara de componer los formularios, una vez que te acostumbras, es fácil. Dispone de un editor/depurador de código muy bueno, pero aún está en su versión alfa y se cuelga a menudo. 2* Pythoncard. Sólo para construir el interfaz gráfico, no dispone del editor de código tan bueno como el de Boa, ahora bien, tiene una ventaja: si necesitas importar formularios creados con VB, tienes VB2PY una herramienta que te los convierte al formato utilizado por Pythoncard, eso si; si tienes controles "raros", no te los convierte, sólo los típicos botones, cajas de texto, menúes desplegables, etc. Si encontrais dificltades para hacer funcionar VB2PY, existe un foro casi dormido aquí: http://sourceforge.net/mailarchive/forum.php?forum_id=34207 , en los dos mensajes de Enero de 2007 tengo una "conversación" con el famoso Paul Paterson en la que nos ayuda a resolver las dificultades. Si teneis alguna pega, aquí me teneis :-) Si buscais un editor/depurador multi-plataforma, al final he llegado a la conclusión muy personal de que easyeclipse-python, que utiliza PyDev, es la solución más estable: http://www.easyeclipse.org/site/distributions/python.html FUTUROS RAD PARA PYTHON: Estaba deseoso de que Netbeans pusiera python/jython al nivel en que ahora funciona java, pero parece que el proyecto Coyote (Python/Jython y Groovy) se está desinflando, mientras que Ruby está tomando fuerza. ?¿ Saludos a toda la buena gente de esta lista. :-) ______________________________________________ LLama Gratis a cualquier PC del Mundo. Llamadas a fijos y móviles desde 1 céntimo por minuto. http://es.voice.yahoo.com From marcelobarbero en arnet.com.ar Mon Feb 19 21:43:22 2007 From: marcelobarbero en arnet.com.ar (Marcelo Barbero) Date: Mon, 19 Feb 2007 17:43:22 -0300 Subject: =?iso-8859-1?Q?RE:_=5BPython-es=5D_Entorno_gr=E1fico?= In-Reply-To: <000f01c75465$587410a0$358ae050@equipo> References: <000f01c75465$587410a0$358ae050@equipo> Message-ID: <20070219204326.82BC71B03D0@dns2.uji.es> -----Mensaje original----- De: python-es-bounces en aditel.org [mailto:python-es-bounces en aditel.org] En nombre de Juan M. Enviado el: Lunes 19 de Febrero de 2007 05:34 p.m. Para: La lista de python en castellano Asunto: Re: [Python-es] Entorno gráfico Coincido con lo que aquí se ha dicho sobre los entornos gráficos. Tengo entendido que Gtk es una evolución de Tk, y que Wx es una evolución de Gtk. Pienso que las bibliotecas Wx son las más "universales". --------------------------- Correcciones a esta información: GTK es acrónimo de Gimp ToolKit (un kit de herramientas del proyecto Gimp: el escritorio Gnome utiliza este toolkit). Tk es el toolkit originalmente asociado al lenguaje de programación Tcl (nada que ver con GTK). wxPython es un "wrapper" de Python sobre los wxWidgets (widgets en C++), que intentan mantener un "look and feel" de cada sistema operativo. En Windows, llaman a los controles nativos de Windows; en Linux, utilizan las GTK; en Mac no sé qué usan. Pero en definitiva, son una API que luego se implementa con distintas librerías de cada sistema operativo en particular. Marcelo From rafaelcantos en hotmail.com Mon Feb 19 21:47:07 2007 From: rafaelcantos en hotmail.com (Rafael Cantos) Date: Mon, 19 Feb 2007 20:47:07 +0000 Subject: python en Windows In-Reply-To: <20070219175722.19144145F991@devnull.aditel.org> References: <20070219175722.19144145F991@devnull.aditel.org> Message-ID: Hola. era eso justo lo que buscaba para que no saliese la consola. Gracias, ambién me he creado una carpeta como me dijiste, mucho más cómodo. Muchas gracias otra vez Ángel. Saludos. Rafa > > Hola. aunque lance la consola, tanto desde la opción de python como a >través > > de una ventana de ms-dos, el resultado es el mismo. Si pongo: > > fichero.py > > ó > > fichero > > ó > > python fichero.py > > ó > > python fichero > > me devuelve el siguiente error: > > Traceback (most recent call last: > > File "", line 1, in > > NameError: name 'fichero' is not defined > > > > El programa, entre otros, que me falla es el del tutorial de pygtk , > > packbox.py, que se encuentra en la siguiente dirección: > > > > > > http://www.pygtk.org/pygtk2tutorial-es/examples/packbox.py > > > > gracias de nuevo. > > > Esos errores son de python, debes ejecutar el programa desde la >consola de ms-dos. para ello, me parece que la ruta es inicio-->todos >los programas--> accesorios-->simbolo de sistema . > > Para evitar problemas con la ruta, pudes ejecutar tu programa >ingresando el nombre de archivo con todo y ruta, y para ello, puede >ser comodo que te crees una carpeta en la raiz, para tus programas. >Los ejecutarias algo así: "c:\archivos de >programa\python2.x\python.exe c:\mis_py\mi_programita.py". > > Por último, para que no te salga la consola en la parte de atrás, >cambia la extención de tu programa principal de ".py" a ".pyw". > >Saludos. >-- >aNgel rEsendiz.! _________________________________________________________________ Dale rienda suelta a tu tiempo libre. Mil ideas para exprimir tu ocio con MSN Entretenimiento. http://entretenimiento.msn.es/ From juatman_2000 en yahoo.es Mon Feb 19 21:54:02 2007 From: juatman_2000 en yahoo.es (Juan M.) Date: Mon, 19 Feb 2007 21:54:02 +0100 Subject: =?iso-8859-1?Q?Re:_=5BPython-es=5D_Entorno_gr=E1fico?= References: <20070219204326.82BC71B03D0@dns2.uji.es> Message-ID: <003801c75468$17aaccf0$358ae050@equipo> Gracias Marcelo. ¡A veces se lee cada cosa en Internet que...!. ¡Ya me parecía algo rarillo eso de que Gtk fuese una versión mejorada de Tk!. Lo que es cierto es que su estética es mejor. :-) Saludos. ----- Original Message ----- From: "Marcelo Barbero" To: "'La lista de python en castellano'" Sent: Monday, February 19, 2007 9:43 PM Subject: RE: [Python-es] Entorno gráfico (...) --------------------------- Correcciones a esta información: GTK es acrónimo de Gimp ToolKit (un kit de herramientas del proyecto Gimp: el escritorio Gnome utiliza este toolkit). Tk es el toolkit originalmente asociado al lenguaje de programación Tcl (nada que ver con GTK). wxPython es un "wrapper" de Python sobre los wxWidgets (widgets en C++), que intentan mantener un "look and feel" de cada sistema operativo. En Windows, llaman a los controles nativos de Windows; en Linux, utilizan las GTK; en Mac no sé qué usan. Pero en definitiva, son una API que luego se implementa con distintas librerías de cada sistema operativo en particular. Marcelo (...) ______________________________________________ LLama Gratis a cualquier PC del Mundo. Llamadas a fijos y móviles desde 1 céntimo por minuto. http://es.voice.yahoo.com From kh_alatar en telefonica.net Mon Feb 19 23:12:49 2007 From: kh_alatar en telefonica.net (Alatar) Date: Mon, 19 Feb 2007 23:12:49 +0100 Subject: Problema con ventana modal gtk Message-ID: <45DA20E1.1040006@telefonica.net> Saludos. Antes de iniciar un proceso lanzo un gtk.MessageDialog para mostrar los parámetros que se usarán y pedir su confirmación. El problema es que una vez le doy a aceptar, el proceso se inicia y la ventana modal no se cierra hasta que éste no finaliza. El diálogo lo lanzo mediante un dialogo.run() de la forma: proceso . . respuesta = dialogo.run() dialogo.destroy() . . proceso según respuesta ¿Hay alguna forma de forzar a cerrar el diálogo o esperar a que éste se destruya? Gracias, Alatar ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From gerardo699 en gmail.com Mon Feb 19 23:44:46 2007 From: gerardo699 en gmail.com (Gerardo Ayala G.) Date: Mon, 19 Feb 2007 17:44:46 -0500 Subject: Hola Message-ID: > Hola a todos ... > > Necesito hacer el control del movimiento contable de un restaurente > lo que se refiere a: > ---------------- > Productos > Ventas > Compras > Pagos > ---------------- > productos --> Ingresar nuevos productos > ventas --> Ventas diarias , totalizar ventas diarias y mensuales > compras --> Lo que se compra para el restaurante > Pagos --> Deudas del restaurante que se van pagando > > ALguien que me pueda colaborar con un ejemplo de como manejar esto. > > De antemano muchas gracias..... -- Gerardo A. From julian.alberto.acevedo en gmail.com Tue Feb 20 00:25:04 2007 From: julian.alberto.acevedo en gmail.com (=?ISO-8859-1?Q?Julian_Alberto_Acevedo_Nore=F1a?=) Date: Mon, 19 Feb 2007 18:25:04 -0500 Subject: Problema con ventana modal gtk In-Reply-To: <45DA20E1.1040006@telefonica.net> References: <45DA20E1.1040006@telefonica.net> Message-ID: <12575f860702191525t1802e106v6d2155005397a9d1@mail.gmail.com> Cuando haces respuesta = dialogo.run() obligas al dialogo a cerrarse unicamente cuando el usuario de respuesta al dialogo, es decir, al hacer click en OK, o en CANCEL, segun hayas configurado tu dialogo El día 19/02/07, Alatar escribió: > > Saludos. > > Antes de iniciar un proceso lanzo un gtk.MessageDialog para mostrar los > parámetros que se usarán y pedir su confirmación. > > El problema es que una vez le doy a aceptar, el proceso se inicia y la > ventana modal no se cierra hasta que éste no finaliza. > > El diálogo lo lanzo mediante un dialogo.run() de la forma: > > proceso > . > . > respuesta = dialogo.run() > dialogo.destroy() > . > . > proceso según respuesta > > ¿Hay alguna forma de forzar a cerrar el diálogo o esperar a que éste se > destruya? > > Gracias, > Alatar > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > > From kh_alatar en telefonica.net Tue Feb 20 00:32:56 2007 From: kh_alatar en telefonica.net (Alatar) Date: Tue, 20 Feb 2007 00:32:56 +0100 Subject: Problema con ventana modal gtk In-Reply-To: <12575f860702191525t1802e106v6d2155005397a9d1@mail.gmail.com> References: <45DA20E1.1040006@telefonica.net> <12575f860702191525t1802e106v6d2155005397a9d1@mail.gmail.com> Message-ID: <45DA33A8.9030704@telefonica.net> Sí, Julián Alberto, pero el problema es que una vez el usuario ya ha escogido la opción, el programa sigue con el proceso pero la ventana modal permanece un tiempo en pantalla. Yo quiero saber cómo forzar a esperar que desaparezca de pantalla para seguir con el proceso. Gracias. Alatar Julian Alberto Acevedo Noreña escribió: > Cuando haces respuesta = dialogo.run() obligas al dialogo a cerrarse > unicamente cuando el usuario de respuesta al dialogo, es decir, al hacer > click en OK, o en CANCEL, segun hayas configurado tu dialogo > > El día 19/02/07, Alatar escribió: >> >> Saludos. >> >> Antes de iniciar un proceso lanzo un gtk.MessageDialog para mostrar los >> parámetros que se usarán y pedir su confirmación. >> >> El problema es que una vez le doy a aceptar, el proceso se inicia y la >> ventana modal no se cierra hasta que éste no finaliza. >> >> El diálogo lo lanzo mediante un dialogo.run() de la forma: >> >> proceso >> . >> . >> respuesta = dialogo.run() >> dialogo.destroy() >> . >> . >> proceso según respuesta >> >> ¿Hay alguna forma de forzar a cerrar el diálogo o esperar a que éste se >> destruya? >> >> Gracias, >> Alatar >> >> _______________________________________________ >> Python-es mailing list >> Python-es en aditel.org >> http://listas.aditel.org/listinfo/python-es >> >> > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From gagsl-py en yahoo.com.ar Tue Feb 20 00:43:41 2007 From: gagsl-py en yahoo.com.ar (Gabriel Genellina) Date: Mon, 19 Feb 2007 20:43:41 -0300 Subject: Fwd: Hola... Message-ID: <20070219234350.5276394493@marti.uji.es> Hola Por favor sigamos a traves de la lista, hay mucha mas gente y saben mucho mas que yo... > >>> import math > >>> funcs = vars(math) > >>> libres = dict(x=2, y=3) > >>> s = "4*sin(x)*cos(y)" > >>> eval(s, funcs, libres) >-3.6007905189420697 > >--------------------------------------------------------------------------- > >Muchas gracias por la ayuda con lo de la evaluacion de la funcion. >Tuve un pequeño problema > >quiero que cuando yo le de los valores al >diccionario --> libres = dict(x=2, y=3) >no sean valores fijos, yo pueda decir que x=a una variable cualquiera.... Es lo mismo: py> una_variable_cualquiera = 34 py> libres = dict(x=una_variable_cualquiera, y=3) py> s = "4*sin(x)*cos(y)" py> eval(s, funcs, libres) -2.0951515573601291 -- Gabriel Genellina Softlab SRL __________________________________________________ Preguntá. Respondé. Descubrí. Todo lo que querías saber, y lo que ni imaginabas, está en Yahoo! Respuestas (Beta). ¡Probalo ya! http://www.yahoo.com.ar/respuestas From oscar en jornada.com.mx Tue Feb 20 03:01:02 2007 From: oscar en jornada.com.mx (Oscar de Anda) Date: Mon, 19 Feb 2007 20:01:02 -0600 Subject: reemplazar datos de una cadena en orden inverso Message-ID: <45DA565E.1040600@jornada.com.mx> Hola a todos... verán, tengo una cadena similar a esta:

subtitulo1

parrafo

parrafo1

parrafo2

subtitulo2

parrafo3

subtitulo3

quiero reemplazar el ultimo tag

por alguién sabe como puedo hacer esto fácilmente, he pensado en: 1. invertir la cadena 2. string.replace('

','',1) 3. string.replace('

','',1) 4. invertir nuevamente saludos y gracias From rodrigo en nul-unu.com Tue Feb 20 03:34:13 2007 From: rodrigo en nul-unu.com (Luis Rodrigo Gallardo Cruz) Date: Mon, 19 Feb 2007 20:34:13 -0600 Subject: reemplazar datos de una cadena en orden inverso In-Reply-To: <45DA565E.1040600@jornada.com.mx> References: <45DA565E.1040600@jornada.com.mx> Message-ID: <20070220023413.GD5742@caribdis.nul-unu.com> On Mon, Feb 19, 2007 at 08:01:02PM -0600, Oscar de Anda wrote: > Hola a todos... > > verán, tengo una cadena similar a esta: > >

subtitulo1

parrafo

parrafo1

parrafo2

subtitulo2

parrafo3

subtitulo3

> > quiero reemplazar el ultimo tag

por > > alguién sabe como puedo hacer esto fácilmente, he pensado en: > 1. invertir la cadena > 2. string.replace('

','',1) > 3. string.replace('

','',1) > 4. invertir nuevamente Pues, si *siempre* es el último, debería servir. Excepto que, por supuesto, lo que necesitas reemplazar es '>2h<' por '>me<', e igual con los ''. -- Rodrigo Gallardo GPG-Fingerprint: 7C81 E60C 442E 8FBC D975 2F49 0199 8318 ADC9 BC28 Zenophobia: the irrational fear of convergent sequences. ------------ próxima parte ------------ A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 189 bytes Desc: Digital signature URL: ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From gagsl-py en yahoo.com.ar Tue Feb 20 03:56:47 2007 From: gagsl-py en yahoo.com.ar (Gabriel Genellina) Date: Mon, 19 Feb 2007 23:56:47 -0300 Subject: reemplazar datos de una cadena en orden inverso References: <45DA565E.1040600@jornada.com.mx> <20070220023413.GD5742@caribdis.nul-unu.com> Message-ID: En Mon, 19 Feb 2007 23:34:13 -0300, Luis Rodrigo Gallardo Cruz escribió: >>

subtitulo1

parrafo

parrafo1

parrafo2

subtitulo2

parrafo3

subtitulo3

>> >> quiero reemplazar el ultimo tag

por >> >> alguién sabe como puedo hacer esto fácilmente, he pensado en: >> 1. invertir la cadena >> 2. string.replace('

','',1) >> 3. string.replace('

','',1) >> 4. invertir nuevamente > > Pues, si *siempre* es el último, debería servir. Excepto que, por > supuesto, lo que necesitas reemplazar es '>2h<' por '>me<', e igual > con los ''. Otra forma sería buscar con rfind la posicion del ultimo

, y hacer los reemplazos a partir de alli. ulth2 = texto.rfind('

') if ulth2>=0: texto = texto[:ulth2] + texto[ulth2:].replace('

','',1).replace('

','',1) Igual hay que tener cuidado, puede fallar muy facilmente si aparece algo como

o < h2 > o

-- Gabriel Genellina ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From morillas en gmail.com Tue Feb 20 07:32:50 2007 From: morillas en gmail.com (Luis Miguel Morillas) Date: Tue, 20 Feb 2007 07:32:50 +0100 Subject: reemplazar datos de una cadena en orden inverso In-Reply-To: References: <45DA565E.1040600@jornada.com.mx> <20070220023413.GD5742@caribdis.nul-unu.com> Message-ID: <68d25cbc0702192232p6196da83pa7c5c9f1e1bc3504@mail.gmail.com> Utiliza un parser de XML (eso te exigirá que sea un documento bien formado o procesarlo previamente para que lo sea) >>> XML="

subtitulo1

parrafo

parrafo1

parrafo2

subtitulo2

parrafo3

subtitulo3

" >>> import amara >>> doc = amara.parse(XML) >>> doc.body.h2[-1].nodeName = u'em' >>> print doc.xml(indent=True)

subtitulo1

parrafo

parrafo1

parrafo2

subtitulo2

parrafo3

subtitulo3 Más info sobre amara: http://notes.4suite.org/AmaraXmlToolkit y también algo en español aquí: http://livingpyxml.python-hosting.com/wiki El 20/02/07, Gabriel Genellina escribió: > En Mon, 19 Feb 2007 23:34:13 -0300, Luis Rodrigo Gallardo Cruz > escribió: > > >>

subtitulo1

parrafo

parrafo1

parrafo2

subtitulo2

parrafo3

subtitulo3

> >> > >> quiero reemplazar el ultimo tag

por > >> > >> alguién sabe como puedo hacer esto fácilmente, he pensado en: > >> 1. invertir la cadena > >> 2. string.replace('

','',1) > >> 3. string.replace('

','',1) > >> 4. invertir nuevamente > > > > Pues, si *siempre* es el último, debería servir. Excepto que, por > > supuesto, lo que necesitas reemplazar es '>2h<' por '>me<', e igual > > con los ''. > > Otra forma sería buscar con rfind la posicion del ultimo

, y hacer los > reemplazos a partir de alli. > > ulth2 = texto.rfind('

') > if ulth2>=0: > texto = texto[:ulth2] > + texto[ulth2:].replace('

','',1).replace('

','',1) > > Igual hay que tener cuidado, puede fallar muy facilmente si aparece algo > como

o < h2 > o

> > -- > Gabriel Genellina > > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > > -- Saludos, -- Luis Miguel From gbsuar-Re5JQEeQqe8AvxtiuMwx3w en public.gmane.org Tue Feb 20 14:30:16 2007 From: gbsuar-Re5JQEeQqe8AvxtiuMwx3w en public.gmane.org (Gabriel) Date: Tue, 20 Feb 2007 10:30:16 -0300 Subject: Whlie infinito con pyparallel Message-ID: <91906ddf0702200530v2601e346x226b450ae9fc47b2@mail.gmail.com> Gente a ver si me pueden dar una mano con esto... Resulta que estoy usando pyparallel para un desarrollo electrónico... La idea es que barra desde el 0x00 hasta el 0x03 y que en cada seteo testee el ACK y el Paper Out (patas 10 y 12 del paralelo, ambas con lógica positiva) Eso va a ser el hilo que va a correr junto con una interfaz de usuario y el hilo le va a mandar la información a la GUI cuando se produzca un evento, es decir, cuando ACK y PapeOut se pongan en 1. Lo que he hecho es hacer un bucle para probar la electrónica muy similar a lo que será el hilo... El problema es el siguiente... Si no uso while anda bien (este sería el código) import parallel import time n = 1 p = parallel.Parallel() time.sleep(1) p.setData(3) time.sleep(n) p.setData(0) time.sleep(n) if p.getInAcknowledge() == 1: print 'A' if p.getInPaperOut() == 1: print 'B' p.setData(1) time.sleep(n) if p.getInAcknowledge() == 1: print 'A' if p.getInPaperOut() == 1: print 'B' p.setData(2) time.sleep(n) if p.getInAcknowledge() == 1: print 'A' if p.getInPaperOut() == 1: print 'B' El sleep se supone que va a ser mucho más rápido... en realidad lo más rápido que dé. Pero si ese mismo código lo pongo en un Whlile 1: o en un while que tenga un número grande de pasadas deja de andar y se desbarata todo... no da error pero no setea nada y te marca como si detectara... Bueno muchas gracias a todos y a ver si de una vez por todas puedo resolver esto.... :D -- Gabriel ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From oscar en jornada.com.mx Tue Feb 20 23:10:38 2007 From: oscar en jornada.com.mx (Oscar de Anda) Date: Tue, 20 Feb 2007 16:10:38 -0600 Subject: reemplazar datos de una cadena en orden inverso In-Reply-To: <68d25cbc0702192232p6196da83pa7c5c9f1e1bc3504@mail.gmail.com> References: <45DA565E.1040600@jornada.com.mx> <20070220023413.GD5742@caribdis.nul-unu.com> <68d25cbc0702192232p6196da83pa7c5c9f1e1bc3504@mail.gmail.com> Message-ID: <45DB71DE.9000505@jornada.com.mx> Gracias a todos por su amable respuesta. Esta última opción, la de Luis Miguel, me parece muy interesante, lo voy a intentar de esa forma. Saludos Luis Miguel Morillas escribió: > Utiliza un parser de XML (eso te exigirá que sea un documento bien > formado o procesarlo previamente para que lo sea) > >>>> XML="

subtitulo1

parrafo

parrafo1

parrafo2

subtitulo2

parrafo3

subtitulo3

" >>>> >>>> import amara >>>> doc = amara.parse(XML) >>>> doc.body.h2[-1].nodeName = u'em' >>>> print doc.xml(indent=True) > > >

subtitulo1

>

parrafo

>

parrafo1

>

parrafo2

>

subtitulo2

>

parrafo3

> subtitulo3 > > > Más info sobre amara: http://notes.4suite.org/AmaraXmlToolkit y > también algo en español aquí: > http://livingpyxml.python-hosting.com/wiki > > > El 20/02/07, Gabriel Genellina escribió: >> En Mon, 19 Feb 2007 23:34:13 -0300, Luis Rodrigo Gallardo Cruz >> escribió: >> >> >> >>

subtitulo1

parrafo

parrafo1

parrafo2

subtitulo2

parrafo3

subtitulo3

>> >> >> >> >> quiero reemplazar el ultimo tag

por >> >> >> >> alguién sabe como puedo hacer esto fácilmente, he pensado en: >> >> 1. invertir la cadena >> >> 2. string.replace('

','',1) >> >> 3. string.replace('

','',1) >> >> 4. invertir nuevamente >> > >> > Pues, si *siempre* es el último, debería servir. Excepto que, por >> > supuesto, lo que necesitas reemplazar es '>2h<' por '>me<', e igual >> > con los ''. >> >> Otra forma sería buscar con rfind la posicion del ultimo

, y >> hacer los >> reemplazos a partir de alli. >> >> ulth2 = texto.rfind('

') >> if ulth2>=0: >> texto = texto[:ulth2] >> + texto[ulth2:].replace('

','',1).replace('

','',1) >> >> Igual hay que tener cuidado, puede fallar muy facilmente si aparece algo >> como

o < h2 > o

>> >> -- >> Gabriel Genellina >> >> >> _______________________________________________ >> Python-es mailing list >> Python-es en aditel.org >> http://listas.aditel.org/listinfo/python-es >> >> > > From arnau en ehas.org Wed Feb 21 00:05:40 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Wed, 21 Feb 2007 00:05:40 +0100 Subject: Whlie infinito con pyparallel In-Reply-To: <91906ddf0702200530v2601e346x226b450ae9fc47b2@mail.gmail.com> References: <91906ddf0702200530v2601e346x226b450ae9fc47b2@mail.gmail.com> Message-ID: <45DB7EC4.1010208@ehas.org> > p.setData(2) > time.sleep(n) > > if p.getInAcknowledge() == 1: > print 'A' > if p.getInPaperOut() == 1: > print 'B' > > > Pero si ese mismo código lo pongo en un Whlile 1: o en un while que > tenga un > número grande de pasadas deja de andar y se desbarata todo... no da error > pero no setea nada y te marca como si detectara... Deberías explicar el problema con algo más de precisión. ¿Cuántas pasadas? ¿5? ¿1000? ¿Has probado a cambiar el valor del "sleep"? ¿Tienes algún otro puerto paralelo donde probar? Ahí va una versión alternativa del script: import parallel import time p = parallel.Parallel() while 1: for data in range(4): p.setData(data) time.sleep(1.0) ack = p.getInAcknowledge() po = p.getInPaperOut() print "Data: %d, Ack: %d, PaperOut: %d"%(data, int(ack), int(po)) --- > if p.getInPaperOut() == 1: Al menos en el python-parallel de la versión 2.4, las funciones de entrada devuelven un booleano (True/False), así que compararlo con 1 no es muy aconsejable (de momento, por cuestiones de implementación y de compatibilidad, True == 1 es verdadero, pero vete a saber en el futuro). "if p.getInPaperOut():" es lo suyo. From pan_python en yahoo.com.ar Wed Feb 21 04:50:38 2007 From: pan_python en yahoo.com.ar (Ariel Nardelli) Date: Wed, 21 Feb 2007 00:50:38 -0300 Subject: Formatear salida para que quede todo encolumnado.. Message-ID: <45DBC18E.2010501@yahoo.com.ar> Hola!!! necesito hacer un listadito con 80 columnas maximo de ancho con varios datos dentro, datos numericos, alfabeticos y hasta de fechas. El problema (si es que es problema) es encolumnar y dejar ordenadito todos los campos a imprimir, puedo hacerlo complentando con espacios a la izquierda o derecha de los campos a mostrar pero realmente seria engorroso hacerlo, fijense que por ejemplo para poner un numero de 6 sifras tengo que sumar espacios a la izquierda y luego cortar para que quede bien acomodado todo, y en caso de los campos alfabeticos tambien tengo que hacer lo mismo, justificar a la derecha para despues cortar y terminar todo sumando a una variable que debe tener un maximo de 80 caracteres. En fin se puede hacer pero realmente es engorroso, por eso pregunto, asi como se hace el formateo de campos numericos existe alguna forma de formatear todo de una sola vez para hacerlo mas sencillo??? y no tener que andar sumando espacios a la izquierda o derecha para que todo aparezca encolumnado??? Espero que se me halla entendido :) Ariel From jcea en argo.es Wed Feb 21 06:27:26 2007 From: jcea en argo.es (Jesus Cea) Date: Wed, 21 Feb 2007 06:27:26 +0100 Subject: Formatear salida para que quede todo encolumnado.. In-Reply-To: <45DBC18E.2010501@yahoo.com.ar> References: <45DBC18E.2010501@yahoo.com.ar> Message-ID: <45DBD83E.9030600@argo.es> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Ariel Nardelli wrote: > necesito hacer un listadito con 80 columnas maximo de ancho con varios > datos dentro, datos numericos, alfabeticos y hasta de fechas. >>> print "%5d%10s" %(1,"b") 1 b Los números indican el ancho del campo. - -- Jesus Cea Avion _/_/ _/_/_/ _/_/_/ jcea en argo.es http://www.argo.es/~jcea/ _/_/ _/_/ _/_/ _/_/ _/_/ jabber / xmpp:jcea en jabber.org _/_/ _/_/ _/_/_/_/_/ _/_/ _/_/ _/_/ _/_/ _/_/ "Things are not so easy" _/_/ _/_/ _/_/ _/_/ _/_/ _/_/ "My name is Dump, Core Dump" _/_/_/ _/_/_/ _/_/ _/_/ "El amor es poner tu felicidad en la felicidad de otro" - Leibniz -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iQCVAwUBRdvYPplgi5GaxT1NAQJh3gP9HgCk6Fn/d99npNJKjIYqusKQ+/3rQfsk tHk6nz1TH3MtcfplhIF7cDJ9UAjuK4ywpVEQV7TjtXh4utJS12YgqX9W9Ywyj2WU mKGpY9t8Pa0RTWFLQX+lXdubs9TSfMcxJaiERmKw/JqW8Fu6PZ25F6VZTMPWk0nm E0QAfQX6I9k= =6+Ea -----END PGP SIGNATURE----- ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From gagsl-py en yahoo.com.ar Wed Feb 21 08:55:50 2007 From: gagsl-py en yahoo.com.ar (Gabriel Genellina) Date: Wed, 21 Feb 2007 04:55:50 -0300 Subject: Formatear salida para que quede todo encolumnado.. References: <45DBC18E.2010501@yahoo.com.ar> <45DBD83E.9030600@argo.es> Message-ID: En Wed, 21 Feb 2007 02:27:26 -0300, Jesus Cea escribió: >> necesito hacer un listadito con 80 columnas maximo de ancho con varios >> datos dentro, datos numericos, alfabeticos y hasta de fechas. > >>>> print "%5d%10s" %(1,"b") > 1 b > > Los números indican el ancho del campo. Y hay muchas mas opciones para controlar el formato: http://docs.python.org/lib/typesseq-strings.html (en ingles) -- Gabriel Genellina ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From billguedes.python en terra.com.br Wed Feb 21 15:04:48 2007 From: billguedes.python en terra.com.br (Guedes) Date: Wed, 21 Feb 2007 12:04:48 -0200 Subject: Problema con ventana modal gtk In-Reply-To: <20070219233320.7A939145F99F@devnull.aditel.org> References: <20070219233320.7A939145F99F@devnull.aditel.org> Message-ID: <1172066688.5633.3.camel@localhost.localdomain> Em Mon, 19 Feb 2007 23:12:49 +0100, Alatar escreveu: > Problema con ventana modal gtk Segue abaixo uma rotina: def mensagem(texto, janela= None): ''' Uso: Mensagem(texto, janela) texto -> texto a ser exibido nos padrões pango janela -> janela ativa Apresenta uma caixa de dialogo com o botão 'OK' com o texto definido pelo desenvolvedor e o ícone de informação Endereço das referências do pango: http://www.pygtk.org/pygtk2reference/pango-markup-language.html ''' dialogo= gtk.MessageDialog(janela, gtk.DIALOG_MODAL, gtk.MESSAGE_INFO, \ gtk.BUTTONS_OK, texto) dialogo.set_markup(texto) # texto formatado nos padrões pango dialogo.run() dialogo.destroy() Abracos, Guedes. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From pan_python en yahoo.com.ar Wed Feb 21 17:53:00 2007 From: pan_python en yahoo.com.ar (Ariel Nardelli) Date: Wed, 21 Feb 2007 13:53:00 -0300 Subject: Formatear salida para que quede todo encolumnado.. In-Reply-To: References: <45DBC18E.2010501@yahoo.com.ar> <45DBD83E.9030600@argo.es> Message-ID: <45DC78EC.3020906@yahoo.com.ar> Listo!!! Con esto ya me pongo en campaña para leer la documentacion y ver ahi como se hace!! Mil gracias!!!! Ariel Gabriel Genellina escribió: > En Wed, 21 Feb 2007 02:27:26 -0300, Jesus Cea escribió: > >>> necesito hacer un listadito con 80 columnas maximo de ancho con varios >>> datos dentro, datos numericos, alfabeticos y hasta de fechas. >> >>>>> print "%5d%10s" %(1,"b") >> 1 b >> >> Los números indican el ancho del campo. > > Y hay muchas mas opciones para controlar el formato: > http://docs.python.org/lib/typesseq-strings.html > (en ingles) > > --Gabriel Genellina > > ------------------------------------------------------------------------ > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From jcea en argo.es Wed Feb 21 18:53:21 2007 From: jcea en argo.es (Jesus Cea) Date: Wed, 21 Feb 2007 18:53:21 +0100 Subject: Nueva =?iso-8859-15?q?versi=F3n=3A_BerkeleyDB_Backend_Storage_Eng?= =?iso-8859-15?q?ine_for_DURUS?= Message-ID: <45DC8711.10805@argo.es> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Release 20070220. http://www.argo.es/~jcea/programacion/durus-berkeleydbstorage.htm El principal cambio de esta versión es la definición de objetos que implementan políticas de recogida de basuras arbitrarias. La nueva política por defecto de recogida de basuras elimina objetos de forma muy eficiente realizando un "prefetch" previo de los mismos (en un thread independiente) y, así, no frenar el thread principal esperando por el disco duro. El rendimiento cuando se borran objetos "fríos" (que no tenemos en caché) es, ahora, espectacular. - -- Jesus Cea Avion _/_/ _/_/_/ _/_/_/ jcea en argo.es http://www.argo.es/~jcea/ _/_/ _/_/ _/_/ _/_/ _/_/ jabber / xmpp:jcea en jabber.org _/_/ _/_/ _/_/_/_/_/ _/_/ _/_/ _/_/ _/_/ _/_/ "Things are not so easy" _/_/ _/_/ _/_/ _/_/ _/_/ _/_/ "My name is Dump, Core Dump" _/_/_/ _/_/_/ _/_/ _/_/ "El amor es poner tu felicidad en la felicidad de otro" - Leibniz -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iQCVAwUBRdyHEZlgi5GaxT1NAQLD6QP9GxaJ3qpzbHBRwiISt9p8q7yepwF7X13V Rm9wY0FIj+nirQSMjNXhW6cmys9mbDXE7bSLG2LnlY31BITzg+gyEiq5cj6h1rfO u41LjAloP5LkKjJ91xDmzhUrxRurODqrE1JypkOnZefD+3DcnC/YTk67M9zong6N 2nKAHzJjhOQ= =kQUe -----END PGP SIGNATURE----- ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From visionario en gmail.com Thu Feb 22 12:50:33 2007 From: visionario en gmail.com (Asdrubal Velasquez (RadioMan)) Date: Thu, 22 Feb 2007 07:50:33 -0400 Subject: reemplazar datos de una cadena en orden inverso In-Reply-To: <45DA565E.1040600@jornada.com.mx> References: <45DA565E.1040600@jornada.com.mx> Message-ID: <28d5b4300702220350k4a205ddfn9bf92cd329eb8194@mail.gmail.com> Hola. Creo que lo fácil es así: ----------------- cadena = "

subtitulo1

parrafo

parrafo1

parrafo2

subtitulo2

parrafo3

subtitulo3

" cadena[-3:].replace("h2","em") Rápido, fácil y hasta bonito jejejeje ----------------- Saludos On 2/19/07, Oscar de Anda wrote: > verán, tengo una cadena similar a esta: > >

subtitulo1

parrafo

parrafo1

parrafo2

subtitulo2

parrafo3

subtitulo3

> > quiero reemplazar el ultimo tag

por > > alguién sabe como puedo hacer esto fácilmente, he pensado en: > 1. invertir la cadena > 2. string.replace('

','',1) > 3. string.replace('

','',1) > 4. invertir nuevamente > -- '//RadioMan - YV6ESD +58-(416)-586.4906 Asdrubal R. Velasquez Lagrave RadioMan ARROBA cantv.net Visionario ARROBA Gmail.com Puerto Ordaz - Venezuela ¿Jugaste AstroEmpires? http://alpha.astroempires.com/?ref=A.2709 From visionario en gmail.com Thu Feb 22 14:09:12 2007 From: visionario en gmail.com (Asdrubal Velasquez (RadioMan)) Date: Thu, 22 Feb 2007 09:09:12 -0400 Subject: reemplazar datos de una cadena en orden inverso In-Reply-To: <28d5b4300702220350k4a205ddfn9bf92cd329eb8194@mail.gmail.com> References: <45DA565E.1040600@jornada.com.mx> <28d5b4300702220350k4a205ddfn9bf92cd329eb8194@mail.gmail.com> Message-ID: <28d5b4300702220509h392ceef4tcd099d8b230c4c15@mail.gmail.com> Hola. Despues que escribi la anterior me di cuenta que lo que necesitas no es eso!!!, esa solo reemplazará el últmo

. Pero esta si: cadena.split("subtitulo3")[0][:-3] + "em>" + "subtitulo3" + "" On 2/22/07, Asdrubal Velasquez (RadioMan) wrote: > Hola. > > Creo que lo fácil es así: > ----------------- > cadena = "

subtitulo1

parrafo

parrafo1

parrafo2

subtitulo2

parrafo3

subtitulo3

" > > cadena[-3:].replace("h2","em") > > Rápido, fácil y hasta bonito jejejeje > ----------------- > > Saludos > -- '//RadioMan - YV6ESD +58-(416)-586.4906 Asdrubal R. Velasquez Lagrave RadioMan ARROBA cantv.net Visionario ARROBA Gmail.com Puerto Ordaz - Venezuela ¿Jugaste AstroEmpires? http://alpha.astroempires.com/?ref=A.2709 From jquintanaw en gmail.com Thu Feb 22 17:01:34 2007 From: jquintanaw en gmail.com (Javier Quintana) Date: Thu, 22 Feb 2007 13:01:34 -0300 Subject: Socket ntonl Message-ID: <2cd56ab50702220801x784466b0i363316e273194700@mail.gmail.com> Agradeceré me ayuden a implementar un socket binario, los comandos ntonl no me estan funcionando el error es: Traceback (most recent call last): File "", line 1, in -toplevel- x=s.ntonl(1) AttributeError: '_socketobject' object has no attribute 'ntonl' Gracias From jordirr en gmail.com Fri Feb 23 00:57:18 2007 From: jordirr en gmail.com (Jordi Rodriguez) Date: Fri, 23 Feb 2007 00:57:18 +0100 Subject: Problema python-sockets aplicacion tipo chat Message-ID: Hola a todos, Soy nuevo aqui. Tengo un pequeño problema con python. Estoy haciendo una aplicación en linea de comandos, en la que se conectan dos maquinas y hablan entre ellas, via socket, como si fuera un chat. El problema viene dado a que la entrada es por teclado, entonces yo puedo estar escuchando siempre en cada maquina a ver si el otro dice algo, pero cuando esta esperando datos del teclado con raw_input() se queda parado asi que no puedo seguir escuchando mientrastanto. Como puedo hacerlo? Si pudiera mandar un signal para indicar que voy a hablar podria hacer un handler que lo gestionara, pero no se si se pueden mandar signals via socket, he estado mirando i no he encontrado nada al respeto :( He visto el modulo asincrono de python pero no me sirve ya que utiliza clases y no puedo usar clases para esta aplicacion. Alguien puede hecharme una mano? Gracias de antemano From gagsl-py en yahoo.com.ar Fri Feb 23 03:42:12 2007 From: gagsl-py en yahoo.com.ar (Gabriel Genellina) Date: Thu, 22 Feb 2007 23:42:12 -0300 Subject: Socket ntonl References: <2cd56ab50702220801x784466b0i363316e273194700@mail.gmail.com> Message-ID: En Thu, 22 Feb 2007 13:01:34 -0300, Javier Quintana escribió: > Agradeceré me ayuden a implementar un socket binario, > > los comandos ntonl no me estan funcionando el error es: > > Traceback (most recent call last): > File "", line 1, in -toplevel- > x=s.ntonl(1) > AttributeError: '_socketobject' object has no attribute 'ntonl' Sera porque no existe? http://docs.python.org/lib/module-socket.html Que se supone que deberia hacer? -- Gabriel Genellina ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From gagsl-py en yahoo.com.ar Fri Feb 23 03:56:31 2007 From: gagsl-py en yahoo.com.ar (Gabriel Genellina) Date: Thu, 22 Feb 2007 23:56:31 -0300 Subject: Problema python-sockets aplicacion tipo chat References: Message-ID: En Thu, 22 Feb 2007 20:57:18 -0300, Jordi Rodriguez escribió: > Soy nuevo aqui. Tengo un pequeño problema con python. Estoy haciendo una > aplicación en linea de comandos, en la que se conectan dos maquinas y > hablan > entre ellas, via socket, como si fuera un chat. > > El problema viene dado a que la entrada es por teclado, entonces yo puedo > estar escuchando siempre en cada maquina a ver si el otro dice algo, pero > cuando esta esperando datos del teclado con raw_input() se queda parado > asi > que no puedo seguir escuchando mientrastanto. Si el protocolo es full duplex (o sea que ambos pueden hablar a la vez) entonces: - no uses raw_input, en su lugar hay que ir captando las teclas una por una (y probablemente enviar la linea completa al presionar ENTER). Para Windows se puede usar msvcrt.getch, hay una receta de getch portable en el Python Cookbook - o sino, vas a necesitar dos threads, uno que procesa la entrada por teclado y otro lee desde el socket. > He visto el modulo asincrono de python pero no me sirve ya que utiliza > clases y no puedo usar clases para esta aplicacion. Tu religión no te lo permite? (Yo sabia de los menonitas, que son bastante estrictos, pero prohibir las clases, no se, me parece demasiado...) Igual lamento decirte hijo mío que ya has pecado sólo por usar sockets: py> socket.socket() -- Gabriel Genellina ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From py en ch3m4.org Fri Feb 23 04:03:52 2007 From: py en ch3m4.org (Chema Cortes) Date: Fri, 23 Feb 2007 04:03:52 +0100 Subject: reemplazar datos de una cadena en orden inverso In-Reply-To: <45DB71DE.9000505@jornada.com.mx> References: <45DA565E.1040600@jornada.com.mx> <68d25cbc0702192232p6196da83pa7c5c9f1e1bc3504@mail.gmail.com> <45DB71DE.9000505@jornada.com.mx> Message-ID: <200702230403.53481.py@ch3m4.org> El Martes, 20 de Febrero de 2007 23:10, Oscar de Anda escribió: > Gracias a todos por su amable respuesta. > > Esta última opción, la de Luis Miguel, me parece muy interesante, lo voy > a intentar de esa forma. Aunque también te recomiendo que uses esta opción, sólo funcionará si el texto está bien formado XML. Una alternativa podría ser usar el módulo 're'. Con un poco de pericia, se puede incluso arreglar algún que otro error en el formato (mayúsculas mal puestas, espacios que sobran, añadir saltos de línea, etc). Aquí va un ejemplo: import re XML="

subtitulo1

parrafo

parrafo1

parrafo2

subtitulo2

parrafo3

subtitulo3

" PAT="""(?xi) #verbose+case insensitive ### ### Patrón para dividir el texto por subtítulos ###

.*?

#subtitulo (?:

.*?

)* #parrafos dependientes """ subtitulos=re.findall(PAT,XML) #cambios en el último subtitulo s=subtitulos[-1] subtitulos[-1]=re.sub("<(/?)h2>",r"<\1em>",s) #unión de todos los elementos separando en líneas cada subtítulo XML="\n".join(subtitulos) From yozara en terra.es Fri Feb 23 07:24:36 2007 From: yozara en terra.es (Zara) Date: Fri, 23 Feb 2007 07:24:36 +0100 Subject: Socket ntonl References: <2cd56ab50702220801x784466b0i363316e273194700@mail.gmail.com> Message-ID: <522tt2tulevk30hhqe7si5kdhq9k2p3o36@4ax.com> On Thu, 22 Feb 2007 23:42:12 -0300, "Gabriel Genellina" wrote: >En Thu, 22 Feb 2007 13:01:34 -0300, Javier Quintana >escribió: > >> Agradeceré me ayuden a implementar un socket binario, >> >> los comandos ntonl no me estan funcionando el error es: >> >> Traceback (most recent call last): >> File "", line 1, in -toplevel- >> x=s.ntonl(1) >> AttributeError: '_socketobject' object has no attribute 'ntonl' > >Sera porque no existe? http://docs.python.org/lib/module-socket.html >Que se supone que deberia hacer? Y además de no existir, la familia de funciones que parece que son las que se refiere él (ntohl, htonl..) son funcionaes del módulo socket y no de un objeto socket... Zara From jordirr en gmail.com Fri Feb 23 10:43:18 2007 From: jordirr en gmail.com (Jordi Rodriguez) Date: Fri, 23 Feb 2007 10:43:18 +0100 Subject: Problema python-sockets aplicacion tipo chat In-Reply-To: References: Message-ID: Gracias Gabriel, luego lo probare. El tema de no utilizar clases es pq este ejercicio me lo ha pedido un amigo que no sabe mucho de programacion, para entregarlo en el instituto, y alli no han tocado clases ya que es un modulo en el que solo tocan programacion por encima, asi que quedaria muy canton que lo hiciera con clases. Si pudiera utilizar clases todo seria mas facil para mi.... Gracias. On 2/23/07, Gabriel Genellina wrote: > > En Thu, 22 Feb 2007 20:57:18 -0300, Jordi Rodriguez > escribió: > > > Soy nuevo aqui. Tengo un pequeño problema con python. Estoy haciendo una > > aplicación en linea de comandos, en la que se conectan dos maquinas y > > hablan > > entre ellas, via socket, como si fuera un chat. > > > > El problema viene dado a que la entrada es por teclado, entonces yo > puedo > > estar escuchando siempre en cada maquina a ver si el otro dice algo, > pero > > cuando esta esperando datos del teclado con raw_input() se queda parado > > asi > > que no puedo seguir escuchando mientrastanto. > > Si el protocolo es full duplex (o sea que ambos pueden hablar a la vez) > entonces: > > - no uses raw_input, en su lugar hay que ir captando las teclas una por > una (y probablemente enviar la linea completa al presionar ENTER). Para > Windows se puede usar msvcrt.getch, hay una receta de getch portable en el > Python Cookbook > > - o sino, vas a necesitar dos threads, uno que procesa la entrada por > teclado y otro lee desde el socket. > > > He visto el modulo asincrono de python pero no me sirve ya que utiliza > > clases y no puedo usar clases para esta aplicacion. > > Tu religión no te lo permite? (Yo sabia de los menonitas, que son bastante > estrictos, pero prohibir las clases, no se, me parece demasiado...) > Igual lamento decirte hijo mío que ya has pecado sólo por usar sockets: > > py> socket.socket() > > > -- > Gabriel Genellina > > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > > From manuelmalo en gmail.com Fri Feb 23 14:55:57 2007 From: manuelmalo en gmail.com (Manuel Malo de Molina) Date: Fri, 23 Feb 2007 14:55:57 +0100 Subject: Fallo al cerrar aplicacion Tkinter In-Reply-To: References: Message-ID: Se me olvido decir que si en lugar de usar root.quit() utilizo root.destroy() , a veces lo que hace es dejarme un marco gris en pantalla. Es decir, elimina los frames pero se queda el toplevel. From manuelmalo en gmail.com Fri Feb 23 14:48:48 2007 From: manuelmalo en gmail.com (Manuel Malo de Molina) Date: Fri, 23 Feb 2007 14:48:48 +0100 Subject: Fallo al cerrar aplicacion Tkinter Message-ID: Hola a todos, Estoy teniendo problemas para cerrar una aplicacion de Tkinter. El boton 'Exit' funciona como le da la gana, a veces le das y no sale, otras a la 3a o 4a vez acaba saliendo, y muchas solo responde si lo pulsas "a conciencia", es decir, un buen rato. Este es el codigo del boton salir, nada del otro mundo: Button(FrameButton, text = 'EXIT',command = Exit,height=2,width=9).grid(row=0,column=7, padx = 15) Codigo de la funcion 'Exit': def Exit(): close('all') #cierra todas las figuras de matplotlib, si se quedan abiertas falla. root.quit() A mi me da la impresion de que depende de como haya usado el programa. Es decir, si lo abro y nada mas cargar, lo cierro; no hay problema, sale a la primera. Pero si lo estoy utilizando mucho tiempo y lo tengo muy cargado tengo que dejar pulsado el boton Exit mucho tiempo. Otra cosa que ocurre a menudo es que si le pulso una vez, se cierran todos los graficos de matplotlib, y a la segunda ya se cierra el programa, ? Un saludo y buen fin de semana a todos Manuel Malo de Molina From py en ch3m4.org Fri Feb 23 17:55:58 2007 From: py en ch3m4.org (Chema Cortes) Date: Fri, 23 Feb 2007 17:55:58 +0100 Subject: Fallo al cerrar aplicacion Tkinter In-Reply-To: References: Message-ID: <45DF1C9E.8060703@ch3m4.org> Manuel Malo de Molina escribió: > Estoy teniendo problemas para cerrar una aplicacion de Tkinter. El > boton 'Exit' funciona como le da la gana, a veces le das y no sale, > otras a la 3a o 4a vez acaba saliendo, y muchas solo responde si lo > pulsas "a conciencia", es decir, un buen rato. > >... > Otra cosa que ocurre a menudo es que si le pulso una vez, se cierran > todos los graficos de matplotlib, y a la segunda ya se cierra el > programa, ? Por lo último que cuentas, parece que tienes un problema con las referencias circulares. La ventana 'root' está referenciando ventanas de matplot y/o viceversa. Para eliminar "efectivamente" una ventana, no debe quedar ninguna referencia "viva" a ella en ningún lado. > Se me olvido decir que si en lugar de usar root.quit() utilizo > root.destroy() , a veces lo que hace es dejarme un marco gris en > pantalla. Lo que pasa es que se han destruido los widgets que hay dentro de la ventana, pero la ventana sigue "viva" por estar referenciada en otro lado. Con el código que has puesto, poco más se puede hacer que intuir lo que te pasa. Ponnos más código con el que poder repetir el fallo, por lo menos. En un mensaje antiguo contaba cómo resolver este tipo de problemas con Tkinter: -- Chema Cortés (py en ch3m4.org) "Proudly made on earth by generic humanoid carbon units" From carlosfvo en gmail.com Fri Feb 23 21:51:40 2007 From: carlosfvo en gmail.com (carlos villa) Date: Fri, 23 Feb 2007 15:51:40 -0500 Subject: ayuda con doxygen Message-ID: <629497540702231251o35a61115sdd4338539f6762e@mail.gmail.com> buenas tardes necesito documentacion de doxygen enfocada en python. la documentacion ofiical de la pagina oficial no lo hace....si alguien la tiene agradeceria me la enviara o agradeceria aun mas si tienen algun .py que este documentado y lo enviaran. gracias. From claudio.anion en gmail.com Sat Feb 24 02:31:52 2007 From: claudio.anion en gmail.com (claudio.anion) Date: Fri, 23 Feb 2007 22:31:52 -0300 Subject: errores durante la ejecucion Message-ID: <45DF9588.7040208@gmail.com> Este codigo tiene algunos errores que no puedo corregir, alguien me puede ayudar? import os def menu(): op = 5 print "\t\t\tREGISTRO DE PELICULAS" while(op<0 or op >4): print "1-Crear archivo." print "2-Agregar registros." print "3-Listar." print "4-Salir." op = input("Ingrese una opcion:") return op def crear_arch(): arch = open("peliculas.txt","w") arch.close() def crear_reg(): reg = open("reg.log","w") reg.write("1") reg.close() def reg(flag,val=0): num = 0 if(flag==0): reg = open("reg.log", "a") num = int(reg.read()) reg.close() return num else: reg = open("reg.log", "w") val = str(val) reg.write(val) reg.close() def agregar(): path = "" a = [] num = 0 #Cargar el contenido del DVD en el txt arch = open("peliculas.txt","a") path = raw_input("Ingrese el path a listar:") a = os.listdir(path) num = reg(0) aux = str("DVD#:"+num) arch.write(aux) for x in a: arch.write(x) arch.write("\n") #Fin del acarga reg(1,num+1) arch.close() def listar(): arch = open("peliculas.txt","r") for linea in arch.readlines(): print linea arch.close() if(__name__ =="__main__"): op = menu() if(op==1): crear_arch() crear_reg() agregar() elif(op==2): agregar() elif(op==3): listar() elif(op==4): pass From gagsl-py en yahoo.com.ar Sat Feb 24 02:51:41 2007 From: gagsl-py en yahoo.com.ar (Gabriel Genellina) Date: Fri, 23 Feb 2007 22:51:41 -0300 Subject: errores durante la ejecucion References: <45DF9588.7040208@gmail.com> Message-ID: En Fri, 23 Feb 2007 22:31:52 -0300, claudio.anion escribió: > Este codigo tiene algunos errores que no puedo corregir, alguien me > puede ayudar? En Python la indentacion es muy importante, ya que determina el alcance de los bloques. Eso es lo primero que vas a tener que corregir, sino, esto ni siquiera compila. Te sugiero que leas algun tutorial de Python, hay varios disponibles, incluso en castellano. Aca hay links a unos cuantos: http://dotpy.net/python_en_castellano.html -- Gabriel Genellina ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From py en ch3m4.org Sat Feb 24 03:02:23 2007 From: py en ch3m4.org (Chema Cortes) Date: Sat, 24 Feb 2007 03:02:23 +0100 Subject: errores durante la ejecucion In-Reply-To: <45DF9588.7040208@gmail.com> References: <45DF9588.7040208@gmail.com> Message-ID: <200702240302.23229.py@ch3m4.org> El Sábado, 24 de Febrero de 2007 02:31, claudio.anion escribió: > Este codigo tiene algunos errores que no puedo corregir, alguien me > puede ayudar? Como mínimo deberías haber puesto los errores, dónde se producen y cómo los has intentado solucionar. No podemos imaginar lo que pretendes hacer, ni cómo son los datos que empleas en la ejecución del programa. ¿Te has dado cuenta que en la función reg estás leyendo de un fichero abierto en modo "a"? Como regla de estilo, la función reg se debería desacoplar en dos funciones. También deberías considerar la orientación a objetos, aunque aún no podrás porque, según parece, se trata de algún ejercicio. From claudio.anion en gmail.com Sat Feb 24 03:03:28 2007 From: claudio.anion en gmail.com (claudio.anion) Date: Fri, 23 Feb 2007 23:03:28 -0300 Subject: errores durante la ejecucion In-Reply-To: References: <45DF9588.7040208@gmail.com> Message-ID: <45DF9CF0.2000608@gmail.com> Gabriel Genellina escribió: > En Fri, 23 Feb 2007 22:31:52 -0300, claudio.anion > escribió: > >> Este codigo tiene algunos errores que no puedo corregir, alguien me >> puede ayudar? > > En Python la indentacion es muy importante, ya que determina el > alcance de los bloques. > Eso es lo primero que vas a tener que corregir, sino, esto ni siquiera > compila. > > Te sugiero que leas algun tutorial de Python, hay varios disponibles, > incluso en castellano. Aca hay links a unos cuantos: > http://dotpy.net/python_en_castellano.html > > --Gabriel Genellina > > ------------------------------------------------------------------------ > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > EL codigo esta bien identado en el editor, lo que pasa es que cuando lo pego en el mail algunos bloques se modifica la tabulacion. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From claudio.anion en gmail.com Sat Feb 24 03:07:01 2007 From: claudio.anion en gmail.com (claudio.anion) Date: Fri, 23 Feb 2007 23:07:01 -0300 Subject: errores durante la ejecucion In-Reply-To: <200702240302.23229.py@ch3m4.org> References: <45DF9588.7040208@gmail.com> <200702240302.23229.py@ch3m4.org> Message-ID: <45DF9DC5.3070302@gmail.com> Chema Cortes escribió: > El Sábado, 24 de Febrero de 2007 02:31, claudio.anion escribió: > >> Este codigo tiene algunos errores que no puedo corregir, alguien me >> puede ayudar? >> > > Como mínimo deberías haber puesto los errores, dónde se producen y cómo los > has intentado solucionar. No podemos imaginar lo que pretendes hacer, ni cómo > son los datos que empleas en la ejecución del programa. > > ¿Te has dado cuenta que en la función reg estás leyendo de un fichero abierto > en modo "a"? > > Como regla de estilo, la función reg se debería desacoplar en dos funciones. > También deberías considerar la orientación a objetos, aunque aún no podrás > porque, según parece, se trata de algún ejercicio. > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > > Lo modifique asi al codigo: import os def menu(): op = 5 print "\t\t\tREGISTRO DE PELICULAS" while(op<0 or op>4): print "1-Crear archivo." print "2-Agregar registros." print "3-Listar." print "4-Salir." op = input("Ingrese una opcion:") return op def crear_arch(): arch = open("peliculas.txt","w") arch.close() def crear_reg(): reg = open("reg.log","w") reg.write("1") reg.close() def reg(flag,val=0): num = 0 if(flag==0): reg = open("reg.log", "a") num = int(reg.read()) reg.close() return num else: reg = open("reg.log", "w") val = str(val) reg.write(val) reg.close() def agregar(): path = "" a = [] num = 0 #Cargar el contenido del DVD en el txt try: arch = open("peliculas.txt","a") path = raw_input("Ingrese el path a listar:") a = os.listdir(path) num = reg(0) aux = str("DVD#:"+num) arch.write(aux) for x in a: arch.write(x) arch.write("\n") arch.close() except: pass #Fin del acarga num = num+1 reg(1,num) def listar(): arch = open("peliculas.txt","r") for linea in arch.readlines(): print linea arch.close() if(__name__ =="__main__"): op = menu() if(op==1): crear_arch() crear_reg() agregar() elif(op==2): agregar() elif(op==3): listar() elif(op==4): pass No me graba el contenido del directorio ingresado en el archivo de texto, y tampoco se actualiza el registro que uso para sabr cuantas veces se realizo la operacion. From hbkfabio en gmail.com Sat Feb 24 02:56:19 2007 From: hbkfabio en gmail.com (Fabio Duran Verdugo) Date: Fri, 23 Feb 2007 22:56:19 -0300 Subject: problema con llamada a software Message-ID: <251dd14d0702231756k552189daq3b293ff617a09b5b@mail.gmail.com> hola me llamo fabio y desarrollo bajo python y gtk incluyendo a kiwi (gnome), y tengo un problema que no es un bug pero resulta molesto, porque resulta que estoy desarrollando un sistema que necesita y despende de firefox (linux) y explorer (wintendo), y el problema es que si ejecuto esta instruccion : if sys.platform == "win32": os.system("explorer reporte.html") else: os.system("firefox reporte.html") mi sistema queda esperando que se termine esa instruccion provocando que es software se bloquee hasta que se cierre, una vez cerrado el navegador el sistema funciona tal cual y lo que necesito es que interactuen ambas cosas o sea mi sistema con el navegador, y eso no se y no eh podido hacerlo, porque necesariamente necesita pasa y esperar que eso se cumpla, alguna idea se agradece atte -- Fabio Duran Verdugo Estudiante Ingenieria en Informatica Universidad Autonoma de chile www.uas.cl/talca Linux User #409116 The Ubuntu Counter Project - user number # 5385 From polivare en lilyphilia.net Sat Feb 24 07:00:56 2007 From: polivare en lilyphilia.net (Patricio Olivares) Date: Sat, 24 Feb 2007 03:00:56 -0300 Subject: problema con llamada a software In-Reply-To: <251dd14d0702231756k552189daq3b293ff617a09b5b@mail.gmail.com> References: <251dd14d0702231756k552189daq3b293ff617a09b5b@mail.gmail.com> Message-ID: <45DFD498.4050405@lilyphilia.net> Hola, Fabio Duran Verdugo wrote: > hola me llamo fabio y desarrollo bajo python y gtk incluyendo a kiwi > (gnome), y tengo un problema que no es un bug pero resulta molesto, porque > resulta que estoy desarrollando un sistema que necesita y despende de > firefox (linux) y explorer (wintendo), y el problema es que si ejecuto esta > instruccion : > > if sys.platform == "win32": > os.system("explorer reporte.html") > else: > os.system("firefox reporte.html") > > mi sistema queda esperando que se termine esa instruccion provocando que es > software se bloquee hasta que se cierre, una vez cerrado el navegador el > sistema funciona tal cual y lo que necesito es que interactuen ambas cosas o > sea mi sistema con el navegador, y eso no se y no eh podido hacerlo, porque > necesariamente necesita pasa y esperar que eso se cumpla, alguna idea se > agradece atte os.system() se comporta parecido a la función "system" de C, o sea que espera a que el proceso hijo termine. Como alternativa fácil, puedes usar el módulo subprocess, si es que estás usando python 2.4 o superior. subprocess.Popen('firefox reporte.html', shell=True) Popen soporta varias opciones extra para "conversar" con el proceso, pero para lo que quieres, la línea de arriba debería bastar. Si necesitas que funcione en versiones anteriores de python, te puede servir una de las os.spawn*() http://docs.python.org/lib/os-process.html#l2h-2749 y aquí hay un ejemplo de uso (ojo con os.P_WAIT versus os.P_NOWAIT) http://effbot.org/librarybook/os.htm (busca "fork and wait are not available on Windows") Suerte... From polivare en lilyphilia.net Sat Feb 24 04:24:21 2007 From: polivare en lilyphilia.net (Patricio Olivares) Date: Sat, 24 Feb 2007 00:24:21 -0300 Subject: errores durante la ejecucion In-Reply-To: <45DF9DC5.3070302@gmail.com> References: <45DF9588.7040208@gmail.com> <200702240302.23229.py@ch3m4.org> <45DF9DC5.3070302@gmail.com> Message-ID: <45DFAFE5.2070407@lilyphilia.net> claudio.anion wrote: > No me graba el contenido del directorio ingresado en el archivo de > texto, y tampoco se actualiza el registro que uso para sabr cuantas > veces se realizo la operacion. Un par de sugerencias... - Evita la combinación: try: # bloque except: pass porque con eso estás ocultando todos los errores del bloque de código, eso es como meter la basura bajo la alfombra. Te sugiero que, mientras haces funcionar el programa, quites el try: except: para encontrar los errores. Una vez que el programa te funcione, mira el tutorial de python para entender como manejar las excepciones que pueden ocurrir por ejemplo cuando el usuario ingresa una entrada incorrecta o si el directorio no tiene permiso de escritura o lo que sea. http://pyspanishdoc.sourceforge.net/tut/node10.html - Otra cosa es que después de alguna sentencia que te cause dudas, vayas imprimiendo los resultados intermedios. Para eso puedes usar un 'print' común y corriente, o bien print repr(lavariable) La función repr() devuelve la representación interna de la variable. Esto sirve por ejemplo para detectar cuando algún espacio se cuela causando errores difíciles de identificar. Una alternativa es el depurador interno que tiene python (pdb) pero por ahora, sospecho que a base de 'prints' puedes llegar lejos :). - Lo último es sobre cómo estás usando la función open(). Ya te lo sugirieron pero aquí está la doc. para que revises que significa cada "modo"... http://pyspanishdoc.sourceforge.net/lib/built-in-funcs.html#l2h-179 From roylan04012 en pri.jovenclub.cu Sat Feb 24 09:26:48 2007 From: roylan04012 en pri.jovenclub.cu (Roylan Suarez Reyes) Date: Sat, 24 Feb 2007 08:26:48 +0000 Subject: Expresiones regulares Message-ID: <200702240826.48172.roylan04012@pri.jovenclub.cu> Hola colegas Soy nuevo en esta lista, acabo de subscribirme y estoy trabajando con expresiones regulares... Estoy desarrollando una aplicacion que trabaja sobre las trazas de squid, (proxy)y mu problema es el siguiente.... yo estoy buscando la palabraL: computa pero cuando esta de la siguiente forma /computa%% no me la encuentra... he probado muchas formas con las expresiones regualres y ninguna me funciona... Agradeceria que alguien me ayudara en tal sentido... salu2 -- --- Roylan Suarez Reyes Admin Redes JCCE Vinales Telef 793210 roylan04012 en pri.jovenclub.cu ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From arnau en ehas.org Sat Feb 24 14:36:53 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Sat, 24 Feb 2007 14:36:53 +0100 Subject: Expresiones regulares In-Reply-To: <200702240826.48172.roylan04012@pri.jovenclub.cu> References: <200702240826.48172.roylan04012@pri.jovenclub.cu> Message-ID: <45E03F75.3090500@ehas.org> Roylan Suarez Reyes escribió: > Hola colegas > > Soy nuevo en esta lista, acabo de subscribirme y estoy trabajando con > expresiones regulares... > > Estoy desarrollando una aplicacion que trabaja sobre las trazas de squid, > (proxy)y mu problema es el siguiente.... > > yo estoy buscando la palabraL: computa > pero cuando esta de la siguiente forma /computa%% no me la encuentra... > he probado muchas formas con las expresiones regualres y ninguna me > funciona... Agradeceria que alguien me ayudara en tal sentido... ¿algunos ejemplos de lo que intentas? From billguedes.python en terra.com.br Sat Feb 24 15:08:17 2007 From: billguedes.python en terra.com.br (Guedes) Date: Sat, 24 Feb 2007 12:08:17 -0200 Subject: Resumen de Python-es, Vol 298, =?iso-8859-1?q?Env=EDo?= 38 In-Reply-To: <20070224025735.E76BA145F97C@devnull.aditel.org> References: <20070224025735.E76BA145F97C@devnull.aditel.org> Message-ID: <1172326098.5181.0.camel@localhost.localdomain> Em Fri, 23 Feb 2007 15:51:40 -0500, carlos villa escreveu: > buenas tardes necesito documentacion de doxygen enfocada en python. la > documentacion ofiical de la pagina oficial no lo hace....si alguien la > tiene agradeceria me la enviara o agradeceria aun mas si tienen algun > .py que este documentado y lo enviaran. Exemplo pratico: http://www.pythonbrasil.com.br/moin.cgi/PyGtkBarraFerramenta Abracos, Guedes. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From cmlopez en speedy.com.ar Sat Feb 24 16:18:08 2007 From: cmlopez en speedy.com.ar (Marcelo) Date: Sat, 24 Feb 2007 12:18:08 -0300 Subject: Expresiones regulares In-Reply-To: <200702240826.48172.roylan04012@pri.jovenclub.cu> References: <200702240826.48172.roylan04012@pri.jovenclub.cu> Message-ID: <1172330288.4907.4.camel@localhost.localdomain> El sáb, 24-02-2007 a las 08:26 +0000, Roylan Suarez Reyes escribió: > Hola colegas > > Soy nuevo en esta lista, acabo de subscribirme y estoy trabajando con > expresiones regulares... > > Estoy desarrollando una aplicacion que trabaja sobre las trazas de squid, > (proxy)y mu problema es el siguiente.... > > yo estoy buscando la palabraL: computa > pero cuando esta de la siguiente forma /computa%% no me la encuentra... > he probado muchas formas con las expresiones regualres y ninguna me > funciona... Agradeceria que alguien me ayudara en tal sentido... > > salu2 Hola Roylan, no deberías tener problema para encontrar la cadena. Salvo que yo haya entendido mal. Fijate el pegado de consola de abajo, por ahí te sirve. usuario en ubuntu:~$ python Python 2.4.3 (#2, Oct 6 2006, 07:52:30) [GCC 4.0.3 (Ubuntu 4.0.3-1ubuntu5)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import re >>> cadena='no me encuentra /computa%% y no se porque' >>> buscado='computa' >>> if(re.search(buscado,cadena)): ... print 'Encontre a ',buscado, ' en ' , cadena ... Encontre a computa en no me encuentra /computa%% y no se porque >>> Un artículo piola sobre el tema lo tenés en http://milugar.net/python/usando-expresiones-regulares-en-python-2.html Saludos. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From roylan04012 en pri.jovenclub.cu Sat Feb 24 09:55:50 2007 From: roylan04012 en pri.jovenclub.cu (Roylan Suarez Reyes) Date: Sat, 24 Feb 2007 08:55:50 +0000 Subject: Expresiones regulares In-Reply-To: <45E03F75.3090500@ehas.org> References: <200702240826.48172.roylan04012@pri.jovenclub.cu> <45E03F75.3090500@ehas.org> Message-ID: <200702240855.50860.roylan04012@pri.jovenclub.cu> On Saturday 24 February 2007 01:36 pm, Arnau Sanchez wrote: > Roylan Suarez Reyes escribió: > > Hola colegas > > > > Soy nuevo en esta lista, acabo de subscribirme y estoy trabajando con > > expresiones regulares... > > > > Estoy desarrollando una aplicacion que trabaja sobre las trazas de squid, > > (proxy)y mu problema es el siguiente.... > > > > yo estoy buscando la palabraL: computa > > pero cuando esta de la siguiente forma /computa%% no me la encuentra... > > he probado muchas formas con las expresiones regualres y ninguna me > > funciona... Agradeceria que alguien me ayudara en tal sentido... > > ¿algunos ejemplos de lo que intentas? def BuscaLB(listablanca, trazas): "Comprobar que la traza no este en la LB" for contador2 in range(0, len(listablanca[:-1])):#Probamos con LB patronblanco = re.compile("\*"+listablanca[contador2]+".*", re.IGNORECASE) if (patronblanco.search(trazas)): return False else: return True "listablanca" es una lista con una serie de palabras a probar en "trazas", esta contiene la cadena de squid donde realizare la busqueda... Lo que quiero es que por ejemplo: trazas contiene: 172.16.7.2 - - [08/Jan/2007:15:25:02 +0000] "GET http://www.unicrom.com/Images/computadoras.gif HTTP/1.1" 403 1536 TCP_NEGA: listablanca: ['computa', 'articulo', 'sexologia', 'etc...'] en el caso en que computadora no tiene / y . al final si lo detecta pero en este caso no... UFFFF que enrredo.... Gracias > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es -- --- Roylan Suarez Reyes Admin Redes JCCE Vinales Telef 793210 roylan04012 en pri.jovenclub.cu From sonajadiabolica en gmail.com Sat Feb 24 16:42:55 2007 From: sonajadiabolica en gmail.com (aNgel rEsendiz g.) Date: Sat, 24 Feb 2007 09:42:55 -0600 Subject: Expresiones regulares In-Reply-To: <200702240855.50860.roylan04012@pri.jovenclub.cu> References: <200702240826.48172.roylan04012@pri.jovenclub.cu> <45E03F75.3090500@ehas.org> <200702240855.50860.roylan04012@pri.jovenclub.cu> Message-ID: <8d9e208f0702240742h322d0033uc963c1acc9ddf653@mail.gmail.com> > def BuscaLB(listablanca, trazas): > "Comprobar que la traza no este en la LB" > for contador2 in range(0, len(listablanca[:-1])):#Probamos con LB > patronblanco = re.compile("\*"+listablanca[contador2]+".*", re.IGNORECASE) > if (patronblanco.search(trazas)): > return False > else: > return True > > "listablanca" es una lista con una serie de palabras a probar en "trazas", > esta contiene la cadena de squid donde realizare la busqueda... Lo que quiero > es que por ejemplo: > > trazas contiene: 172.16.7.2 - - [08/Jan/2007:15:25:02 +0000] "GET > http://www.unicrom.com/Images/computadoras.gif HTTP/1.1" 403 1536 TCP_NEGA: > > listablanca: ['computa', 'articulo', 'sexologia', 'etc...'] > > en el caso en que computadora no tiene / y . al final si lo detecta pero en > este caso no... > > > UFFFF que enrredo.... > Si, la verdad no acabo de entender al 100 lo que quieres hacer, pero por lo que escribes, me da la impresión de que se debe a que los caracteres con los que tienes problemas son caracteres de escape, o que significan algo especial dentro de la busqueda de una expresión regular, entonces, tienes que "escaparlos". Tal vez te sirva asignar el valor de taza de esta forma (con una r a la izq del valor): taza =r"""172.16.7.2 - - [08/Jan/2007:15:25:02 +0000] "GET http://www.unicrom.com/Images/computadoras.gif HTTP/1.1" 403 1536 TCP_NEGA:""" Estoy casi seguro de que tiene que ver con esos caracteres de escape, si no te sirve este metodo, dinos como asignas esa variable taza. Saludos. -- aNgel rEsendiz.! From luiloay en hotmail.com Sat Feb 24 18:03:31 2007 From: luiloay en hotmail.com (Ludoen Loayza Ayala) Date: Sat, 24 Feb 2007 18:03:31 +0100 Subject: desuscripcion Message-ID: Soy el suscrito a la lista de pithon.. gracias por sus boletines.. por favor quiero que me desuscriben de sus lista ...Os agradecere por anticipado....me despido augurandoles siempre la buena suerte...Ludoen _________________________________________________________________ Excursiones y escapadas a sitios mágicos. [1]No te lo pierdas en MSN Entretenimiento References 1. http://g.msn.com/8HMBESES/2734??PS=47575 From polivare en lilyphilia.net Sat Feb 24 19:48:06 2007 From: polivare en lilyphilia.net (Patricio Olivares) Date: Sat, 24 Feb 2007 15:48:06 -0300 Subject: Expresiones regulares In-Reply-To: <200702240855.50860.roylan04012@pri.jovenclub.cu> References: <200702240826.48172.roylan04012@pri.jovenclub.cu> <45E03F75.3090500@ehas.org> <200702240855.50860.roylan04012@pri.jovenclub.cu> Message-ID: <45E08866.6060507@lilyphilia.net> Roylan Suarez Reyes wrote: > def BuscaLB(listablanca, trazas): > "Comprobar que la traza no este en la LB" > for contador2 in range(0, len(listablanca[:-1])):#Probamos con LB > patronblanco = re.compile("\*"+listablanca[contador2]+".*", re.IGNORECASE) > if (patronblanco.search(trazas)): > return False > else: > return True > > "listablanca" es una lista con una serie de palabras a probar en "trazas", > esta contiene la cadena de squid donde realizare la busqueda... Lo que quiero > es que por ejemplo: > > trazas contiene: 172.16.7.2 - - [08/Jan/2007:15:25:02 +0000] "GET > http://www.unicrom.com/Images/computadoras.gif HTTP/1.1" 403 1536 TCP_NEGA: > > listablanca: ['computa', 'articulo', 'sexologia', 'etc...'] Hola, por lo que dices no necesitas expresiones regulares, puedes hacer una simple comparación. Otra cosa es que si la primera "blanca" no está en la traza, la función *no* va a seguir probando con las siguientes de la lista porque estás retornando True de inmediato. Sospecho que no es lo que quieres. Aqui va una versión **no probada** y sin expresiones regulares. #------------- def BuscaLB(blancas, traza): """ Retorna False si encuentra alguna palabra de 'blancas' en la linea traza. """ traza = traza.lower() for palabra in blancas: if palabra.lower() in traza: return False return True #------------- Esto asume que 'traza' es una única línea. Si te aseguras de almacenar la lista de blancas en minúsculas, te ahorras algunos milisegundos evitando hacer "palabra.lower()" en cada iteración. Claro que si se te ocurre poner 'unicrom' o 'Images' en la lista de blancas vas a tener problemas :)... en ese caso tiene sentido usar una expresión regular. From cmlopez en speedy.com.ar Sat Feb 24 16:50:13 2007 From: cmlopez en speedy.com.ar (Marcelo) Date: Sat, 24 Feb 2007 12:50:13 -0300 Subject: Expresiones regulares In-Reply-To: <200702240855.50860.roylan04012@pri.jovenclub.cu> References: <200702240826.48172.roylan04012@pri.jovenclub.cu> <"45E03F75.30905 00"@ehas.org> <200702240855.50860.roylan04012@pri.jovenclub.cu> Message-ID: <1172332213.4907.8.camel@localhost.localdomain> El sáb, 24-02-2007 a las 08:55 +0000, Roylan Suarez Reyes escribió: > On Saturday 24 February 2007 01:36 pm, Arnau Sanchez wrote: > > Roylan Suarez Reyes escribió: > > > Hola colegas > > > > > > Soy nuevo en esta lista, acabo de subscribirme y estoy trabajando con > > > expresiones regulares... > > > > > > Estoy desarrollando una aplicacion que trabaja sobre las trazas de squid, > > > (proxy)y mu problema es el siguiente.... > > > > > > yo estoy buscando la palabraL: computa > > > pero cuando esta de la siguiente forma /computa%% no me la encuentra... > > > he probado muchas formas con las expresiones regualres y ninguna me > > > funciona... Agradeceria que alguien me ayudara en tal sentido... > > > > ¿algunos ejemplos de lo que intentas? > > def BuscaLB(listablanca, trazas): > "Comprobar que la traza no este en la LB" > for contador2 in range(0, len(listablanca[:-1])):#Probamos con LB > patronblanco = re.compile("\*"+listablanca[contador2]+".*", re.IGNORECASE) > if (patronblanco.search(trazas)): > return False > else: > return True > > "listablanca" es una lista con una serie de palabras a probar en "trazas", > esta contiene la cadena de squid donde realizare la busqueda... Lo que quiero > es que por ejemplo: > > trazas contiene: 172.16.7.2 - - [08/Jan/2007:15:25:02 +0000] "GET > http://www.unicrom.com/Images/computadoras.gif HTTP/1.1" 403 1536 TCP_NEGA: > > listablanca: ['computa', 'articulo', 'sexologia', 'etc...'] > > en el caso en que computadora no tiene / y . al final si lo detecta pero en > este caso no... > > > UFFFF que enrredo.... > > Gracias Hola Roylan, la cosa era mas complicada de lo que parecía. Lo que vi es que si reemplazo la " dentro de la cadena trazas por \" anda. Es como que el problema esta en la cadena y no en la palabra buscada. Probablemente trazas se corte antes del "GET por eso no lo encuentra. Espero que esto sirva. Saludos ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From arnau en ehas.org Sat Feb 24 20:08:51 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Sat, 24 Feb 2007 20:08:51 +0100 Subject: desuscripcion In-Reply-To: References: Message-ID: <45E08D43.2080206@ehas.org> Ludoen Loayza Ayala escribió: > > Soy el suscrito a la lista de pithon.. gracias por sus boletines.. por > favor quiero que me desuscriben de sus lista ...Os agradecere por > anticipado....me despido augurandoles siempre la buena suerte...Ludoen Afortunadamente, uno mismo puede darse de baja de cualquier lista de correo. En este caso: http://listas.aditel.org/listinfo/python-es último campo: "Anular su subscripción o editar sus preferencias" Igualmente, buena suerte. From roylan04012 en pri.jovenclub.cu Sat Feb 24 15:19:54 2007 From: roylan04012 en pri.jovenclub.cu (Roylan Suarez Reyes) Date: Sat, 24 Feb 2007 14:19:54 +0000 Subject: Expresiones regulares In-Reply-To: <1172332213.4907.8.camel@localhost.localdomain> References: <200702240826.48172.roylan04012@pri.jovenclub.cu> <200702240855.50860.roylan04012@pri.jovenclub.cu> <1172332213.4907.8.camel@localhost.localdomain> Message-ID: <200702241419.54350.roylan04012@pri.jovenclub.cu> On Saturday 24 February 2007 03:50 pm, Marcelo wrote: > El sáb, 24-02-2007 a las 08:55 +0000, Roylan Suarez Reyes escribió: > > On Saturday 24 February 2007 01:36 pm, Arnau Sanchez wrote: > > > Roylan Suarez Reyes escribió: > > > > Hola colegas > > > > > > > > Soy nuevo en esta lista, acabo de subscribirme y estoy trabajando > > > > con expresiones regulares... > > > > > > > > Estoy desarrollando una aplicacion que trabaja sobre las trazas de > > > > squid, (proxy)y mu problema es el siguiente.... > > > > > > > > yo estoy buscando la palabraL: computa > > > > pero cuando esta de la siguiente forma /computa%% no me la > > > > encuentra... he probado muchas formas con las expresiones regualres y > > > > ninguna me funciona... Agradeceria que alguien me ayudara en tal > > > > sentido... > > > > > > ¿algunos ejemplos de lo que intentas? > > > > def BuscaLB(listablanca, trazas): > > "Comprobar que la traza no este en la LB" > > for contador2 in range(0, len(listablanca[:-1])):#Probamos con LB > > patronblanco = re.compile("\*"+listablanca[contador2]+".*", > > re.IGNORECASE) if (patronblanco.search(trazas)): > > return False > > else: > > return True > > > > "listablanca" es una lista con una serie de palabras a probar en > > "trazas", esta contiene la cadena de squid donde realizare la busqueda... > > Lo que quiero es que por ejemplo: > > > > trazas contiene: 172.16.7.2 - - [08/Jan/2007:15:25:02 +0000] "GET > > http://www.unicrom.com/Images/computadoras.gif HTTP/1.1" 403 1536 > > TCP_NEGA: > > > > listablanca: ['computa', 'articulo', 'sexologia', 'etc...'] > > > > en el caso en que computadora no tiene / y . al final si lo detecta pero > > en este caso no... > > > > > > UFFFF que enrredo.... > > > > Gracias > > Hola Roylan, la cosa era mas complicada de lo que parecía. Lo que vi es > que si reemplazo la " dentro de la cadena trazas por \" anda. Es como > que el problema esta en la cadena y no en la palabra buscada. > Probablemente trazas se corte antes del "GET por eso no lo encuentra. > > Espero que esto sirva. > > Saludos Gracias a todos, ya resolvi el problema y lo esta haciendo requete bien, quiero compartir con ustedes la funciona que elabore y comentarle algunas lineas... ########################################################################################################## 1def BuscaLB(listablanca, trazas): 2 lista = [] 3 lista = listablanca #Creamos la lista nuevamente 4 "Comprobar que la traza no este en la LB" 5 for contador2 in range(0, len(lista[:])):#Probamos con LB 6 patronblanco = re.compile('.'+lista[contador2]+'.', re.IGNORECASE) 7 if (patronblanco.search(trazas)): 8 return False #Esta en lista Blanca, No Guardaar 9 10 return True 1. Aqui paso como argumentos 'listablanca' que es una lista de x elementos 2. Aqui creo una nueva lista, porque la lista que paso como argumento desde otra funcion que hace la llamada, no se comporta como lista, y no se como pasar una lista con sus argumentos... 3. Le asigno el contenido a la nueva lista 5. Este ciclo prueba con cada uno de los elementos de la lista 6. Creo un patron de busqueda. este patron lo elabore asi porque por ejemplo, en mi aplicacion yo estoy buscando palabar como puta, pene, etc. dentro del fichero de las trazas de internet pero hay palabras como "computadora" que no las deseo incluie, entonces en la lista que paso como argumento tengo palabras como "computa" que conincide con muchas de su tipo (computadora, computadoras, computar, etc...) 7. Comprobar el patron de busqueda 8 Retornar el valor de False el cual es evaluado por la funcion llamadora y en dependencia de ello llama a otra funcion. 10 Si no hay ninguna coincidencia con listablanca, devuelbe True UFFFFFFFF, que lata, weno, les comento esto pora que me den su opinion, soy novato en python y en programacion.... a ver si quizas exista otra estrategia mas rapida.... salu2 roylan -- --- Roylan Suarez Reyes Admin Redes JCCE Vinales Telef 793210 roylan04012 en pri.jovenclub.cu From rayner.jrp en gmail.com Sat Feb 24 20:56:22 2007 From: rayner.jrp en gmail.com (=?ISO-8859-1?Q?Rayner_Rodr=EDguez_Pimentel?=) Date: Sat, 24 Feb 2007 14:56:22 -0500 Subject: Problemas con Herencia Message-ID: <4a4f121c0702241156h368f0f45h5fbf603b750456a@mail.gmail.com> Hola a Todos. Tengo un problema al tratar de heredar de una clase base, cuando pongo: import psycopg2 class ConexionBD: def _init_(self): try: self.conn=psycopg2.connect("dbname='db_prueba' user='postgres' host='localhost' password='postgres'") except: print "No puede conectarse a la BD" def AbrirCon(): cur = conn.cursor() return cur def CerrarCon(): conn.close() class Indisciplina(ConexionBD): def _init_(self): self.nombre='nombrep' self.area='areap' self.cargo='cargop' self.fechaI='fechaIndisc' self.fechaR='fechaRep' self.descripcion='descripIndisc' self.fInvolucrada='facInv' self.lugar='lugarIndisc' def getareaReporta(self): return self.area def setareaReporta(newVal): area=newVal ... Me sale un error de este tipo: *NameError: name 'OperacionesBD' is not defined* No sé que será eso pero parece que no encuentra esa clase. Si alguien me puede ayudar se lo agradezco. From polivare en lilyphilia.net Sat Feb 24 20:59:16 2007 From: polivare en lilyphilia.net (Patricio Olivares) Date: Sat, 24 Feb 2007 16:59:16 -0300 Subject: Expresiones regulares In-Reply-To: <200702241419.54350.roylan04012@pri.jovenclub.cu> References: <200702240826.48172.roylan04012@pri.jovenclub.cu> <200702240855.50860.roylan04012@pri.jovenclub.cu> <1172332213.4907.8.camel@localhost.localdomain> <200702241419.54350.roylan04012@pri.jovenclub.cu> Message-ID: <45E09914.6090801@lilyphilia.net> Roylan Suarez Reyes wrote: > ########################################################################################################## > 1def BuscaLB(listablanca, trazas): > 2 lista = [] > 3 lista = listablanca #Creamos la lista nuevamente > 4 "Comprobar que la traza no este en la LB" > 5 for contador2 in range(0, len(lista[:])):#Probamos con LB > 6 patronblanco = re.compile('.'+lista[contador2]+'.', re.IGNORECASE) > 7 if (patronblanco.search(trazas)): > 8 return False #Esta en lista Blanca, No Guardaar > 9 > 10 return True A primera vista, las lineas 2 a la 5 se pueden remplazar por: for palabra in listablanca: luego en la 6, remplazar "lista[contador2]" por "palabra". En todo caso esos son cambios de estilo. El programa va a ser más rápido pero no mucho más, especialmente si estás compilando una expresión regular en cada iteración. Por el comentario de la línea 8 terminé de enterarme de lo que estás tratando de hacer pero como esto es una lista técnica me voy a morder la lengua. From python en ammsoft.com Fri Feb 23 16:35:55 2007 From: python en ammsoft.com (Amm-Python) Date: Fri, 23 Feb 2007 16:35:55 +0100 Subject: Listados con Reportlab mediante trml2pdf Message-ID: <000f01c75760$52e8bd90$640010ac@nombref31twj9b> Buenas a todo el mundo: Primero lo básico: Python 2.4.2 Wxpython 2.6.3 Reportlab 2.0 trml2pdf Windows XP En la aplicación que estoy desarrollando me decidí por hacer los listados de los informes mediante Reportlab usando plantillas RML, generando el listado en un PDF. El resultado "Genial". Hago la consulta SQL a la base de datos, proceso el documento rml, lo paso por el trml2pdf y ya está; un lindo pdf que puedo imprimir, enviar por email, etc. PERO: Llegó la hora de la verdad, al ponerlo en explotación y hacer un listado con 6000 registros tarda una eternidad en generar el pdf. Por las pruebas que he ido haciendo, es casi instantáneo con unos pocos cientos de registros, tarda varios segundos cuando llegamos al millar, pero a partir de ahí se ralentiza (2000 reg. x minuto aprox., 3000 reg. x 4 minutos!!!!) Pregunto: ¿Es normal que tarde tanto?. Lo que me llevaría a la conclusión de que me he equivocado de herramienta y que no está pensada para grandes documentos. ¿Puedo hacer algo para solucionarlo? ¿Qué otra forma de hacer "extensos" listados de informes utilizáis? Controlando el proceso desde Python, por supuesto. Para salir del apuro, de momento, voy tirando del pyExcelerator y los voy generando en formato Excell. He probado el rml2htm pero no me gusta demasiado el resultado. Saludos From cmlopez en speedy.com.ar Sat Feb 24 21:19:25 2007 From: cmlopez en speedy.com.ar (Marcelo) Date: Sat, 24 Feb 2007 17:19:25 -0300 Subject: Expresiones regulares In-Reply-To: <200702241419.54350.roylan04012@pri.jovenclub.cu> References: <200702240826.48172.roylan04012@pri.jovenclub.cu> <"200702240855.5 0860.roylan04012"@pri.jovenclub.cu> <200702241419.54350.roylan04012@pri.jovenclub.cu> Message-ID: <1172348365.4907.19.camel@localhost.localdomain> Una mas, en expresiones regulares y buscas una palabra completa usas : buscada='\beva\b' no coincide con evangeli ni con eleva ni con nada que no sea eva El \b al principio o al final evita coincidencias con palabras que la incluyan . Te convendría pegarle una mirada al uso de expr reg. Se puede hacer cualquier cosa usandolas bien. Hay mucho tutorial de er para perl no tanto para python, por ahi te sirve. ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From roylan04012 en pri.jovenclub.cu Sat Feb 24 16:24:44 2007 From: roylan04012 en pri.jovenclub.cu (Roylan Suarez Reyes) Date: Sat, 24 Feb 2007 15:24:44 +0000 Subject: Expresiones regulares In-Reply-To: <45E09914.6090801@lilyphilia.net> References: <200702240826.48172.roylan04012@pri.jovenclub.cu> <200702241419.54350.roylan04012@pri.jovenclub.cu> <45E09914.6090801@lilyphilia.net> Message-ID: <200702241524.44222.roylan04012@pri.jovenclub.cu> On Saturday 24 February 2007 07:59 pm, Patricio Olivares wrote: > Roylan Suarez Reyes wrote: > > ######################################################################### > >################################# 1def BuscaLB(listablanca, trazas): > > 2 lista = [] > > 3 lista = listablanca #Creamos la lista nuevamente > > 4 "Comprobar que la traza no este en la LB" > > 5 for contador2 in range(0, len(lista[:])):#Probamos con LB > > 6 patronblanco = re.compile('.'+lista[contador2]+'.', re.IGNORECASE) > > 7 if (patronblanco.search(trazas)): > > 8 return False #Esta en lista Blanca, No Guardaar > > 9 > > 10 return True > > A primera vista, las lineas 2 a la 5 se pueden remplazar por: > > for palabra in listablanca: > > luego en la 6, remplazar "lista[contador2]" por "palabra". En todo caso > esos son cambios de estilo. El programa va a ser más rápido pero no > mucho más, especialmente si estás compilando una expresión regular en > cada iteración. > > Por el comentario de la línea 8 terminé de enterarme de lo que estás > tratando de hacer pero como esto es una lista técnica me voy a morder la > lengua. > Weno, de todos modos gracias por la opinion.... salu2 Roylan Suarez Reyes Admin Redes JCCE Vinales Telef 793210 roylan04012 en pri.jovenclub.cu From polivare en lilyphilia.net Sat Feb 24 22:34:30 2007 From: polivare en lilyphilia.net (Patricio Olivares) Date: Sat, 24 Feb 2007 18:34:30 -0300 Subject: Problemas con Herencia In-Reply-To: <4a4f121c0702241156h368f0f45h5fbf603b750456a@mail.gmail.com> References: <4a4f121c0702241156h368f0f45h5fbf603b750456a@mail.gmail.com> Message-ID: <45E0AF66.9080901@lilyphilia.net> Rayner Rodríguez Pimentel wrote: > Hola a Todos. > > Tengo un problema al tratar de heredar de una clase base, cuando pongo: > > import psycopg2 > > class ConexionBD: > def _init_(self): > try: > self.conn=psycopg2.connect("dbname='db_prueba' user='postgres' > host='localhost' password='postgres'") > except: > print "No puede conectarse a la BD" > > def AbrirCon(): > cur = conn.cursor() > return cur > > def CerrarCon(): > conn.close() > > class Indisciplina(ConexionBD): > def _init_(self): > self.nombre='nombrep' > self.area='areap' > self.cargo='cargop' > self.fechaI='fechaIndisc' > self.fechaR='fechaRep' > self.descripcion='descripIndisc' > self.fInvolucrada='facInv' > self.lugar='lugarIndisc' > > def getareaReporta(self): > return self.area > > def setareaReporta(newVal): > area=newVal > ... > > Me sale un error de este tipo: > > *NameError: name 'OperacionesBD' is not defined* > > No sé que será eso pero parece que no encuentra esa clase. El error significa que estás usando 'OperacionesBD' en alguna parte pero el nombre no es visible en ese lugar. El problema es que en el código que pegaste no aparece ningún uso de ese nombre asi que falta información. En la traza del error debería aparecer el número de la línea en que se hace la llamada. Otra cosa. En la clase Indisciplina, supongo que quieres que la conexión a la BD se inicie cuando creas un objeto, sino no le veo mucho sentido a heredar de ConexionBD... ind = Indisciplina() # aqui se deberia conectar a la BD # ... ind.getareaReporta() #... ind.grabar() # o algo así por lo que veo no se está llamando al método __init__ de ConexionBD. Para eso, deberías hacer un par de cambios: - En la declaración de ConexionBD heredar de object: class ConexionBD(object): - En el constructor de Indisciplina usar super(): class Indisciplina(ConexionBD): def __init__(self): super(Indisciplina, self).__init__() # ... el resto del constructor de Indisciplina Los métodos deberían declararse siempre usando 'self' como primer argumento (a menos que sepas lo que estás haciendo). En setareaReporta te faltó, así como en los de abrir y cerrar en ConexionBD. Cuando te quieras referir a un atributo del objeto dentro de la misma clase, deberías usar self.elatributo . En eso vas a tener problemas en ConexionBD con el atributo 'conn' y en setareaReporta. La última, a menos que estés siguiendo alguna convención especial, no necesitas escribir getters y setters para cada atributo en Indisciplina. Te sale más limpio acceder directamente a los atributos: ind = Indisciplina() ind.nombre = 'nuevonombre' print 'nuevo cargo:', ind.cargo From mlacunza en gmail.com Sun Feb 25 00:38:02 2007 From: mlacunza en gmail.com (Mario Lacunza) Date: Sat, 24 Feb 2007 18:38:02 -0500 Subject: Listados con Reportlab mediante trml2pdf In-Reply-To: <000f01c75760$52e8bd90$640010ac@nombref31twj9b> References: <000f01c75760$52e8bd90$640010ac@nombref31twj9b> Message-ID: <1172360282.5232.18.camel@laptop> Hola, El vie, 23-02-2007 a las 16:35 +0100, Amm-Python escribió: > Buenas a todo el mundo: > > Primero lo básico: > Python 2.4.2 > Wxpython 2.6.3 > Reportlab 2.0 > trml2pdf > Windows XP te recomiendo tener actualizadas las versiones... > > En la aplicación que estoy desarrollando me decidí por hacer los > listados de los informes mediante Reportlab usando plantillas RML, > generando el listado en un PDF. > > El resultado "Genial". > Hago la consulta SQL a la base de datos, proceso el documento rml, lo > paso por el trml2pdf y ya está; un lindo pdf que puedo imprimir, enviar > por email, etc. > > PERO: > Llegó la hora de la verdad, al ponerlo en explotación y hacer un listado > con 6000 registros tarda una eternidad en generar el pdf. > Por las pruebas que he ido haciendo, es casi instantáneo con unos pocos > cientos de registros, tarda varios segundos cuando llegamos al millar, > pero a partir de ahí se ralentiza (2000 reg. x minuto aprox., 3000 reg. > x 4 minutos!!!!) > esto me huele mal... > Pregunto: > ¿Es normal que tarde tanto?. Lo que me llevaría a la conclusión de que > me he equivocado de herramienta y que no está pensada para grandes > documentos. En primer lugar no es normal. Como sacas la conclusion tan a la ligera??? te presento varias preguntas q DEBERIAS haber tomado en cuenta: * Has testeado la forma como retornas datos de la BD?? * esta tiene campos ID e Indices?? * como ejecutas el sql?? Select *... o Select campo1, campo2 ?? * ya q no pones codigo debemos pensar q sabes python, sino te podria decir q tal vez tu logica sea la q podria fallar... > ¿Puedo hacer algo para solucionarlo? ve lo de arriba... y manda codigo. > ¿Qué otra forma de hacer "extensos" listados de informes utilizáis? Pues yo uso RL sin problemas... -- Mario Lacunza ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From adrigm.administrador en gmail.com Sun Feb 25 12:57:08 2007 From: adrigm.administrador en gmail.com (Adrigm Adrigm) Date: Sun, 25 Feb 2007 11:57:08 +0000 Subject: =?iso-8859-1?q?Documentaci=F3n_Pygames?= Message-ID: Hola buenas, este es mi primer mensaje en la lista y tengo una duda: Me intereso python para la creación de videojuegos gracias a pygames y queria saber si conoces documentación en español sobre pygames, la agradecería mucho ya que mi inglés es bastante malo. -- Un Saludo de Adrigm. From rafaelrp en uci.cu Sun Feb 25 16:13:37 2007 From: rafaelrp en uci.cu (Rafael =?ISO-8859-1?Q?Rodr=EDguez?= Puente) Date: Sun, 25 Feb 2007 10:13:37 -0500 Subject: Herramienta case Message-ID: <1172416418.11977.2.camel@localhost> Hola lista: Alguien conoce alguna herramienta case libre, para linux, y que no esté hecha en java?? Muchas gracias. "El software, al igual que el sexo, es mejor cuando es libre" From arnau en ehas.org Sun Feb 25 17:34:12 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Sun, 25 Feb 2007 17:34:12 +0100 Subject: =?ISO-8859-1?Q?Documentaci=F3n_Pygames?= In-Reply-To: References: Message-ID: <45E1BA84.3030508@ehas.org> Adrigm Adrigm escribió: > Me intereso python para la creación de videojuegos gracias a pygames y > queria saber si conoces documentación en español sobre pygames, la > agradecería mucho ya que mi inglés es bastante malo. En DotPy tienes algunos enlaces (sección videojuegos), aunque ahora mismo parecen caídos: http://dotpy.net/python_en_castellano.html En cualquier caso, y como ya habrás comprobado, intentar aprender programación sin saber inglés puede ser tan frustrante como tocar una guitarra sin cuerdas. A la vez que aprendes Python, no te iría mal seguir algún curso de los miles que hay por Internet. Al final tampoco son sonetos de Milton, con poco más de 500 palabras y 4 construcciones gramaticales entenderás perfectamente cualquier documentación técnica. From kernel.no.found en gmail.com Sun Feb 25 18:00:24 2007 From: kernel.no.found en gmail.com (=?ISO-8859-1?Q?Juan_Jos=E9_Alonso.?=) Date: Sun, 25 Feb 2007 18:00:24 +0100 Subject: =?iso-8859-1?q?RE=3A_Documentaci=F3n_Pygames?= Message-ID: <117d6e170702250900ya204573s9f071ffb4369ee4c@mail.gmail.com> Te he agregado a Gmail/Jabber Me gusta tener a programadores de juegos python que somos pocos. te ayudare en lo que sea, y luego te paso unos manuales de linuxjuegos.com -- Juan José Alonso. KarlsBerg. eMail: kernel.no.found en gmail.com MSN: kernel.no.found en gmail.com From kh_alatar en telefonica.net Sun Feb 25 20:17:44 2007 From: kh_alatar en telefonica.net (Alatar) Date: Sun, 25 Feb 2007 20:17:44 +0100 Subject: Problema con ventana modal gtk In-Reply-To: <1172066688.5633.3.camel@localhost.localdomain> References: <20070219233320.7A939145F99F@devnull.aditel.org> <1172066688.5633.3.camel@localhost.localdomain> Message-ID: <45E1E0D8.1040205@telefonica.net> Gracias Guedes ;) Guedes escribió: > Em Mon, 19 Feb 2007 23:12:49 +0100, Alatar escreveu: > >> Problema con ventana modal gtk >> > Segue abaixo uma rotina: > > def mensagem(texto, janela= None): > ''' > Uso: Mensagem(texto, janela) > texto -> texto a ser exibido nos padrões pango > janela -> janela ativa > > Apresenta uma caixa de dialogo com o botão 'OK' > com o texto definido pelo desenvolvedor e o ícone de informação > > Endereço das referências do pango: > http://www.pygtk.org/pygtk2reference/pango-markup-language.html > ''' > > dialogo= gtk.MessageDialog(janela, gtk.DIALOG_MODAL, gtk.MESSAGE_INFO, > \ > gtk.BUTTONS_OK, texto) > dialogo.set_markup(texto) # texto formatado nos padrões pango > dialogo.run() > dialogo.destroy() > > > Abracos, > Guedes. > > > > ------------------------------------------------------------------------ > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From mlacunza en gmail.com Sun Feb 25 20:38:34 2007 From: mlacunza en gmail.com (Mario Lacunza) Date: Sun, 25 Feb 2007 14:38:34 -0500 Subject: Herramienta case In-Reply-To: <1172416418.11977.2.camel@localhost> References: <1172416418.11977.2.camel@localhost> Message-ID: <1172432314.5836.9.camel@laptop> El dom, 25-02-2007 a las 10:13 -0500, Rafael Rodríguez Puente escribió: > Hola lista: > > Alguien conoce alguna herramienta case libre, para linux, y que no esté > hecha en java?? > > Muchas gracias. Yo uso Dia [1] para diseñar los diagramas UML, luego para leer estos y generar codigo Python puedes usar Dia2Code [2] y dado q esta es una linea de comando puedes usar la GUI q hice para este: pyDia2Code [3] [1]http://www.gnome.org/projects/dia/ [2]http://dia2code.sourceforge.net/ [3]http://pydia2code.sourceforge.net/ Mi configuracion/My config: Ubuntu Edgy Eft 6.10 Linux Kernel 2.6.17-11-386 Gnome 2.16.1 Python 2.4.4c1 wxPython 2.8.1.1 Unicode Python IDE: Ulipad 3.6 Database: Firebird 2.0 Superserver -- Saludos / Best regards Mario Lacunza Vásquez Desarrollador de Software - Webmaster Linux Registered User #439179 Desarrollador 2 Estrellas VS2005 Website : http://mlacunzav[DOT]cogia[DOT]net Email : mlacunza[AT]gmail.com / mario_lacunza[AT]yahoo.es Blog : http://mlacunza.blogspot.com Lima - Peru ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From roylan04012 en pri.jovenclub.cu Sun Feb 25 16:05:43 2007 From: roylan04012 en pri.jovenclub.cu (Roylan Suarez Reyes) Date: Sun, 25 Feb 2007 15:05:43 -0000 (UTC) Subject: archivo de configuracion Message-ID: <51383.172.16.7.10.1172415943.squirrel@webmail.vn.pri.jovenclub.cu> hla amigos, tengo una duda, para la aplicacion que estoy creando quisiera crear un archivo de configuracion donde por ejemplo este: ruta del fichero de logs logs= '/var/log/squid/access.log' esto me permitira usar la variable logs como referencia ha esa ruta... ?Como es posible esto? ya probre como import pero no me funcionos -- Roylan Suarez Reyes Admin Redes JCCE Vinales telef: 793210 roylan04012 en pri.jovenclub.cu From arnau en ehas.org Sun Feb 25 21:07:30 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Sun, 25 Feb 2007 21:07:30 +0100 Subject: archivo de configuracion In-Reply-To: <51383.172.16.7.10.1172415943.squirrel@webmail.vn.pri.jovenclub.cu> References: <51383.172.16.7.10.1172415943.squirrel@webmail.vn.pri.jovenclub.cu> Message-ID: <45E1EC82.300@ehas.org> Roylan Suarez Reyes escribió: > hla amigos, tengo una duda, para la aplicacion que estoy creando quisiera > crear un archivo de configuracion donde por ejemplo este: > > ruta del fichero de logs > logs= '/var/log/squid/access.log' > > esto me permitira usar la variable logs como referencia ha esa ruta... > > ?Como es posible esto? ya probre como import pero no me funcionos http://listas.aditel.org/archivos/python-es/2007-February/021173.html From mlacunza en gmail.com Sun Feb 25 21:10:57 2007 From: mlacunza en gmail.com (Mario Lacunza) Date: Sun, 25 Feb 2007 15:10:57 -0500 Subject: archivo de configuracion In-Reply-To: <51383.172.16.7.10.1172415943.squirrel@webmail.vn.pri.jovenclub.cu> References: <51383.172.16.7.10.1172415943.squirrel@webmail.vn.pri.jovenclub.cu> Message-ID: <1172434257.5836.13.camel@laptop> El dom, 25-02-2007 a las 15:05 +0000, Roylan Suarez Reyes escribió: > hla amigos, tengo una duda, para la aplicacion que estoy creando quisiera > crear un archivo de configuracion donde por ejemplo este: > > ruta del fichero de logs > logs= '/var/log/squid/access.log' > > esto me permitira usar la variable logs como referencia ha esa ruta... > > ?Como es posible esto? ya probre como import pero no me funcionos > > Para trabajar con archivos tipo INI usa el modulo ConfigParser -- Mario Lacunza ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From arrase en gulcas.org Sun Feb 25 22:20:16 2007 From: arrase en gulcas.org (arrase) Date: Sun, 25 Feb 2007 22:20:16 +0100 Subject: archivo de configuracion In-Reply-To: <51383.172.16.7.10.1172415943.squirrel@webmail.vn.pri.jovenclub.cu> References: <51383.172.16.7.10.1172415943.squirrel@webmail.vn.pri.jovenclub.cu> Message-ID: <45E1FD90.50603@gulcas.org> Roylan Suarez Reyes escribió: > hla amigos, tengo una duda, para la aplicacion que estoy creando quisiera > crear un archivo de configuracion donde por ejemplo este: > > ruta del fichero de logs > logs= '/var/log/squid/access.log' > > esto me permitira usar la variable logs como referencia ha esa ruta... > > ?Como es posible esto? ya probre como import pero no me funcionos > > > Quizas esto te interese: https://arrase.no-ip.org/mediawiki/index.php/Parsear_ficheros_de_configuracion Saludos. -- print "".join(map(lambda numChar:filter(lambda x:(x<"0") or \ (x>"9"),numChar),["0"+chr(104)+"0","1"+chr(111)+"1","2"+chr(108)+"2", \ "3"+chr(97)+"3","4"+chr(32)+"4","5"+chr(109)+"5","6"+chr(117)+"6", \ "7"+chr(110)+"7","8"+chr(100)+"8","9"+chr(111)+"9"])) ------------ próxima parte ------------ A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 189 bytes Desc: OpenPGP digital signature URL: ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From py en ch3m4.org Sun Feb 25 22:51:40 2007 From: py en ch3m4.org (Chema Cortes) Date: Sun, 25 Feb 2007 22:51:40 +0100 Subject: Expresiones regulares In-Reply-To: <200702241419.54350.roylan04012@pri.jovenclub.cu> References: <200702240826.48172.roylan04012@pri.jovenclub.cu> <1172332213.4907.8.camel@localhost.localdomain> <200702241419.54350.roylan04012@pri.jovenclub.cu> Message-ID: <200702252251.41929.py@ch3m4.org> El Sábado, 24 de Febrero de 2007 15:19, Roylan Suarez Reyes escribió: > Gracias a todos, ya resolvi el problema y lo esta haciendo requete bien, > quiero compartir con ustedes la funciona que elabore y comentarle algunas > lineas... > > ########################################################################### >############################### 1def BuscaLB(listablanca, trazas): > 2 lista = [] > 3 lista = listablanca #Creamos la lista nuevamente > 4 "Comprobar que la traza no este en la LB" > 5 for contador2 in range(0, len(lista[:])):#Probamos con LB > 6 patronblanco = re.compile('.'+lista[contador2]+'.', re.IGNORECASE) > 7 if (patronblanco.search(trazas)): > 8 return False #Esta en lista Blanca, No Guardaar > 9 > 10 return True > > 1. Aqui paso como argumentos 'listablanca' que es una lista de x elementos > 2. Aqui creo una nueva lista, porque la lista que paso como argumento desde > otra funcion que hace la llamada, no se comporta como lista, y no se como > pasar una lista con sus argumentos... > 3. Le asigno el contenido a la nueva lista > 5. Este ciclo prueba con cada uno de los elementos de la lista > 6. Creo un patron de busqueda. este patron lo elabore asi porque por > ejemplo, en mi aplicacion yo estoy buscando palabar como puta, pene, etc. > dentro del fichero de las trazas de internet pero hay palabras como > "computadora" que no las deseo incluie, entonces en la lista que paso como > argumento tengo palabras como "computa" que conincide con muchas de su tipo > (computadora, computadoras, computar, etc...) > 7. Comprobar el patron de busqueda > 8 Retornar el valor de False el cual es evaluado por la funcion llamadora y > en dependencia de ello llama a otra funcion. > 10 Si no hay ninguna coincidencia con listablanca, devuelbe True Como siempre se dice: "si funciona, no lo arregles" Por lo mensajes anteriores, parece que tenías un problema para detectar el punto. En expresiones regulares, el punto tiene el significado de "cualquier caracter", por lo que detecta cualquier caracter, no sólo los puntos. Debes escaparlo para que sólo vea puntos. Por otro lado, antes de codificar deberías tener mejor pensado el "patrón" de búsqueda. Por ejemplo, si las palabras simplemente empiezan después de un / y acaban en un punto, o si el patrón debe ser más amplio para que considere más casos. En el caso más general, puede que el patrón "\w+" sea todo lo que necesites. Por ejemplo, refactorizando tu código: def BuscaLB(listablanca, trazas): palabras=re.findall("\w+",trazas) for palabra in palabras: if palabra.lower() in listablanca: return False return True También se podrías haber complicado más el patrón de búsqueda. Siguiendo tu caso, con un patrón como "(? References: <1172416418.11977.2.camel@localhost> Message-ID: <200702252313.13162.py@ch3m4.org> El Domingo, 25 de Febrero de 2007 16:13, Rafael Rodríguez Puente escribió: > Hola lista: > > Alguien conoce alguna herramienta case libre, para linux, y que no esté > hecha en java?? Prueba con Umbrello: http://uml.sourceforge.net PD: ¿Por qué no java? Eclipse puede compilarse con gcj y no notar que esté programado en java. From rafaelrp en uci.cu Mon Feb 26 01:17:19 2007 From: rafaelrp en uci.cu (Rafael =?ISO-8859-1?Q?Rodr=EDguez?= Puente) Date: Sun, 25 Feb 2007 19:17:19 -0500 Subject: Herramienta case In-Reply-To: <200702252313.13162.py@ch3m4.org> References: <1172416418.11977.2.camel@localhost> <200702252313.13162.py@ch3m4.org> Message-ID: <1172449040.11977.4.camel@localhost> Lo que pasa es que estas herramientas case escritas en java son muy pesadas, y me ponen la pc como una tortuga On Sun, 2007-02-25 at 23:13 +0100, Chema Cortes wrote: > El Domingo, 25 de Febrero de 2007 16:13, Rafael Rodríguez Puente escribió: > > Hola lista: > > > > Alguien conoce alguna herramienta case libre, para linux, y que no esté > > hecha en java?? > > Prueba con Umbrello: http://uml.sourceforge.net > > > PD: ¿Por qué no java? Eclipse puede compilarse con gcj y no notar que esté > programado en java. > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es "El software, al igual que el sexo, es mejor cuando es libre" From python en ammsoft.com Sat Feb 24 11:43:22 2007 From: python en ammsoft.com (Amm-Python) Date: Sat, 24 Feb 2007 11:43:22 +0100 Subject: problema con llamada a software In-Reply-To: AAAAAIQQJZINhhBArhGVVySOJs+k0jQA Message-ID: <000001c75800$9c4af1b0$640010ac@nombref31twj9b> No sería mejor dejar que el sistema operativo decida con que abrir el archivo: os.startfile("reporte.html") De esta forma será abierto con el navegador por defecto que se haya especificado en el sistema operativo, no importa cual. Saludos. > -----Mensaje original----- > De: python-es-bounces en aditel.org > [mailto:python-es-bounces en aditel.org] En nombre de Patricio Olivares > Enviado el: dissabte, 24 / febrer / 2007 07:01 > Para: La lista de python en castellano > Asunto: Re: [Python-es] problema con llamada a software > > > Hola, > > Fabio Duran Verdugo wrote: > > hola me llamo fabio y desarrollo bajo python y gtk > incluyendo a kiwi > > (gnome), y tengo un problema que no es un bug pero resulta molesto, > > porque resulta que estoy desarrollando un sistema que necesita y > > despende de firefox (linux) y explorer (wintendo), y el problema es > > que si ejecuto esta instruccion : > > > > if sys.platform == "win32": > > os.system("explorer reporte.html") > > else: > > os.system("firefox reporte.html") > > > > mi sistema queda esperando que se termine esa instruccion > provocando > > que es software se bloquee hasta que se cierre, una vez cerrado el > > navegador el sistema funciona tal cual y lo que necesito es que > > interactuen ambas cosas o sea mi sistema con el navegador, > y eso no se > > y no eh podido hacerlo, porque necesariamente necesita pasa > y esperar > > que eso se cumpla, alguna idea se agradece atte > > os.system() se comporta parecido a la función "system" de C, > o sea que espera a que el proceso hijo termine. > > Como alternativa fácil, puedes usar el módulo subprocess, si > es que estás usando python 2.4 o superior. > > subprocess.Popen('firefox reporte.html', shell=True) > > Popen soporta varias opciones extra para "conversar" con el > proceso, pero para lo que quieres, la línea de arriba debería bastar. > > > Si necesitas que funcione en versiones anteriores de python, > te puede servir una de las os.spawn*() > http://docs.python.org/lib/os-process.html#l2h-2749 > > y aquí hay un ejemplo de uso (ojo con os.P_WAIT versus os.P_NOWAIT) > http://effbot.org/librarybook/os.htm > (busca "fork and wait are not available on Windows") > > > Suerte... > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org http://listas.aditel.org/listinfo/python-es > From arnau en ehas.org Mon Feb 26 13:10:51 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Mon, 26 Feb 2007 13:10:51 +0100 Subject: problema con llamada a software In-Reply-To: <000001c75800$9c4af1b0$640010ac@nombref31twj9b> References: <000001c75800$9c4af1b0$640010ac@nombref31twj9b> Message-ID: <45E2CE4B.50806@ehas.org> Amm-Python escribió: > No sería mejor dejar que el sistema operativo decida con que abrir el > archivo: > > os.startfile("reporte.html") > > De esta forma será abierto con el navegador por defecto que se haya > especificado en el sistema operativo, no importa cual. La función os.startfile sólo está disponible para Window$. En lo que respecta a GNU/Linux es interesante el trabajo del proyecto Portland, que trata de integrar parte de la API de los diferentes escritorios libres (Gnome, KDE, XFCE, ...). De él forman parte las xdg-utils, que incluye el comando "xdg-open" para abrir ficheros según la configuración del escritorio. http://portland.freedesktop.org/wiki/ From gcarrera en cnb.uam.es Mon Feb 26 13:39:40 2007 From: gcarrera en cnb.uam.es (=?ISO-8859-1?Q?Germ=E1n_Carrera?=) Date: Mon, 26 Feb 2007 13:39:40 +0100 Subject: Persistencia para una variable Message-ID: <45E2D50C.4010600@cnb.uam.es> Hola, Necesito gruardar el estado de una variable, en este caso una tupla a través de varias iteraciones. El código este if job_data['iter']==1 for i in range(1,job_data['Nsplit']+1): subset_sel_file = "%(MLroot)s_subset_"%job_data+str(i)+".sel" tarimg = os.path.join(job_data['img_tar_dir'],subset_sel_file+".tgz") if not os.path.isfile(tarimg): tar_images(subset_sel_file, img_topdir, tarimg ) task = [ FILE.read(subset_sel_file),Base64BinaryFile.read(tarimg),i ] plan.append(task) Y la variable que quiero guardar es plan, lo he instantado hacer creando una var externa self.plan pero no ha habido manera. La cuestión quizá consistiría en hacer una copia por valor de la misma. Gracias y saludos, Germán From joselopezguerra en gmail.com Mon Feb 26 13:51:55 2007 From: joselopezguerra en gmail.com (=?ISO-8859-1?Q?Pepe_L=F3pez?=) Date: Mon, 26 Feb 2007 12:51:55 +0000 Subject: Uso de GUI's Message-ID: Hola. Soy programador y uso Python desde no hace mucho. La cuestión es que he comenzado a familiarizarme con conceptos tales como Qt, Tkinter, wxpython, glade........y un largo etcccc.... y comienzan a surgir dudas. Quiero desarrollar pequeñas aplicaciones con interfaz gráfica y python y no logro decidirme por qué módulo o extensiones utilizar. Me gustaría que me dieséis algo de orientación: ¿cuál es la mejor hoy por hoy? ¿Hay alguna que asemeje su forma de trabajar a como lo hace Delphi o BorlandBuilder? MUCHAS GRACIAS. From roylan04012 en pri.jovenclub.cu Mon Feb 26 09:15:28 2007 From: roylan04012 en pri.jovenclub.cu (Roylan Suarez Reyes) Date: Mon, 26 Feb 2007 08:15:28 -0000 (UTC) Subject: archivo de configuracion In-Reply-To: <45E1EC82.300@ehas.org> References: <51383.172.16.7.10.1172415943.squirrel@webmail.vn.pri.jovenclub.cu> <45E1EC82.300@ehas.org> Message-ID: <60297.172.16.7.10.1172477728.squirrel@webmail.vn.pri.jovenclub.cu> > Roylan Suarez Reyes escribió: > >> hla amigos, tengo una duda, para la aplicacion que estoy creando >> quisiera >> crear un archivo de configuracion donde por ejemplo este: >> >> ruta del fichero de logs >> logs= '/var/log/squid/access.log' >> >> esto me permitira usar la variable logs como referencia ha esa ruta... >> >> ?Como es posible esto? ya probre como import pero no me funcionos > > > http://listas.aditel.org/archivos/python-es/2007-February/021173.html Gracias, precisamente lo que necesitaba.... salu2 -- Roylan Suarez Reyes Admin Redes JCCE Vinales telef: 793210 roylan04012 en pri.jovenclub.cu From py en ch3m4.org Mon Feb 26 14:18:23 2007 From: py en ch3m4.org (Chema Cortes) Date: Mon, 26 Feb 2007 14:18:23 +0100 Subject: Persistencia para una variable In-Reply-To: <45E2D50C.4010600@cnb.uam.es> References: <45E2D50C.4010600@cnb.uam.es> Message-ID: <45E2DE1F.5030302@ch3m4.org> Germán Carrera escribió: > Necesito gruardar el estado de una variable, en este caso una tupla a > través de varias iteraciones. > > El código este > if job_data['iter']==1 > for i in range(1,job_data['Nsplit']+1): > subset_sel_file = > "%(MLroot)s_subset_"%job_data+str(i)+".sel" > tarimg = > os.path.join(job_data['img_tar_dir'],subset_sel_file+".tgz") > if not os.path.isfile(tarimg): > tar_images(subset_sel_file, img_topdir, tarimg ) > task = [ > FILE.read(subset_sel_file),Base64BinaryFile.read(tarimg),i ] > plan.append(task) > > Y la variable que quiero guardar es plan, lo he instantado hacer creando > una var externa self.plan pero no ha habido manera. La cuestión quizá > consistiría en hacer una copia por valor de la misma. No me queda nada claro lo que pides. 'plan' más que tupla parece ser una lista, pero no veo dónde la declaras ni cómo. Haría falta que especificaras si la persistencia la quieres durante la misma ejecución del programa, con lo que estaríamos en un problema de alcances ("scope") y clausuras, o si la persistencia la necesitas más allá de la vida de la aplicación, con lo que sería un problema de recuperar estados. Tampoco entiendo a qué te refieres por "variable externa" con self.plan . ¿Acaso es parte de un método lo que estás creando? -- Chema Cortés (py en ch3m4.org) "Proudly made on earth by generic humanoid carbon units" From josefgon en gmail.com Mon Feb 26 13:22:19 2007 From: josefgon en gmail.com (Jose Francisco Gonzalez) Date: Mon, 26 Feb 2007 13:22:19 +0100 Subject: gtk.RESPONSE_OK no me funciona Message-ID: <24be9e680702260422g46f68612mf0b0f60bde13565c@mail.gmail.com> Ante todo un saludo ya que soy nuevo tanto en esta lista como en Python. Para aprender he empezado un proyecto pero a la primera ya me estoy volviendo un poco loco. Me explico, tengo una ventana principal y con la opcion de abrir quiero que me salga el dialogo de abrir archivo para seleccionar uno. En el codigo del formulario principal he puesto este trozo de codigo para presentar y gestionar el dialogo: def on_open(self, widget): try: sf = SelectFile() a = sf.run() if a == gtk.RESPONSE_OK: print 'ok' else: print "cancel" finally: sf.destroy() Y el codigo del formulario de abrir archivo es este otro: class SelectFile: def __init__(self): self.glade = gtk.glade.XML("prueba.glade") self.dlg = self.glade.get_widget("selectfile") self.glade.signal_autoconnect(self) def destroy(self): self.dlg.destroy() def run(self): return self.dlg.run() def on_btn_ok_clicked(self, widget): self.dlg.response(gtk.RESPONSE_OK) def on_btn_cancel_clicked(self, widget): self.dlg.response(gtk.RESPONSE_CANCEL) Pues la variable a del formulario principal si pulso "Cancelar" si que vale -6 que es el valor de RESPONSE_CANCEL pero si pulso aceptar la variable siempre tiene el valor de 0. He probado a mirar en el codigo del formulario de abrir archivo a ver cuanto vale el valor que devuelve self.dlg.run() y pasa lo mismo asi que ya no se por donde tirar. El dialogo de abrir archivo lo he creado con glade-3 por lo que al no ponerme botones de aceptar y cancelar los he puesto yo y los he tenido que controlar en el codigo, no se si sera lo mejor. He probado a hacerlo por codigo con dialog = gtk.FileChooserDialog(...) y asi si que devuelve bien los valores pero prefiero hacerlo de la otra forma para tener todos los formularios juntos. Una ultima cosa, es mejor tener un solo archivo .glade para todo el proyecto donde esten todos los formularios o un archivo .glade por cada modulo de codigo con el formulario correspondiente? -- Saludos José Francisco González From gcarrera en cnb.uam.es Mon Feb 26 15:30:54 2007 From: gcarrera en cnb.uam.es (=?ISO-8859-1?Q?Germ=E1n_Carrera?=) Date: Mon, 26 Feb 2007 15:30:54 +0100 Subject: Persistencia para una variable In-Reply-To: <45E2DE1F.5030302@ch3m4.org> References: <45E2D50C.4010600@cnb.uam.es> <45E2DE1F.5030302@ch3m4.org> Message-ID: <45E2EF1E.4010101@cnb.uam.es> Hola , Perdón, sí se trata de una lista y no necesito persistencia más allá de la vida de la aplicación. La función dentro de la clase es llamada desde fuera para realizar un número de iteraciones determinado, en cada iteración generaba un tarball con unas imágenes, ahora quiero que sólo sea generado durante la primera iteración (por eso if job_data['iter']==1) y aun así guardar el estado de plan y poder usarla en el resto de las iteraciones. Mi solución estaba en en el método __init__ añadir self.plan=[] Y substituir en el caso del código de abajo. pero en este caso la lista self.plan pierde su valor en cada una de las iteraciones. def plan_MLalign2D(self, job_data, chunkNum): .... .... .... if job_data['iter']==1 for i in range(1,job_data['Nsplit']+1): subset_sel_file = "%(MLroot)s_subset_"%job_data+str(i)+".sel" tarimg = os.path.join(job_data['img_tar_dir'],subset_sel_file+".tgz") if not os.path.isfile(tarimg): tar_images(subset_sel_file, img_topdir, tarimg ) task = [ FILE.read(subset_sel_file),Base64BinaryFile.read(tarimg),i ] self.plan.append(task) ... ... Gracias, Germán Chema Cortes wrote: > Germán Carrera escribió: >> Necesito gruardar el estado de una variable, en este caso una tupla a >> través de varias iteraciones. >> >> El código este >> if job_data['iter']==1 >> for i in range(1,job_data['Nsplit']+1): >> subset_sel_file = >> "%(MLroot)s_subset_"%job_data+str(i)+".sel" >> tarimg = >> os.path.join(job_data['img_tar_dir'],subset_sel_file+".tgz") >> if not os.path.isfile(tarimg): >> tar_images(subset_sel_file, img_topdir, tarimg ) >> task = [ >> FILE.read(subset_sel_file),Base64BinaryFile.read(tarimg),i ] >> plan.append(task) >> >> Y la variable que quiero guardar es plan, lo he instantado hacer >> creando una var externa self.plan pero no ha habido manera. La >> cuestión quizá consistiría en hacer una copia por valor de la misma. > > No me queda nada claro lo que pides. 'plan' más que tupla parece ser > una lista, pero no veo dónde la declaras ni cómo. Haría falta que > especificaras si la persistencia la quieres durante la misma ejecución > del programa, con lo que estaríamos en un problema de alcances > ("scope") y clausuras, o si la persistencia la necesitas más allá de > la vida de la aplicación, con lo que sería un problema de recuperar > estados. > > Tampoco entiendo a qué te refieres por "variable externa" con > self.plan . ¿Acaso es parte de un método lo que estás creando? > > > > From manuelmalo en gmail.com Mon Feb 26 16:14:56 2007 From: manuelmalo en gmail.com (Manuel Malo de Molina) Date: Mon, 26 Feb 2007 16:14:56 +0100 Subject: Fallo al cerrar aplicacion Tkinter In-Reply-To: <45DF1C9E.8060703@ch3m4.org> References: <45DF1C9E.8060703@ch3m4.org> Message-ID: Gracias por la respuesta, no puedo poner mas codigo porque deberia copiar aqui medio programa y no creo que les hiciera gracia en el trabajo xD. De todas maneras estuve investigando sobre como eliminar referencias y me parece que ahora cierra bastante bien, aun a veces hay que darle un par de veces pero en general va mejor que antes. Manuel Malo de Molina From kh_alatar en telefonica.net Mon Feb 26 16:13:02 2007 From: kh_alatar en telefonica.net (Alatar) Date: Mon, 26 Feb 2007 16:13:02 +0100 Subject: Fractales Message-ID: <45E2F8FE.8030409@telefonica.net> Saludos. Mi mujer tiene que presentar un proyecto de final de carrera en el que, en una sus partes, tiene que tratar con fractales. Yo, en un intento de ayudarla, estoy investigando un poco el tema y viendo lo que hay hecho en Python (cosas como Pyx, Chaos, etc...). El caso es que alguien le ha desaconsejado el uso de Python para esta tarea. No obstante, como ella no tiene un nivel de programación demasiado alto, yo le he aconsejado su uso por la claridad, facilidad y potencia del lenguaje (aunque yo también soy bastante novato en el mundo de Python). Pero como la duda existe, quisiera que la gente con más experiencia de la lista me dijera si acierto o no al aconsejarle que use Python. También quisiera pedir ayuda para centrarme un poco en el tema, es decir, qué librería tendríamos que usar o cuál sería la mejor manera de enfocar el tema. Finalmente y a bote pronto, ¿puede ser conveniente el uso de una librería como pyGame para trabajos como este? De antemano, muchas gracias a todos, Alatar From necudeco en gmail.com Mon Feb 26 16:56:20 2007 From: necudeco en gmail.com (NeCuDeCo) Date: Mon, 26 Feb 2007 10:56:20 -0500 Subject: Fractales In-Reply-To: <45E2F8FE.8030409@telefonica.net> References: <45E2F8FE.8030409@telefonica.net> Message-ID: <2ccb93070702260756v3a7277a2q596cf8c469066e60@mail.gmail.com> Para trabajar con fractales aparte de una libreria grafica no se necesita otra cosa. En ese caso yo si te recomendaria pygame. Claro q pueden existir otras librerias que ya te realicen todo el proceso de construccion de un fractal, pero la decision de usarlas o no es tuya. Ten en cuenta que si la generacion del fractal en si es parte del proyecto de tu mujer, cuando le pregunte y como le generaste, no va a responder me baje tal libreria y ya, o si? Saludos On 2/26/07, Alatar wrote: > > Saludos. > > Mi mujer tiene que presentar un proyecto de final de carrera en el que, > en una sus partes, tiene que tratar con fractales. Yo, en un intento de > ayudarla, estoy investigando un poco el tema y viendo lo que hay hecho > en Python (cosas como Pyx, Chaos, etc...). > > El caso es que alguien le ha desaconsejado el uso de Python para esta > tarea. No obstante, como ella no tiene un nivel de programación > demasiado alto, yo le he aconsejado su uso por la claridad, facilidad y > potencia del lenguaje (aunque yo también soy bastante novato en el mundo > de Python). > > Pero como la duda existe, quisiera que la gente con más experiencia de > la lista me dijera si acierto o no al aconsejarle que use Python. > También quisiera pedir ayuda para centrarme un poco en el tema, es > decir, qué librería tendríamos que usar o cuál sería la mejor manera de > enfocar el tema. > > Finalmente y a bote pronto, ¿puede ser conveniente el uso de una > librería como pyGame para trabajos como este? > > De antemano, muchas gracias a todos, > Alatar > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > -- -------------------------- NeCuDeCo Junta de Decanos de los Colegios de Notarios del Peru http://necudeco.blogsome.com http://apesol.org Your Jugdment Day is NOW sudo kills -9 $richard_penguin_signature From sonajadiabolica en gmail.com Mon Feb 26 17:03:58 2007 From: sonajadiabolica en gmail.com (aNgel rEsendiz g.) Date: Mon, 26 Feb 2007 10:03:58 -0600 Subject: Uso de GUI's In-Reply-To: References: Message-ID: <8d9e208f0702260803x1043a336ka77cf4e869d4b2b7@mail.gmail.com> > ¿Hay alguna que asemeje su forma de trabajar a como lo hace Delphi o > BorlandBuilder? Que tal. Pues es un hilo que se ha repetido muchas veces en la lista. Hoy por hoy (como lo preguntas), todas las gui que mencionas son estables y con muchas posibilidades. Cada una tiene sus puntos fuertes, y sus seguidores. En lo personal me inclino por gtk, aunque no tiene la forma de trabajar que buscas, pero no es nada dificil, solo cosa de acostumbrarse. Y como te repito, no creo que tenga mucho caso volver a escribir lo que ya se ha escrito muchas veces, mejor pon esto: inurl:listas.aditel.org intitle:gui en una busqueda de google, que hay muchas cosas interesantes. Saludos. -- aNgel rEsendiz.! From lasizoillo en gmail.com Mon Feb 26 17:30:41 2007 From: lasizoillo en gmail.com (lasizoillo) Date: Mon, 26 Feb 2007 17:30:41 +0100 Subject: Fractales In-Reply-To: <45E2F8FE.8030409@telefonica.net> References: <45E2F8FE.8030409@telefonica.net> Message-ID: <49414f570702260830u1a38244drf79e96b8436717@mail.gmail.com> Buenas: El 26/02/07, Alatar escribió: > Saludos. > > Mi mujer tiene que presentar un proyecto de final de carrera en el que, > en una sus partes, tiene que tratar con fractales. Yo, en un intento de > ayudarla, estoy investigando un poco el tema y viendo lo que hay hecho > en Python (cosas como Pyx, Chaos, etc...). > ¿Que tipo de fractales necesita? > El caso es que alguien le ha desaconsejado el uso de Python para esta > tarea. No obstante, como ella no tiene un nivel de programación > demasiado alto, yo le he aconsejado su uso por la claridad, facilidad y > potencia del lenguaje (aunque yo también soy bastante novato en el mundo > de Python). > Los fractales suelen hacer muchos calculos numericos. Si usas python, un float es un objeto con su overhead (memoria y tiempo de instanciacion) correspondiente. Una libreria te puede resolver el problema (no se cual). Es posible que vayan por ahi los tiros de que te lo hayan desaconsejado. Dependiendo del trabajo que quieras hacer con los fractales, es posible que no necesites optimizar los algoritmos demasiado y la facilidad de python haga superar el escoyo de su falta de rendimiento. > Pero como la duda existe, quisiera que la gente con más experiencia de > la lista me dijera si acierto o no al aconsejarle que use Python. > También quisiera pedir ayuda para centrarme un poco en el tema, es > decir, qué librería tendríamos que usar o cuál sería la mejor manera de > enfocar el tema. > Hay fractales que se pueden representar con un excel (los que usaba Mandelbrot para hacer analisis financiero). Otros pueden tener más de 3 dimensiones y no se como se podrían llegar a representar. > Finalmente y a bote pronto, ¿puede ser conveniente el uso de una > librería como pyGame para trabajos como este? > Para la Alfombra de Sierpinski es cojonudo, pero lo veo un poco limitadillo para la esponja de Menger http://matap.dmae.upm.es/cursofractales/capitulo1/5.html > De antemano, muchas gracias a todos, Siento no poder haber sido de mucha ayuda. Pero el tema de los fractales es tan amplio que uno no sabe que recomendar :-/ > Alatar > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From faltet en carabos.com Mon Feb 26 16:50:07 2007 From: faltet en carabos.com (Francesc Altet) Date: Mon, 26 Feb 2007 16:50:07 +0100 Subject: Fractales In-Reply-To: <45E2F8FE.8030409@telefonica.net> References: <45E2F8FE.8030409@telefonica.net> Message-ID: <1172505007.2810.19.camel@localhost.localdomain> El dl 26 de 02 del 2007 a les 16:13 +0100, en/na Alatar va escriure: > Saludos. > > Mi mujer tiene que presentar un proyecto de final de carrera en el que, > en una sus partes, tiene que tratar con fractales. Yo, en un intento de > ayudarla, estoy investigando un poco el tema y viendo lo que hay hecho > en Python (cosas como Pyx, Chaos, etc...). > > El caso es que alguien le ha desaconsejado el uso de Python para esta > tarea. No obstante, como ella no tiene un nivel de programación > demasiado alto, yo le he aconsejado su uso por la claridad, facilidad y > potencia del lenguaje (aunque yo también soy bastante novato en el mundo > de Python). > > Pero como la duda existe, quisiera que la gente con más experiencia de > la lista me dijera si acierto o no al aconsejarle que use Python. > También quisiera pedir ayuda para centrarme un poco en el tema, es > decir, qué librería tendríamos que usar o cuál sería la mejor manera de > enfocar el tema. Hombre, para empezar, existe un mito difícil de romper sobre la cuestión de que Python, al ser un lenguaje interpretado, es lento, especialmente para hacer cálculos. Esto, siendo cierto, da lugar a engaños. Aquí vienen unas dosis de 'demitificación': En primer lugar, para hacer cálculos matemáticos, siempre es conveniente hacer uso de paquetes que te permiten hacer cálculos sobre listas multidimensionales de números de manera muy eficiente (justamente lo que le hará falta a tu mujer). NumPy es el paquete que deberias usar para hacer esto. Con él, consiguirás hacer cálculos sobre listas de números a velocidades cercanas a C (y a veces superiores ya que muchas funciones ya vienen optimizadas). En segundo lugar, y si la aproximación de arriba no fuera suficiente (aunque lo es en la gran mayoría de los casos), siempre tienes la posibilidad de usar extensiones en C para invocarlas desde Python. Aqui es donde la gente te hace la consideración astuta, a saber: "pues si vas a extender en C, empieza directamente a programar en C y te olvidas de Python". Aunque esto también es cierto, resulta otra vez equívoco para el ojo inexperto: la mayoria de los cuellos de botella suelen ser unas pocas lineas de código, que son las que se deben optimizar con extensiones. Para el resto, continua usando Python de manera que podrás acceder a paquetes que te ofrecen unas facilidades enormes (el recientemente mencionado NumPy, SciPy para librerias científicas, matplotlib para gráficos, etc.). Esta aproximación es la que hace que se conozca a Python como lenguaje 'pegamento' y es una de las características de Python más valoradas por la comunidad 'calculista'. > > Finalmente y a bote pronto, ¿puede ser conveniente el uso de una > librería como pyGame para trabajos como este? Nunca la he usado, pero ciertamente puede ser válida. Sin embargo, para representar fractales seguramente te será más fácil usar matplotlib, que te permite hacer toda clase de gráficos con una alta calidad. Saludos, -- Francesc Altet | Be careful about using the following code -- Carabos Coop. V. | I've only proven that it works, www.carabos.com | I haven't tested it. -- Donald Knuth ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From gcarrera en cnb.uam.es Mon Feb 26 17:42:40 2007 From: gcarrera en cnb.uam.es (=?ISO-8859-1?Q?Germ=E1n_Carrera?=) Date: Mon, 26 Feb 2007 17:42:40 +0100 Subject: Persistencia para una variable In-Reply-To: <45E2EF1E.4010101@cnb.uam.es> References: <45E2D50C.4010600@cnb.uam.es> <45E2DE1F.5030302@ch3m4.org> <45E2EF1E.4010101@cnb.uam.es> Message-ID: <45E30E00.3090600@cnb.uam.es> Hola, Parece que ya lo he solucionado, usando global var No es una solución elegante pero de momento me sirve. El problema principal es que yo sólo estoy manejando un módulo de la aplicación y el resto pertenece a otras personas. Saludos. Germán Carrera wrote: > Hola , > Perdón, sí se trata de una lista y no necesito persistencia más allá > de la vida de la aplicación. > La función dentro de la clase es llamada desde fuera para realizar un > número de iteraciones determinado, en cada iteración generaba un > tarball con unas imágenes, ahora quiero que sólo sea generado durante > la primera iteración (por eso if job_data['iter']==1) y aun así > guardar el estado de plan y poder usarla en el resto de las iteraciones. > > Mi solución estaba en en el método > > __init__ añadir > self.plan=[] > > Y substituir en el caso del código de abajo. > pero en este caso la lista self.plan pierde su valor en cada una de > las iteraciones. > > def plan_MLalign2D(self, job_data, chunkNum): > .... > .... > .... > if job_data['iter']==1 > for i in range(1,job_data['Nsplit']+1): > subset_sel_file = > "%(MLroot)s_subset_"%job_data+str(i)+".sel" > tarimg = > os.path.join(job_data['img_tar_dir'],subset_sel_file+".tgz") > if not os.path.isfile(tarimg): > tar_images(subset_sel_file, img_topdir, tarimg ) > task = [ > FILE.read(subset_sel_file),Base64BinaryFile.read(tarimg),i ] > self.plan.append(task) > ... > ... > > Gracias, Germán > > Chema Cortes wrote: >> Germán Carrera escribió: >>> Necesito gruardar el estado de una variable, en este caso una tupla >>> a través de varias iteraciones. >>> >>> El código este >>> if job_data['iter']==1 >>> for i in range(1,job_data['Nsplit']+1): >>> subset_sel_file = >>> "%(MLroot)s_subset_"%job_data+str(i)+".sel" >>> tarimg = >>> os.path.join(job_data['img_tar_dir'],subset_sel_file+".tgz") >>> if not os.path.isfile(tarimg): >>> tar_images(subset_sel_file, img_topdir, tarimg ) >>> task = [ >>> FILE.read(subset_sel_file),Base64BinaryFile.read(tarimg),i ] >>> plan.append(task) >>> >>> Y la variable que quiero guardar es plan, lo he instantado hacer >>> creando una var externa self.plan pero no ha habido manera. La >>> cuestión quizá consistiría en hacer una copia por valor de la misma. >> >> No me queda nada claro lo que pides. 'plan' más que tupla parece ser >> una lista, pero no veo dónde la declaras ni cómo. Haría falta que >> especificaras si la persistencia la quieres durante la misma >> ejecución del programa, con lo que estaríamos en un problema de >> alcances ("scope") y clausuras, o si la persistencia la necesitas más >> allá de la vida de la aplicación, con lo que sería un problema de >> recuperar estados. >> >> Tampoco entiendo a qué te refieres por "variable externa" con >> self.plan . ¿Acaso es parte de un método lo que estás creando? >> >> >> >> > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From yozara en terra.es Tue Feb 13 08:30:39 2007 From: yozara en terra.es (Zara) Date: Tue, 13 Feb 2007 08:30:39 +0100 Subject: problema al consultar clave reg_multi_sz en registro de windows References: Message-ID: <6up2t21ars5vaj70ldabqlig3fiqu86uu8@4ax.com> On Tue, 13 Feb 2007 00:27:28 +0100, "Josu Rodriguez" wrote: >Hola amigos, > >Estoy teniendo problemas al consultar en un windows 2000, una clave del >registro de windows. >el codigo es el siguiente: > >from _winreg import * >import sys >#get the current value of the PendingFileRenameOperations key > >def getCurrentValue(): > aReg = ConnectRegistry(None, HKEY_LOCAL_MACHINE) > aKey = OpenKey(aReg, "SYSTEM\CurrentControlSet\Control\Session Manager") > value=[] > value.append(QueryValueEx(aKey, "PendingFileRenameOperations")) > CloseKey(aKey) > > return value > >print getCurrentValue() >pero aunque la clave dada tiene varias rutas, solo me devuelve 1. >Alguien me podria ayudar a entender como poder realizar la consulta >correctamente. Me temo que es un problema de pywin32, y no hay un método directo de hacer la lectura correcta. Cuéntale el problema al desarrollador de pywin32, en : http://sourceforge.net/projects/pywin32/ Tal vez te dé una solución, o tal vez corrija el problema directamente Salu2 Zara From gagsl-py2 en yahoo.com.ar Sun Feb 25 06:35:00 2007 From: gagsl-py2 en yahoo.com.ar (Gabriel Genellina) Date: Sun, 25 Feb 2007 02:35:00 -0300 Subject: Problema python-sockets aplicacion tipo chat References: Message-ID: En Fri, 23 Feb 2007 06:43:18 -0300, Jordi Rodriguez escribió: > Gracias Gabriel, luego lo probare. > > El tema de no utilizar clases es pq este ejercicio me lo ha pedido un > amigo > que no sabe mucho de programacion, para entregarlo en el instituto, y > alli > no han tocado clases ya que es un modulo en el que solo tocan > programacion > por encima, asi que quedaria muy canton que lo hiciera con clases. Si > pudiera utilizar clases todo seria mas facil para mi.... Entonces meeeeenos vas a poder usar multiples threads. Para un ejercicio, supongo que si se alternan ambos lados en leer y escribir, tal vez sea suficiente... Sino podrias elegir alguna tecla especial para decir "Quiero escribir ahora!" y cuando se pulsa, hacer el raw_input() en ese momento. -- Gabriel Genellina ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From segundogamarra en hotmail.com Thu Feb 15 02:16:57 2007 From: segundogamarra en hotmail.com (gerardo segundo gamarra quispe) Date: Thu, 15 Feb 2007 01:16:57 +0000 Subject: glade para windows Message-ID: Hola amigo un favor, he estado buscando glade para windows, ayuda , nose los pasos. para ejecutarlos. desde ya gracias. _________________________________________________________________ Busca desde cualquier página Web con una protección excepcional. Consigue la Barra de herramientas de Windows Live hoy mismo y GRATUITAMENTE. http://www.toolbar.live.com From me_zara en dea.spamcon.org Thu Feb 15 17:22:54 2007 From: me_zara en dea.spamcon.org (Zara) Date: Thu, 15 Feb 2007 17:22:54 +0100 Subject: [Python 2.5] Otros cambios en el lenguaje References: <45D475AB.5010802@parcan.es> Message-ID: On Thu, 15 Feb 2007 15:00:59 +0000, Juan Ignacio Rodriguez de Leon wrote: >He puesto en mi blog un nuevo capítulo de la traducción que estoy >haciendo del *What's new in Python 2.5*. En este caso se hablará de los >cambios introducidos en el núcleo del lenguaje en sí. El próximo (Y aun >más extenso bloque) versará sobre otros cambios en la librería estandar. > >El enlace es: > > > >O en versión corta: > > > >He tardado bastante con este apartado, la razón, para el que le >interese, aquí: > > > >Como siempre, se agradece cualquier comentario, ayuda, sugerencia e >inclusive insultos y descalificaciones personales, ya sea en la pagina o >en esta lista. Primero: felicidades. Y suerte, que no salga muy llorón(a) por las noches, que el sueño es uno de los bienes más preciados. Sólo una notilla (de gusto personal, se puede ignorar sin causar ningún trauma): Yo prefiero lanzar(throw) excepciones que elevarlas (raise). Me parece más gráfico, uno lanza una excepción como quien lanza una pelota en el béisbol, para que el que pueda, que la cace (catch) Ya sé que raise es la palabra clave en pythin, y throw en muchos otros lenguajes (C++, Java...), pero por lo que ya he dichoe, me parece más gráfico lanzarla. saludos, Zara From cesar.ortiz en gmail.com Tue Feb 20 09:17:03 2007 From: cesar.ortiz en gmail.com (Cesar Ortiz) Date: Tue, 20 Feb 2007 09:17:03 +0100 Subject: reemplazar datos de una cadena en orden inverso In-Reply-To: <68d25cbc0702192232p6196da83pa7c5c9f1e1bc3504@mail.gmail.com> References: <45DA565E.1040600@jornada.com.mx> <20070220023413.GD5742@caribdis.nul-unu.com> <68d25cbc0702192232p6196da83pa7c5c9f1e1bc3504@mail.gmail.com> Message-ID: <90255a70702200017re635b9fv10e9a25e2ec1f153@mail.gmail.com> O utiliza un parser de html, como http://www.crummy.com/software/BeautifulSoup/. La ventaja de usar un parser html es que se puede tragar documentos no bien formados (ojo! no todos los parsers de html lo hacen). Si utilizas un parser que no se traga documentos bien formados, puedes usar tidy. Pero vamos.. que depende del problema que tengas. Para lo que comentas es un poco matar moscas a cañonazos. Creo que la solución de rfind es la mejor en cuanto a coste de computación y sencillez. También puedes usar en lugar de 'finds', expresiones regulares. Saludos On 2/20/07, Luis Miguel Morillas wrote: > > Utiliza un parser de XML (eso te exigirá que sea un documento bien > formado o procesarlo previamente para que lo sea) > > >>> > XML="

subtitulo1

parrafo

parrafo1

parrafo2

subtitulo2

parrafo3

subtitulo3

" > >>> import amara > >>> doc = amara.parse(XML) > >>> doc.body.h2[-1].nodeName = u'em' > >>> print doc.xml(indent=True) > > >

subtitulo1

>

parrafo

>

parrafo1

>

parrafo2

>

subtitulo2

>

parrafo3

> subtitulo3 > > > Más info sobre amara: http://notes.4suite.org/AmaraXmlToolkit y > también algo en español aquí: > http://livingpyxml.python-hosting.com/wiki > > > El 20/02/07, Gabriel Genellina escribió: > > En Mon, 19 Feb 2007 23:34:13 -0300, Luis Rodrigo Gallardo Cruz > > escribió: > > > > >> >

subtitulo1

parrafo

parrafo1

parrafo2

subtitulo2

parrafo3

subtitulo3

> > >> > > >> quiero reemplazar el ultimo tag

por > > >> > > >> alguién sabe como puedo hacer esto fácilmente, he pensado en: > > >> 1. invertir la cadena > > >> 2. string.replace('

','',1) > > >> 3. string.replace('

','',1) > > >> 4. invertir nuevamente > > > > > > Pues, si *siempre* es el último, debería servir. Excepto que, por > > > supuesto, lo que necesitas reemplazar es '>2h<' por '>me<', e igual > > > con los ''. > > > > Otra forma sería buscar con rfind la posicion del ultimo

, y hacer > los > > reemplazos a partir de alli. > > > > ulth2 = texto.rfind('

') > > if ulth2>=0: > > texto = texto[:ulth2] > > + texto[ulth2:].replace('

','',1).replace('

','',1) > > > > Igual hay que tener cuidado, puede fallar muy facilmente si aparece algo > > como

o < h2 > o

> > > > -- > > Gabriel Genellina > > > > > > _______________________________________________ > > Python-es mailing list > > Python-es en aditel.org > > http://listas.aditel.org/listinfo/python-es > > > > > > > -- > Saludos, > > -- > > Luis Miguel > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From sustrys en gmail.com Thu Feb 22 13:45:39 2007 From: sustrys en gmail.com (Zirconio) Date: Thu, 22 Feb 2007 13:45:39 +0100 Subject: Python G Message-ID: <45DD9073.8070104@gmail.com> Alguien sabe como se instala correctamente PythonG en Ubuntu_Linux? Gracias. Z. From alb_luque en yahoo.es Mon Feb 26 18:35:45 2007 From: alb_luque en yahoo.es (Alberto Luque) Date: Mon, 26 Feb 2007 17:35:45 +0000 (GMT) Subject: Chat en Python Message-ID: <20070226173545.64694.qmail@web28104.mail.ukl.yahoo.com> Hola! ¿ Con Python es posible crear un chat de pc a pc, donde cada usuario pueda tanto recivir como enviar texto ? ¿Conoceis algún tutorial sobre como hacer eso? Gracias. ______________________________________________ LLama Gratis a cualquier PC del Mundo. Llamadas a fijos y móviles desde 1 céntimo por minuto. http://es.voice.yahoo.com From jordirr en gmail.com Mon Feb 26 19:16:16 2007 From: jordirr en gmail.com (Jordi Rodriguez) Date: Mon, 26 Feb 2007 19:16:16 +0100 Subject: Problema python-sockets aplicacion tipo chat In-Reply-To: References: Message-ID: Buena idea Gabriel, no se me habia ocurrido, hare pruebas a ver :) On 2/25/07, Gabriel Genellina wrote: > > En Fri, 23 Feb 2007 06:43:18 -0300, Jordi Rodriguez > escribió: > > > Gracias Gabriel, luego lo probare. > > > > El tema de no utilizar clases es pq este ejercicio me lo ha pedido un > > amigo > > que no sabe mucho de programacion, para entregarlo en el instituto, y > > alli > > no han tocado clases ya que es un modulo en el que solo tocan > > programacion > > por encima, asi que quedaria muy canton que lo hiciera con clases. Si > > pudiera utilizar clases todo seria mas facil para mi.... > > Entonces meeeeenos vas a poder usar multiples threads. Para un ejercicio, > supongo que si se alternan ambos lados en leer y escribir, tal vez sea > suficiente... > Sino podrias elegir alguna tecla especial para decir "Quiero escribir > ahora!" y cuando se pulsa, hacer el raw_input() en ese momento. > > -- > Gabriel Genellina > > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > > From rafaelrp en uci.cu Mon Feb 26 19:25:15 2007 From: rafaelrp en uci.cu (Rafael =?ISO-8859-1?Q?Rodr=EDguez?= Puente) Date: Mon, 26 Feb 2007 13:25:15 -0500 Subject: Image como arreglo de bits Message-ID: <1172514315.11977.15.camel@localhost> Hola: Tengo el siguiente fragmento de código from Image import * def metodo(): img = Image() img = open("1.JPG") lo que quiero es que lo que el metodo devuelva sea la entrada de un objeto img en html, especificamente del atributo src. algo como esto: Pienso, aunque noe stoy seguro, que si se devolviera un arreglo de bits no debería haber problemas. Gracias. PD: Si alguien tiene idea de como hacerlo, aunque sea de otra forma, se aceptan sugerencias. "El software, al igual que el sexo, es mejor cuando es libre" From rafaelcantos en hotmail.com Mon Feb 26 20:39:19 2007 From: rafaelcantos en hotmail.com (Rafael Cantos) Date: Mon, 26 Feb 2007 19:39:19 +0000 Subject: atk y xml Message-ID: Hola. Necesito programar un interfaz gráfico con pygtk. he visto que úna de las bibliotecas de gtk+, atk, sirve para programar interfaces gráficos accesibles por personas con discapacidad. ¿Dónde puedo ver algun tutorial o algo similar? ¿Cómo se utiliza esta biblioteca con pygtk? también necesito saber que librerías hay para leer ficheros xml y dónde puedo encontrar información sobre ellas. Muchas gracias a todos. Rafa _________________________________________________________________ Moda para esta temporada. Ponte al día de todas las tendencias. http://www.msn.es/Mujer/moda/default.asp From josefgon en gmail.com Mon Feb 26 20:51:56 2007 From: josefgon en gmail.com (Jose Francisco Gonzalez) Date: Mon, 26 Feb 2007 20:51:56 +0100 Subject: gtk.RESPONSE_OK no me funciona In-Reply-To: <24be9e680702260422g46f68612mf0b0f60bde13565c@mail.gmail.com> References: <24be9e680702260422g46f68612mf0b0f60bde13565c@mail.gmail.com> Message-ID: <24be9e680702261151w53467f87jb3aa2f9e65fd79ea@mail.gmail.com> Perdon si llega duplicado este mensaje pero es que lo he mandado esta mañana y no lo veo en la lista por eso lo mando otra vez. Ante todo un saludo ya que soy nuevo tanto en esta lista como en Python. Para aprender he empezado un proyecto pero a la primera ya me estoy volviendo un poco loco. Me explico, tengo una ventana principal y con la opcion de abrir quiero que me salga el dialogo de abrir archivo para seleccionar uno. En el codigo del formulario principal he puesto este trozo de codigo para presentar y gestionar el dialogo: def on_open(self, widget): try: sf = SelectFile() a = sf.run() if a == gtk.RESPONSE_OK: print 'ok' else: print "cancel" finally: sf.destroy() Y el codigo del formulario de abrir archivo es este otro: class SelectFile: def __init__(self): self.glade = gtk.glade.XML("prueba.glade") self.dlg = self.glade.get_widget("selectfile") self.glade.signal_autoconnect(self) def destroy(self): self.dlg.destroy() def run(self): return self.dlg.run() def on_btn_ok_clicked(self, widget): self.dlg.response(gtk.RESPONSE_OK) def on_btn_cancel_clicked(self, widget): self.dlg.response(gtk.RESPONSE_CANCEL) Pues la variable "a" del formulario principal si pulso "Cancelar" si que vale -6 que es el valor de RESPONSE_CANCEL pero si pulso aceptar la variable siempre tiene el valor de 0. He probado a mirar en el codigo del formulario de abrir archivo a ver cuanto vale el valor que devuelve self.dlg.run() y pasa lo mismo asi que ya no se por donde tirar. El dialogo de abrir archivo lo he creado con glade-3 por lo que al no ponerme botones de aceptar y cancelar los he puesto yo y los he tenido que controlar en el codigo, no se si sera lo mejor. He probado a hacerlo por codigo con dialog = gtk.FileChooserDialog(...) y asi si que devuelve bien los valores pero prefiero hacerlo de la otra forma para tener todos los formularios juntos. Una ultima cosa, es mejor tener un solo archivo .glade para todo el proyecto donde esten todos los formularios o un archivo .glade por cada modulo de codigo con el formulario correspondiente? PD. ¿Esta lista no tiene buscador? lo digo para no hacer preguntas que ya existan. -- Saludos José Francisco González From py en ch3m4.org Mon Feb 26 17:53:44 2007 From: py en ch3m4.org (Chema Cortes) Date: Mon, 26 Feb 2007 17:53:44 +0100 Subject: Persistencia para una variable In-Reply-To: <45E2EF1E.4010101@cnb.uam.es> References: <45E2D50C.4010600@cnb.uam.es> <45E2DE1F.5030302@ch3m4.org> <45E2EF1E.4010101@cnb.uam.es> Message-ID: <45E31098.2090704@ch3m4.org> Germán Carrera escribió: > __init__ añadir > self.plan=[] > > Y substituir en el caso del código de abajo. > pero en este caso la lista self.plan pierde su valor en cada una de las > iteraciones. Aunque un poco más claro, no entiendo bien qué abarcan cada una de esas iteracciones. El atributo plan no debería perder su valor a no ser que lo que realmente estés haciendo es crear nuevas instancias en lugar de reutilizar la misma. Dime si me equivoco, pero creo que lo que quieres es que varias instancias compartan el valor de un mismo atributo. Si fuera así, lo que estás necesitando es un "atributo de clase". En lugar de iniciar 'plan' en el método __init__, ponlo fuera de los métodos: class MyIter: plan=[] def __init__(self): .... def myiter(self): MyIter.plan.append(task) (También se podrías acceder como "self.plan", pero conviene ser explícito y hacer ver que es un atributo de la clase) -- Chema Cortés (py en ch3m4.org) "Proudly made on earth by generic humanoid carbon units" From morillas en gmail.com Mon Feb 26 23:00:24 2007 From: morillas en gmail.com (Luis Miguel Morillas) Date: Mon, 26 Feb 2007 23:00:24 +0100 Subject: atk y xml In-Reply-To: References: Message-ID: <68d25cbc0702261400t2e2ff8e5m4e3c132ae6976afa@mail.gmail.com> El 26/02/07, Rafael Cantos escribió: > Hola. Necesito programar un interfaz gráfico con pygtk. he visto que úna de > las bibliotecas de gtk+, atk, sirve para programar interfaces gráficos > accesibles por personas con discapacidad. ¿Dónde puedo ver algun tutorial o > algo similar? ¿Cómo se utiliza esta biblioteca con pygtk? > también necesito saber que librerías hay para leer ficheros xml y dónde > puedo encontrar información sobre ellas. Aquí tienes los recursos disponibles [1] Depende del nivel de proceso que necesites (validación, transformación, ...) habrá algunos recursos más apropiados. Yo uso Amara [2]. Por aquí tengo más documentación [3] y aquí he colgado un manual [4] [1] http://wiki.python.org/moin/PythonXml [2] http://notes.4suite.org/AmaraXmlToolkit [3] http://livingpyxml.python-hosting.com/ [4] http://platea.pntic.mec.es/~jmorilla/amara/manual/ > Muchas gracias a todos. > > Rafa > > _________________________________________________________________ > Moda para esta temporada. Ponte al día de todas las tendencias. > http://www.msn.es/Mujer/moda/default.asp > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > -- Saludos, -- Luis Miguel From py en ch3m4.org Mon Feb 26 19:35:00 2007 From: py en ch3m4.org (Chema Cortes) Date: Mon, 26 Feb 2007 19:35:00 +0100 Subject: Fractales In-Reply-To: <45E2F8FE.8030409@telefonica.net> References: <45E2F8FE.8030409@telefonica.net> Message-ID: <45E32854.1040701@ch3m4.org> Alatar escribió: > Saludos. > > Mi mujer tiene que presentar un proyecto de final de carrera en el que, > en una sus partes, tiene que tratar con fractales. Yo, en un intento de > ayudarla, estoy investigando un poco el tema y viendo lo que hay hecho > en Python (cosas como Pyx, Chaos, etc...). > > El caso es que alguien le ha desaconsejado el uso de Python para esta > tarea. No obstante, como ella no tiene un nivel de programación > demasiado alto, yo le he aconsejado su uso por la claridad, facilidad y > potencia del lenguaje (aunque yo también soy bastante novato en el mundo > de Python). > > Pero como la duda existe, quisiera que la gente con más experiencia de > la lista me dijera si acierto o no al aconsejarle que use Python. > También quisiera pedir ayuda para centrarme un poco en el tema, es > decir, qué librería tendríamos que usar o cuál sería la mejor manera de > enfocar el tema. PyX está bien para hacer gráficos EPS (postscript), o sea, de tipo vectorial. No lo veo apropiado para generar gráficos "bitmap". Chaos es lo mejor que puedes encontrar. Con él se puede, incluso, crear animaciones. La documentación te servirá como guía para iniciar el proyecto. En la librería estándar de python está el módulo "turtle" con el que se pueden hacer algunas de estas cosas; pero te aconsejo que te mire el Pythoncard. Incluye un módulo turtle más desarrollado, así como numerosos ejemplos: http://pythoncard.sf.net > Finalmente y a bote pronto, ¿puede ser conveniente el uso de una > librería como pyGame para trabajos como este? Pygame es un interface gráfico para SDL. Creo que te iría mejor OpenGL (pyopengl), pero no podría darte ninguna razón convincente que la de que maneja mejor la potencia de la tarjeta gráfica, algo que no siempre se aprovecha trabajando con fractales. -- Chema Cortés (py en ch3m4.org) "Proudly made on earth by generic humanoid carbon units" From py en ch3m4.org Tue Feb 27 00:55:41 2007 From: py en ch3m4.org (Chema Cortes) Date: Tue, 27 Feb 2007 00:55:41 +0100 Subject: Image como arreglo de bits In-Reply-To: <1172514315.11977.15.camel@localhost> References: <1172514315.11977.15.camel@localhost> Message-ID: <200702270055.42732.py@ch3m4.org> El Lunes, 26 de Febrero de 2007 19:25, Rafael Rodríguez Puente escribió: > Hola: > Tengo el siguiente fragmento de código > > > from Image import * > def metodo(): > img = Image() > img = open("1.JPG") Vale, pero ¿qué es? ¿quizás tiene algo que ver con servidores web, CGI, cherrypy, mod_python,...? > lo que quiero es que lo que el metodo devuelva sea la entrada de un > objeto img en html, especificamente del atributo src. > algo como esto: > > > Pienso, aunque noe stoy seguro, que si se devolviera un arreglo de bits > no debería haber problemas. Mírate primero cómo funciona el protocolo HTTP. Cuando un navegador renderizar un fichero html, va conectanado una vez tras otra para traer cada imagen u objeto que necesite hasta tener toda la página completa. Ésto quiere decir que el método que enviará la imagen tiene que seguir el protocolo HTTP, empezando por las cabeceras, a las que seguirá los datos codificados según los formatos que acepte el cliente. Sin más información, sólo puedo decirte cómo se haría con cherrypy: def im2png(im): from cStringIO import StringIO s=StringIO() im.save(s,'png') return s.getvalue() @cherrypy.expose def miPNG(nombre): #...se crea la imagen PIL en 'im' cherrypy.response.headerMap["Content-Type"] = "image/png" return im2png(im) En la plantilla kid: From polivare en lilyphilia.net Tue Feb 27 03:10:55 2007 From: polivare en lilyphilia.net (Patricio Olivares) Date: Mon, 26 Feb 2007 23:10:55 -0300 Subject: Python G In-Reply-To: <45DD9073.8070104@gmail.com> References: <45DD9073.8070104@gmail.com> Message-ID: <45E3932F.3020407@lilyphilia.net> Zirconio wrote: > Alguien sabe como se instala correctamente PythonG en Ubuntu_Linux? > Gracias. > Z. Si te refieres al software que hay aqui: http://www3.uji.es/~dllorens/PythonG/ acabo de probarlo en ubuntu dapper siguiendo las instrucciones que hay en esa página, o sea, bajo y descomprimo el archivo .tgz, bajo y descomprimo el parche para debian, piso pythong.py y listo. -------------- wget http://www3.uji.es/~dllorens/downloads/pythong/linux/pythong.tgz tar xfz pythong.tgz cd pythonG-2_1_5/ wget http://www3.uji.es/~dllorens/downloads/pythong-debian.tgz tar xfz pythong-debian.tgz mv pythong-debian.py pythong.py python pythong.py -------------- Eso levanta una bonita ventana con un intérprete python adentro. Ni idea lo que hace o no hace en todo caso :) Más info supongo que puedes conseguir del autor (su correo está en esa página también). From polivare en lilyphilia.net Tue Feb 27 02:51:04 2007 From: polivare en lilyphilia.net (Patricio Olivares) Date: Mon, 26 Feb 2007 22:51:04 -0300 Subject: Image como arreglo de bits In-Reply-To: <1172514315.11977.15.camel@localhost> References: <1172514315.11977.15.camel@localhost> Message-ID: <45E38E88.5050502@lilyphilia.net> Rafael Rodríguez Puente wrote: > Hola: > Tengo el siguiente fragmento de código > > > from Image import * > def metodo(): > img = Image() > img = open("1.JPG") > > lo que quiero es que lo que el metodo devuelva sea la entrada de un > objeto img en html, especificamente del atributo src. > algo como esto: > > > Pienso, aunque noe stoy seguro, que si se devolviera un arreglo de bits > no debería haber problemas. > > Gracias. > > PD: Si alguien tiene idea de como hacerlo, aunque sea de otra forma, se > aceptan sugerencias. Desde código html (el pones la dirección del cgi que hiciste. Un tutorial sobre cgi: http://webpython.codepoint.net/introduction aquí hay más: http://wiki.python.org/moin/CgiScripts Dependiendo de tiempo/interés, podrías aprender a usar algún framework para simplificar algunas tareas típicas de los desarrollos web. De los que he visto uno muy simple es webpy, pero también hay otros como django o turbogears por ejemplo. http://wiki.python.org/moin/WebFrameworks Una variante es que el método retorne el nombre de la imagen y no el contenido. Eso puede ser más eficiente con imágenes grandes porque la transmisión del contenido se le delega al servidor web y no a python, pero para eso ya no te serviría un html simple, sino que debería ser una plantilla que se interprete cuando un usuario acceda a la dirección de la página. Eso de todas formas requiere alguna configuración en el servidor. From polivare en lilyphilia.net Tue Feb 27 03:17:15 2007 From: polivare en lilyphilia.net (Patricio Olivares) Date: Mon, 26 Feb 2007 23:17:15 -0300 Subject: problema con llamada a software In-Reply-To: <45E2CE4B.50806@ehas.org> References: <000001c75800$9c4af1b0$640010ac@nombref31twj9b> <45E2CE4B.50806@ehas.org> Message-ID: <45E394AB.3040608@lilyphilia.net> Arnau Sanchez wrote: > En lo que respecta a GNU/Linux es interesante el trabajo del proyecto Portland, > que trata de integrar parte de la API de los diferentes escritorios libres > (Gnome, KDE, XFCE, ...). De él forman parte las xdg-utils, que incluye el > comando "xdg-open" para abrir ficheros según la configuración del escritorio. > > http://portland.freedesktop.org/wiki/ Hace poco se me ocurrió sugerir lo mismo en otro lado pero alguien salió con una solución mejor: usar el módulo mailcap de python (sólo unixes por supuesto): http://groups.google.com/group/comp.lang.python/msg/f71af66a654efc6d From pachi en rvburke.com Mon Feb 26 20:58:25 2007 From: pachi en rvburke.com (Rafael Villar Burke) Date: Mon, 26 Feb 2007 20:58:25 +0100 Subject: atk y xml In-Reply-To: References: Message-ID: <45E33BE1.3040402@rvburke.com> Rafael Cantos wrote: > Hola. Necesito programar un interfaz gráfico con pygtk. he visto que > úna de las bibliotecas de gtk+, atk, sirve para programar interfaces > gráficos accesibles por personas con discapacidad. ¿Dónde puedo ver > algun tutorial o algo similar? ¿Cómo se utiliza esta biblioteca con > pygtk? Atk es la capa de accesibilidad de gtk+. La información que puedas encontrar sobre atk en general te servirá también para programar con pygtk, ya que éste es un envoltorio para python de los métodos de la API de gtk+. En la referencia de pygtk tienes la documentación sobre las clases relacionadas con atk. http://pygtk.org/docs/pygtk/index.html El proyecto GNOME tiene un subproyecto centrado en la accesibilidad (http://developer.gnome.org/projects/gap/). Ahí también tienes documentación (en inglés) sobre el desarrollo de aplicaciones que sean accesibles. El proyecto KDE tiene un documento con una visión general bastante buena sobre ATK en su página: http://accessibility.kde.org/developer/atk.php Tal vez te pueda ayudar en el uso de ATK echar un vistazo a dogtail, un sistema de automatización de test para interfaces gráficas para gtk+ que usa la interfaz de accesibilidad (AT-SPI) para manipular la interfaz gráfica. http://people.redhat.com/zcerza/dogtail/ > también necesito saber que librerías hay para leer ficheros xml y > dónde puedo encontrar información sobre ellas. Ese es un problema diferente al del manejo de interfaces con pygtk. Por lo que he visto la gente de la lista usa element tree (en la bibilioteca estándar), amara o libxml, pero mejor mira los archivos de la lista... Saludos, Rafael Villar Burke www.rvburke.com From polivare en lilyphilia.net Tue Feb 27 03:58:56 2007 From: polivare en lilyphilia.net (Patricio Olivares) Date: Mon, 26 Feb 2007 23:58:56 -0300 Subject: Chat en Python In-Reply-To: <20070226173545.64694.qmail@web28104.mail.ukl.yahoo.com> References: <20070226173545.64694.qmail@web28104.mail.ukl.yahoo.com> Message-ID: <45E39E70.6010000@lilyphilia.net> Alberto Luque wrote: > Hola! > > ¿ Con Python es posible crear un chat de pc a pc, donde cada usuario pueda tanto recivir como enviar texto ? Definitivamente. > ¿Conoceis algún tutorial sobre como hacer eso? > En el sitio de ibm encontré uno en ingles (requiere registrarse), se ve bueno: http://www-128.ibm.com/developerworks/edu/l-dw-linux-pysocks-i.html En el libro Python 2.1 Bible venía un ejemplo de chat usando multicast y tkinter. El sitio ya no existe pero se ve por archive.org (lento): http://web.archive.org/web/20050410131637/www.pythonapocrypha.com/Chapter15/Chapter15.shtml por si se corta la url. No se si el ejemplo funcione tal cual (hace rato que pasamos de python 2.1) pero es la idea lo que vale :) Ahora si te gusta meterle capas de abstracción a tus programas, supongo que twisted te serviría. From a.porrua en gmail.com Tue Feb 27 12:28:40 2007 From: a.porrua en gmail.com (tny) Date: Tue, 27 Feb 2007 12:28:40 +0100 Subject: PIL, funciones entre dos =?iso-8859-1?q?im=E1genes=2E?= Message-ID: <1172575720.12860.8.camel@skynex.telecable.es> Estuve mirando un poco por encima el handbook de PIL y no me quedo claro si se puede hacer de forma rápida y sencilla una transformación de los pixeles de una imagen en función de los de otra. Se me ha ocurrido un posible algoritmo de compresión de video y necesito realizar bastantes pruebas, transformaciones de pixeles en relación con los colindantes en las 3 dimensiones del video (x,y,t) ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From kh_alatar en telefonica.net Tue Feb 27 10:54:13 2007 From: kh_alatar en telefonica.net (Alatar) Date: Tue, 27 Feb 2007 10:54:13 +0100 Subject: Fractales In-Reply-To: <49414f570702260830u1a38244drf79e96b8436717@mail.gmail.com> References: <45E2F8FE.8030409@telefonica.net> <49414f570702260830u1a38244drf79e96b8436717@mail.gmail.com> Message-ID: <45E3FFC5.8040603@telefonica.net> Saludos. Muchas gracias por las respuestas recibidas hasta ahora que, como es habitual, denotan el nivel de los que sois tan amables de guiar a los que empezamos en nuestros primeros pasos. Tras estudiar las respuestas y navegar un poco, hemos decidido intentar afrontar el proyecto en Python. La siguiente duda es escoger la librería adecuada. Voy a probar todas las que me habeis comentado, aunque especialmente me atraen matplotlib y pygame. Teniendo en cuenta que el proyecto (aunque está todavía muy verde) va a requerir no tan sólo la representación gráfica de fractales sinó el procesado posterior de la imagen obtenida, ¿me aconsejais alguna librería en especial? Aunque como os digo el proyecto está muy verde, para daros un poco más de información respecto al mismo, os diré que en líneas generales se trata de estudiar la viabilidad del procesado de fractales para el diseño de texturas a aplicar en el ámbito de la ingeniería del tejido de punto. Es decir, que se trataría de empezar generando un fractal y acabar teniendo un archivo de instrucciones que le tiene que decir a una máquina en concreto cómo generar el tejido final. Inicialmente puede parecer bastante fácil, pero he de deciros que cuanto más lo estudiamos más complicados parecen algunos aspectos como por ejemplo el de dar una cierta continuidad a la trama del dibujo generado fractalmente. Por otra parte hasta que no nos metamos en harina no sabremos si es realmente viable o no. En caso de que no lo sea, por lo menos habremos aprendido un montón que al fin y al cabo es de lo que se trata, ¿no? XD Repito, muchas gracias por las respuestas y cualquier otra sugerencia será muy bienvenida. Alatar From jaime.perea en gmail.com Tue Feb 27 13:57:38 2007 From: jaime.perea en gmail.com (Jaime Perea) Date: Tue, 27 Feb 2007 13:57:38 +0100 Subject: Fractales In-Reply-To: <45E32854.1040701@ch3m4.org> References: <45E2F8FE.8030409@telefonica.net> <45E32854.1040701@ch3m4.org> Message-ID: <45e42ac5.6178046c.6e9f.ffff96e6@mx.google.com> El Lunes, 26 de Febrero de 2007 19:35, Chema Cortes escribió: > Alatar escribió: > > Saludos. > > > > Mi mujer tiene que presentar un proyecto de final de carrera en el > > que, en una sus partes, tiene que tratar con fractales. Yo, en un > > intento de ayudarla, estoy investigando un poco el tema y viendo lo > > que hay hecho en Python (cosas como Pyx, Chaos, etc...).... gnofract4d??? http://gnofract4d.sourceforge.net/download.html -- Jaime D. Perea Duarte. Linux registered user #10472 Dep. Astrofisica Extragalactica. Instituto de Astrofisica de Andalucia (CSIC) Apdo. 3004, 18080 Granada, Spain. From arnau en ehas.org Tue Feb 27 14:22:58 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Tue, 27 Feb 2007 14:22:58 +0100 Subject: problema con llamada a software In-Reply-To: <45E394AB.3040608@lilyphilia.net> References: <000001c75800$9c4af1b0$640010ac@nombref31twj9b> <45E2CE4B.50806@ehas.org> <45E394AB.3040608@lilyphilia.net> Message-ID: <45E430B2.6000203@ehas.org> Patricio Olivares escribió: > Hace poco se me ocurrió sugerir lo mismo en otro lado pero alguien salió > con una solución mejor: usar el módulo mailcap de python (sólo unixes > por supuesto): > > http://groups.google.com/group/comp.lang.python/msg/f71af66a654efc6d Es una solución diferente. Lo bueno de mailcap es que está disponible como módulo python (también se puede usar en la línea de comando, con la aplicación "see", por ejemplo). Lo malo es que la configuración del entorno de escritorio (lo que mira xdg-utils) y la de mailcap no suele coincidir, así que, para no despistar al usuario, suele ser preferible la primera ("rule of least surprise") Ya que sale el tema, siempre he tenido una duda respecto al uso del módulo mailcap, ¿cómo obtienes el mime-type de un fichero del que sólo sabes el nombre? el mime-type es un parámetro obligatorio de la función findmatch. From gcarrera en cnb.uam.es Tue Feb 27 14:01:25 2007 From: gcarrera en cnb.uam.es (=?ISO-8859-1?Q?Germ=E1n_Carrera?=) Date: Tue, 27 Feb 2007 14:01:25 +0100 Subject: Persistencia para una variable In-Reply-To: <45E31098.2090704@ch3m4.org> References: <45E2D50C.4010600@cnb.uam.es> <45E2DE1F.5030302@ch3m4.org><45E2EF1E.4010101@cnb.uam.es> <45E31098.2090704@ch3m4.org> Message-ID: <45E42BA5.4030802@cnb.uam.es> Hola Chema, Gracias por la ayuda, el caso es un poco enrevesado y para buscar una solución, debido a que no puedo modificar el código que no forma parte de mi módulo hice una reproducción con un pequeño ejemplo de lo que pasaba . Esto es a grandes rasgos, en cada iteración se creaba una instancia nueva de "test" perdiéndose el valor de las propiedades de la clase generada anteriormente, añadiendo el global (en este caso que el objeto se instancia en cada iteración) se acaban más o menos los problemas. Si pudiera accader al resto, sólo haría falta quitar test_=test() de dentro del for y ponerlo encima. Saludos. #!/usr/bin/python carajo=[6,7] class test: def __init__(self): None def algofunc(self,iter): global carajo for n in range(90): if iter==5: carajo=[2,3,3,4,5,3,4,3] print carajo def main(): for n in range(20): test_=test() test_.algofunc(n) if __name__ == "__main__": main() Chema Cortes wrote: > Germán Carrera escribió: > >> __init__ añadir >> self.plan=[] >> >> Y substituir en el caso del código de abajo. >> pero en este caso la lista self.plan pierde su valor en cada una de >> las iteraciones. > > Aunque un poco más claro, no entiendo bien qué abarcan cada una de > esas iteracciones. El atributo plan no debería perder su valor a no > ser que lo que realmente estés haciendo es crear nuevas instancias en > lugar de reutilizar la misma. > > Dime si me equivoco, pero creo que lo que quieres es que varias > instancias compartan el valor de un mismo atributo. Si fuera así, lo > que estás necesitando es un "atributo de clase". En lugar de iniciar > 'plan' en el método __init__, ponlo fuera de los métodos: > > class MyIter: > plan=[] > > def __init__(self): > .... > > def myiter(self): > MyIter.plan.append(task) > > > (También se podrías acceder como "self.plan", pero conviene ser > explícito y hacer ver que es un atributo de la clase) > From pych3m4 en gmail.com Tue Feb 27 15:24:38 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Tue, 27 Feb 2007 15:24:38 +0100 Subject: =?ISO-8859-1?Q?Re:__PIL, _funciones_entre_dos_im=E1genes.?= In-Reply-To: <1172575720.12860.8.camel@skynex.telecable.es> References: <1172575720.12860.8.camel@skynex.telecable.es> Message-ID: <2c9fb0dd0702270624n275bb721o311154eb7b59674d@mail.gmail.com> El 27/02/07, tny escribió: > Estuve mirando un poco por encima el handbook de PIL y no me quedo claro > si se puede hacer de forma rápida y sencilla una transformación de los > pixeles de una imagen en función de los de otra. > > Se me ha ocurrido un posible algoritmo de compresión de video y necesito > realizar bastantes pruebas, transformaciones de pixeles en relación con > los colindantes en las 3 dimensiones del video (x,y,t) Lo más cómodo es que conviertas la image en un array y la proceses con numpy: im=Image.open("imagen.jpg") matrizRGB=numpy.fromstring(im.tostring(),'b') im_invertida=Image.fromstring('RGB',im.size,(-matrizRGB).tostring()) im_invertida.show() En el viejo Numeric encontrarás un tutorial (NumTut), aunque muy simplón. From python en ammsoft.com Tue Feb 27 16:46:04 2007 From: python en ammsoft.com (Amm-Python) Date: Tue, 27 Feb 2007 16:46:04 +0100 Subject: Listados con Reportlab mediante trml2pdf In-Reply-To: AAAAAIQQJZINhhBArhGVVySOJs+k2DQA Message-ID: <002301c75a86$6ad4ffd0$640010ac@nombref31twj9b> Después de revisarlo todo, veo que el problema no está en trml2pdf sino en el propio reportlab. Reportlab va demasiado lento para grandes listados. He modificado uno de los test de reportlab, para utilizar sólo el trozo que genera una tabla y los tiempos, para muchos registros, son demasiado altos. Para 500 registros 2.750s (rápido) Para 1000 registros 6.063s (bien) Para 2000 registros 13.797s (empieza a no gustarme) Para 3000 registros 23.641s (no me gusta) Para 4000 registros 35.813s (sigue sin gustarme) Para 5000 registros 50.469s (esto ...) (Nota: No hay cabeceras ni pies de página, ni contadores de las mismas, ni logotipos, etc.) Para mi es normal hacer un informe con 10000, 20000, 50000 registros. Sobretodo informes de resúmenes anuales; seguro que no sirven para nada, pero a los clientes les encantan. Por lo que concluyo que, o el esquema del ejemplo no es eficiente, o yo no se hacerlo mejor, o debo utilizar otra alternativa para generar el pdf. Mientras sigo exportando datos a formato xls y/o csv. Hasta me estoy planteando que el cliente instale LaTex y hacer el listado en dicho formato. Y antes de planteármelo seriamente, pregunto, ¿con qué generáis listados de grandes volúmenes de información?. Saludos. P.D. El ejemplo del test del Reportlabs modificado para evaluar el rendimiento es el siguiente: El original es el test_platypus_tables.py from reportlab.test import unittest from reportlab.test.utils import makeSuiteForClasses, outputfile, printLocation from reportlab.platypus import Spacer, SimpleDocTemplate, Table, TableStyle from reportlab.lib.units import inch, cm from reportlab.lib import colors def old_tables_test(): from reportlab.lib.units import inch, cm from reportlab.platypus.flowables import Image, PageBreak, Spacer, XBox from reportlab.platypus.paragraph import Paragraph from reportlab.platypus.xpreformatted import XPreformatted from reportlab.platypus.flowables import Preformatted from reportlab.platypus.doctemplate import SimpleDocTemplate from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.platypus.tables import LongTable styleSheet = getSampleStyleSheet() lst = [] lst.append(Paragraph("Tables", styleSheet['Heading1'])) lst.append(Paragraph("und jetzt noch eine Tabelle mit 5000 Zeilen:", styleSheet['BodyText'])) sty = [ ('GRID',(0,0),(-1,-1),1,colors.green), ('BOX',(0,0),(-1,-1),2,colors.red),] data = [[str(i), Paragraph("xx "* (i%10), styleSheet["BodyText"]), Paragraph("blah "*(i%40), styleSheet["BodyText"])] for i in xrange(5000)]# genera 5000 registros. t=LongTable(data, style=sty, colWidths = [50,100,200]) lst.append(t) SimpleDocTemplate(outputfile('tables.pdf'), showBoundary=1).build(lst) class TablesTestCase(unittest.TestCase): "Make documents with tables" def test1(self): "Make a document full of tables" old_tables_test() def makeSuite(): return makeSuiteForClasses(TablesTestCase) #noruntests if __name__ == "__main__": unittest.TextTestRunner().run(makeSuite()) printLocation() > -----Mensaje original----- > De: python-es-bounces en aditel.org [mailto:python-es-bounces en aditel.org] > En nombre de Mario Lacunza Enviado el: diumenge, 25 / febrer / 2007 > 00:38 > Para: La lista de python en castellano > Asunto: Re: [Python-es] Listados con Reportlab mediante trml2pdf > > > Hola, > > El vie, 23-02-2007 a las 16:35 +0100, Amm-Python escribió: > > Buenas a todo el mundo: > > > > Primero lo básico: > > Python 2.4.2 > > Wxpython 2.6.3 > > Reportlab 2.0 > > trml2pdf > > Windows XP > > te recomiendo tener actualizadas las versiones... > > > > En la aplicación que estoy desarrollando me decidí por hacer los > > listados de los informes mediante Reportlab usando plantillas RML, > > generando el listado en un PDF. > > > > El resultado "Genial". > > Hago la consulta SQL a la base de datos, proceso el > documento rml, lo > > paso por el trml2pdf y ya está; un lindo pdf que puedo imprimir, > > enviar por email, etc. > > > > PERO: > > Llegó la hora de la verdad, al ponerlo en explotación y hacer un > > listado con 6000 registros tarda una eternidad en generar > el pdf. Por > > las pruebas que he ido haciendo, es casi instantáneo con unos pocos > > cientos de registros, tarda varios segundos cuando llegamos > al millar, > > pero a partir de ahí se ralentiza (2000 reg. x minuto aprox., 3000 > > reg. x 4 minutos!!!!) > > > > esto me huele mal... > > > Pregunto: > > ¿Es normal que tarde tanto?. Lo que me llevaría a la > conclusión de que > > me he equivocado de herramienta y que no está pensada para grandes > > documentos. > > En primer lugar no es normal. > > Como sacas la conclusion tan a la ligera??? te presento varias > preguntas q DEBERIAS haber tomado en cuenta: > > * Has testeado la forma como retornas datos de la BD?? > * esta tiene campos ID e Indices?? > * como ejecutas el sql?? Select *... o Select campo1, campo2 ?? > * ya q no pones codigo debemos pensar q sabes python, sino te > podria decir q tal vez tu logica sea la q podria fallar... > > > ¿Puedo hacer algo para solucionarlo? > ve lo de arriba... y manda codigo. > > > ¿Qué otra forma de hacer "extensos" listados de informes utilizáis? > Pues yo uso RL sin problemas... > > -- > Mario Lacunza > > From kh_alatar en telefonica.net Tue Feb 27 17:19:35 2007 From: kh_alatar en telefonica.net (Alatar) Date: Tue, 27 Feb 2007 17:19:35 +0100 Subject: Fractales In-Reply-To: <45E32854.1040701@ch3m4.org> References: <45E2F8FE.8030409@telefonica.net> <45E32854.1040701@ch3m4.org> Message-ID: <45E45A17.4090100@telefonica.net> (Perdonadme si este mensaje aparece dos veces en la lista, pero es que lo he mandado esta mañana y a mí no me aparece. Os decía esta mañana......) Saludos. Muchas gracias por las respuestas recibidas hasta ahora que, como es habitual, denotan el nivel de los que sois tan amables de guiar a los que empezamos en nuestros primeros pasos. Tras estudiar las respuestas y navegar un poco, hemos decidido intentar afrontar el proyecto en Python. La siguiente duda es escoger la librería adecuada. Voy a probar todas las que me habeis comentado, aunque especialmente me atraen matplotlib y pygame. Teniendo en cuenta que el proyecto (aunque está todavía muy verde) va a requerir no tan sólo la representación gráfica de fractales sinó el procesado posterior de la imagen obtenida, ¿me aconsejais alguna librería en especial? Aunque como os digo el proyecto está muy verde, para daros un poco más de información respecto al mismo, os diré que en líneas generales se trata de estudiar la viabilidad del procesado de fractales para el diseño de texturas a aplicar en el ámbito de la ingeniería del tejido de punto. Es decir, que se trataría de empezar generando un fractal y acabar teniendo un archivo de instrucciones que le tiene que decir a una máquina en concreto cómo generar el tejido final. Inicialmente puede parecer bastante fácil, pero he de deciros que cuanto más lo estudiamos más complicados parecen algunos aspectos como por ejemplo el de dar una cierta continuidad a la trama del dibujo generado fractalmente. Por otra parte hasta que no nos metamos en harina no sabremos si es realmente viable o no. En caso de que no lo sea, por lo menos habremos aprendido un montón que al fin y al cabo es de lo que se trata, ¿no? XD Repito, muchas gracias por las respuestas y cualquier otra sugerencia será muy bienvenida. Alatar (Añado ahora por la tarde, tras ver la respuesta de Chema: Gracias a tí también Chema por tu aportación. Por la información que os doy ahora supongo que podrás deducir que no necesito demasiado hardware para generar los fractales. Te haré caso y echaré una vistazo a Chaos ;) ) From roylan04012 en pri.jovenclub.cu Tue Feb 27 19:40:13 2007 From: roylan04012 en pri.jovenclub.cu (Roylan Suarez Reyes) Date: Tue, 27 Feb 2007 13:40:13 -0500 (CST) Subject: enviar correo con python Message-ID: <54313.172.16.7.10.1172601613.squirrel@webmail.vn.pri.jovenclub.cu> hola colegas Estoy intentando desarrollar en mi aplicacion un modulo para enviar un correo, pero resulta que cuando el correo llega el destinatario llega sin asunto, sin fecha, y estas cabeceras son importantes, aqui como lo hice: from smtplib import SMTP import config def EnviarCorreo(): "Funcion que envia un correo electronico" servidor = SMTP(config.HOSTNAME) remitente= config.HOSTNAME destinatario= config.EMAIL_ADMIN mensaje = 'From: %s\nTo: %s\n\n' %(remitente, destinatario) mensaje += 'CheckTraz: Acceso a sitio prohibido...\n' mensaje += 'ha ocurrido un acceso a sitio prohibido, revise el siguiente enlace:\n' servidor.sendmail(remitente, destinatario, mensaje) EnviarCorreo() -- Roylan Suarez Reyes Admin Redes JCCE Vinales telef: 793210 roylan04012 en pri.jovenclub.cu From pachi en rvburke.com Tue Feb 27 19:42:49 2007 From: pachi en rvburke.com (Rafael Villar Burke) Date: Tue, 27 Feb 2007 19:42:49 +0100 Subject: problema con llamada a software In-Reply-To: <45E430B2.6000203@ehas.org> References: <000001c75800$9c4af1b0$640010ac@nombref31twj9b> <45E2CE4B.50806@ehas.org> <45E394AB.3040608@lilyphilia.net> <45E430B2.6000203@ehas.org> Message-ID: <45E47BA9.6040704@rvburke.com> Arnau Sanchez wrote: > Ya que sale el tema, siempre he tenido una duda respecto al uso del > módulo mailcap, ¿cómo obtienes el mime-type de un fichero del que sólo > sabes el nombre? el mime-type es un parámetro obligatorio de la > función findmatch. ¿Es posible que use file?. pachi en goober:~$ file -i gl.po gl.po: text/x-po; charset=utf-8 Saludos, Rafael Villar Burke From kh_alatar en telefonica.net Wed Feb 28 00:08:36 2007 From: kh_alatar en telefonica.net (Alatar) Date: Wed, 28 Feb 2007 00:08:36 +0100 Subject: enviar correo con python In-Reply-To: <54313.172.16.7.10.1172601613.squirrel@webmail.vn.pri.jovenclub.cu> References: <54313.172.16.7.10.1172601613.squirrel@webmail.vn.pri.jovenclub.cu> Message-ID: <45E4B9F4.9050700@telefonica.net> Hola Roylan. Recientemente he terminado yo un programa para poder mantener un newslist, te mando mi código que, de momento me funciona perfectamente. He de decirte que soy novato en Python, pero que voy pillando carrerilla XD (Digo esto porque si algún experto puede hacerme alguna sugerencia respecto al código, ésta será bienvenida) #_________________ def mandar_mail( pm_servidor_correo, pm_login_usuario, pm_login_password, pm_emisor_nombre, pm_emisor_correo, pm_receptor_nombre, pm_receptor_correo, pm_asunto, pm_archivo_texto, pm_archivo_html, pm_adjuntos = [], pm_acuse_recibo = False, pm_imagenes_embebidas = []): """ Rutina para mandar correo electrónico, permitiendo mandar el mensaje alternativamente en modo texto y html, así como con archivos adjuntos, imágenes embebidas y pudiendo solicitar confirmación de lectura. """ assert type(pm_adjuntos) == list assert type(pm_imagenes_embebidas) == list #Inicializamos el mensaje a mandar y vamos añadiendo partes msgRaiz = MIMEMultipart('related') msgRaiz['From'] = pm_emisor_nombre + ' <' + pm_emisor_correo +'>' msgRaiz['To'] = pm_receptor_correo msgRaiz['Subject'] = pm_asunto msgRaiz['Date'] = formatdate(localtime = True) msgRaiz.preamble = '' #De momento, no lo uso msgRaiz.epilogue = '' #De momento, no lo uso if pm_acuse_recibo: msgRaiz['Disposition-Notification-To'] = pm_emisor_correo #Se encapsulan las versiones de texto plano y html del cuerpo #del mensaje en una parte 'alternative' para que el cliente de #correo decida qué parte mostrar msgAlternativo = MIMEMultipart('alternative') msgRaiz.attach(msgAlternativo) #Abrimos mensaje de texto alternativo y lo añadimos msgTexto = MIMEText(pm_archivo_texto, 'plain', pm_encoding_cuerpo) msgAlternativo.attach(msgTexto) #Abrimos mensaje html alternativo y lo añadimos msgHtml = MIMEText(pm_archivo_html, 'html', pm_encoding_cuerpo) msgAlternativo.attach(msgHtml) #Añadimos las imágenes embebidas for imagen in pm_imagenes_embebidas: #Cargar imagen archivo_imagen = open(imagen, 'rb') msgImage = MIMEImage(archivo_imagen.read()) archivo_imagen.close() #Hemos de adjuntar la imagen en el content-id. #En el archivo html se debe hacer referencia al content-id #como fuente en el source de la imagen, por ejemplo: # msgImage.add_header('Content-ID', '<' + imagen + '>') msgRaiz.attach(msgImage) #Añadimos los ficheros adjuntos a mandar for file in pm_adjuntos: adjunto = MIMEBase('application', "octet-stream") adjunto.set_payload(open(file, "rb").read()) Encoders.encode_base64(adjunto) adjunto.add_header('Content-Disposition', 'attachment; filename = "%s"' % os.path.basename(file)) msgRaiz.attach(adjunto) #Conectamos con el servidor de correo y mandamos el mensaje servidor = smtplib.SMTP(pm_servidor_correo) #servidor.set_debuglevel(1) servidor.ehlo() servidor.login(pm_login_usuario, pm_login_password) try: servidor.sendmail(pm_emisor_correo, pm_receptor_correo, msgRaiz.as_string()) servidor.quit() resultado = k_ok except: resultado = k_error return resultado -------------------------------------------------------------------------- Espero que te sea de ayuda, Alatar ;) ------------------------------------------------------------------------------------- Roylan Suarez Reyes escribió: > hola colegas > > Estoy intentando desarrollar en mi aplicacion un modulo para enviar un > correo, pero resulta que cuando el correo llega el destinatario llega sin > asunto, sin fecha, y estas cabeceras son importantes, aqui como lo hice: > > from smtplib import SMTP > import config > > def EnviarCorreo(): > "Funcion que envia un correo electronico" > servidor = SMTP(config.HOSTNAME) > remitente= config.HOSTNAME > destinatario= config.EMAIL_ADMIN > mensaje = 'From: %s\nTo: %s\n\n' %(remitente, destinatario) > mensaje += 'CheckTraz: Acceso a sitio prohibido...\n' > mensaje += 'ha ocurrido un acceso a sitio prohibido, revise el siguiente > enlace:\n' > > servidor.sendmail(remitente, destinatario, mensaje) > > EnviarCorreo() > > From roylan04012 en pri.jovenclub.cu Tue Feb 27 14:38:33 2007 From: roylan04012 en pri.jovenclub.cu (Roylan Suarez Reyes) Date: Tue, 27 Feb 2007 08:38:33 -0500 (CST) Subject: modulo para generar html Message-ID: <1069.172.16.7.4.1172583513.squirrel@webmail.vn.pri.jovenclub.cu> Hola colegas, necesito generar algunos reportes en html a partir de un fichero txt. Existe algun modulo que facilite esta tarea. salu2 -- Roylan Suarez Reyes Admin Redes JCCE Vinales telef: 793210 roylan04012 en pri.jovenclub.cu From pych3m4 en gmail.com Tue Feb 27 20:29:11 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Tue, 27 Feb 2007 20:29:11 +0100 Subject: Persistencia para una variable In-Reply-To: <45E42BA5.4030802@cnb.uam.es> References: <45E2D50C.4010600@cnb.uam.es> <45E2DE1F.5030302@ch3m4.org> <45E2EF1E.4010101@cnb.uam.es> <45E31098.2090704@ch3m4.org> <45E42BA5.4030802@cnb.uam.es> Message-ID: <2c9fb0dd0702271129r454c24a7g25193e0ff43cf1fc@mail.gmail.com> El 27/02/07, Germán Carrera escribió: > Gracias por la ayuda, el caso es un poco enrevesado y para buscar una > solución, debido a que no puedo modificar el código que no forma parte > de mi módulo hice una reproducción con un pequeño ejemplo de lo que pasaba . > > Esto es a grandes rasgos, en cada iteración se creaba una instancia > nueva de "test" perdiéndose el valor de las propiedades de la clase > generada anteriormente, añadiendo el global (en este caso que el objeto > se instancia en cada iteración) se acaban más o menos los problemas. > > Si pudiera accader al resto, sólo haría falta quitar test_=test() de > dentro del for y ponerlo encima. Entiendo mejor el problema. Como te comentaba, la alternativa a usar variables globales sería usar atributos de clase: class test: carajo=[6,7] def __init__(self): None def algofunc(self,iter): for n in range(90): if iter==5: test.carajo=[2,3,3,4,5,3,4,3] print test.carajo La ventaja de hacerlo así es que haces que el atributo global se asocie a la clase, con lo que queda más claro si vas a hacer subclases. Por cierto, cuando no quieras poner nada en el cuerpo de una función usa el token 'pass': def __init__(self): pass From a.porrua en gmail.com Tue Feb 27 20:59:44 2007 From: a.porrua en gmail.com (tny) Date: Tue, 27 Feb 2007 20:59:44 +0100 Subject: =?ISO-8859-1?Q?Re:__PIL, _funciones_entre_dos_im=E1genes.?= In-Reply-To: <2c9fb0dd0702270624n275bb721o311154eb7b59674d@mail.gmail.com> References: <1172575720.12860.8.camel@skynex.telecable.es> <2c9fb0dd0702270624n275bb721o311154eb7b59674d@mail.gmail.com> Message-ID: <1172606384.10363.8.camel@skynex.telecable.es> Gracias, me puede servir. El mar, 27-02-2007 a las 15:24 +0100, Chema Cortes escribió: > El 27/02/07, tny escribió: > > Estuve mirando un poco por encima el handbook de PIL y no me quedo claro > > si se puede hacer de forma rápida y sencilla una transformación de los > > pixeles de una imagen en función de los de otra. > > > > Se me ha ocurrido un posible algoritmo de compresión de video y necesito > > realizar bastantes pruebas, transformaciones de pixeles en relación con > > los colindantes en las 3 dimensiones del video (x,y,t) > > Lo más cómodo es que conviertas la image en un array y la proceses con numpy: > > im=Image.open("imagen.jpg") > matrizRGB=numpy.fromstring(im.tostring(),'b') > im_invertida=Image.fromstring('RGB',im.size,(-matrizRGB).tostring()) > im_invertida.show() > > En el viejo Numeric encontrarás un tutorial (NumTut), aunque muy simplón. > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From fidita48 en hotmail.com Tue Feb 27 21:24:38 2007 From: fidita48 en hotmail.com (=?iso-8859-1?B?SWRvaWEgVmlsbGFjaeFuIFrhcmF0ZQ==?=) Date: Tue, 27 Feb 2007 21:24:38 +0100 Subject: Hola Message-ID: Hola: Si alguien me podia comentar un poquillo que estoy haciendo mal,hace unos dias deje un comentario de porque no me salia bien un programa,yo sigo los pasos de una direccion,que es esta: [1]http://64.233.183.104/search?q=cache:5gAIA8nOok0J:paginaspersonales .deusto.es/dipina/publications/PensandoEnPythonIII.pdf+http://paginasp ersonales.deusto.es/dipina/publications/PensandoEnPythonIII&hl=es&ct=c lnk&cd=1 El programa es este: <% if form.has_key('nombre'):# el objeto es descrito en la siguiente seccion saludo= '¡Hola,%s!' % form['nombre'].capitalize() else: saludo = 'Hola solop!' #end %>

<&=saludo %>

Aqui me deberia de salir Hola solop y me sale <&=saludo %> Puse unas comillas que me dijeron y me sigue saliendo mal. Estoy utilizando Apache 2.0.59,tengo Python 2.4 y mod_python instalados.He seguido las indicaciones de esta pagina,que es para una aplicacion web que va a acceder a una base de datos,que es lo que yo quiero. Si alguien me puede decir,gracias. _________________________________________________________________ Tu horóscopo diario, semanal y gratuito. [2]Cartas, tarot y predicciones en MSN Horóscopo References 1. http://64.233.183.104/search?q=cache:5gAIA8nOok0J:paginaspersonales 2. http://g.msn.com/8HMBESES/2728??PS=47575 From roylan04012 en pri.jovenclub.cu Tue Feb 27 21:44:33 2007 From: roylan04012 en pri.jovenclub.cu (Roylan Suarez Reyes) Date: Tue, 27 Feb 2007 15:44:33 -0500 (CST) Subject: enviar adjunto con python Message-ID: <62368.172.16.7.10.1172609073.squirrel@webmail.vn.pri.jovenclub.cu> Hola colegas... Ayudenme con este caso: import sys, smtplib, MimeWriter, base64, StringIO import config def EnviarCorreo(): "Funcion que envia un correo electronico" #Datos del Servidor servidor = smtplib.SMTP(config.HOSTNAME) remitente= config.HOSTNAME destinatario= config.EMAIL_ADMIN message = StringIO.StringIO() writer = MimeWriter.MimeWriter(message) writer.addheader('Subject', 'CheckTraz: Acceso a sitio restringido...') writer.startmultipartbody('mixed') # start off with a text/plain part part = writer.nextpart() body = part.startbody('text/plain') body.write('Reporte de CheckTraz') # now add an image part part = writer.nextpart() part.addheader('Content-Transfer-Encoding', 'base64') body = part.startbody('text/plain') base64.encode(open('violadores', 'rb'), body) # finish off writer.lastpart() # send the mail servidor.sendmail(remitente, destinatario, message.getvalue()) servidor.quit() Estoy tratando de enviar un correo con un adjunto, esta funcion me la hace bien, pero resulta que cuando reviso el correo con el webmail, el mismo no trae ni fecha ni remitente y estos datos me interesan... Gracias a los que me puedan ayudar salu2 -- Roylan Suarez Reyes Admin Redes JCCE Vinales telef: 793210 roylan04012 en pri.jovenclub.cu From kh_alatar en telefonica.net Tue Feb 27 22:36:08 2007 From: kh_alatar en telefonica.net (Alatar) Date: Tue, 27 Feb 2007 22:36:08 +0100 Subject: Fractales In-Reply-To: <45e42ac5.6178046c.6e9f.ffff96e6@mx.google.com> References: <45E2F8FE.8030409@telefonica.net> <45E32854.1040701@ch3m4.org> <45e42ac5.6178046c.6e9f.ffff96e6@mx.google.com> Message-ID: <45E4A448.8010303@telefonica.net> Gracias Jaime. Yo trabajo en Ubuntu pero mucho me temo que en la facultad de mi mujer sólo tienen windows en todos los ordenadores y, por lo que veo, no existe versión de gnofract4d para este SO. La facultad en cuestión es muy pequeña y, aunque hay profesores muy competentes, si le menciono la palabra Ubuntu al vecario encargado de la sala de ordenadores se pensará que le hablo de algún personaje de Les Luthiers XD De todas formas parece una librería muy interesante. Gracias de nuevo. P.D.: Sigo abierto a sugerencias, gracias ;) Jaime Perea escribió: > El Lunes, 26 de Febrero de 2007 19:35, Chema Cortes escribió: > >> Alatar escribió: >> >>> Saludos. >>> >>> Mi mujer tiene que presentar un proyecto de final de carrera en el >>> que, en una sus partes, tiene que tratar con fractales. Yo, en un >>> intento de ayudarla, estoy investigando un poco el tema y viendo lo >>> que hay hecho en Python (cosas como Pyx, Chaos, etc...).... >>> > > > gnofract4d??? > > http://gnofract4d.sourceforge.net/download.html > > From rmmontano en hotmail.com Tue Feb 27 22:42:34 2007 From: rmmontano en hotmail.com (=?iso-8859-1?B?UnVi6W4gTWVu6W5kZXogTW9udGHxbw==?=) Date: Tue, 27 Feb 2007 21:42:34 +0000 Subject: Procesos en python Message-ID: Buenas. Soy bastante nuevo en python, y en la lista asi que perdonad si me equivoco en algo o cometo algun error, aceptaré de buen grado todas las sugerencias :P El caso es que como digo soy novato en python, y tengo ciertos problemas con el manejo de procesos a traves del modulo os. La situacion es la siguiente : estoy tratando de diseñar un pequeño server de ficheros que corra tanto en Linux como en Windows, y que sea capaz de aceptar varias peticiones de envio de ficheros, de forma que cada vez que llega una conexion nueva, lanzo un nuevo proceso hijo que gestiona la peticion. El problema viene en este momento : he probado a lanzar el proceso hijo nuevo de distintas formas : 1) os.fork() : funciona perfecto para lo que yo quiero. El problema es que en la documentación de python indica que esta operacion no es posible bajo windows, con lo cual.....malamente. 2) Despues de 1, intenté usar la familia de llamadas os.spawn*, en concreto os.spawnl, pasandole como argumento la función que gestiona la peticion del fichero correspondiente. Para probar que se creara l proceso hijo y ver que el proceso padre pudiera seguir aceptando conexiones y creando procesos hijo, probé a poner un bucle infinito en la funcion dque llama el hijo, pero el proceso hijo se crea, y no devuelve el control, Pongo el codigo de esta segunda "no-solucion" que pensé para que quede más claro : ## acepta conexion y la gestiona threadGroups.append(os.spawnl(os.P_NOWAITO,self.procesaPeticion(client,n_conexion))) ..... ..... def procesaPeticion(self,client,n_conn): """ Gestiona la peticion del cliente que le llega como parametros """ client.send('hola cliente') while 1:pass ## print 'Thread ' + threadGroups[n_conn] + ': Esto es una prueba ' client_addr.close() El proceso hijo se queda en procesaPeticion, y nunca devuelve el control, ni cierra el descriptor con el cliente ni nada de nada. Mi pregunta es : ¿existe alguna manera de hacer lo que quiero manteniendo la portabilidad entre windows y linux ? ¿Hay alguna otra sentencia de gestion de procesos hijo que me permita hacerlo ? Gracias a todos de antemano y un saludo. _________________________________________________________________ Descarga gratis la Barra de Herramientas de MSN http://www.msn.es/usuario/busqueda/barra?XAPID=2031&DI=1055&SU=http%3A//www.hotmail.com&HL=LINKTAG1OPENINGTEXT_MSNBH From rafadose en gmail.com Tue Feb 27 22:46:20 2007 From: rafadose en gmail.com (Rafa Domenech) Date: Tue, 27 Feb 2007 22:46:20 +0100 Subject: =?iso-8859-1?q?Comunicaci=F3n_USB?= Message-ID: <97468b780702271346n55576e6fuaadb7a5a617e6024@mail.gmail.com> Buenas, Soy principiante en python y necesito crear una aplicación que se comunique via USB con un dispositivo. En un principio el programa es para uso bajo linux. A ver si alguno conoce alguna librería o me muestra algun ejemplo de código. Gracias y un saludo. From alberto en toscat.net Tue Feb 27 23:52:23 2007 From: alberto en toscat.net (Alberto Valverde) Date: Tue, 27 Feb 2007 23:52:23 +0100 Subject: problema con llamada a software In-Reply-To: <251dd14d0702231756k552189daq3b293ff617a09b5b@mail.gmail.com> References: <251dd14d0702231756k552189daq3b293ff617a09b5b@mail.gmail.com> Message-ID: On Feb 24, 2007, at 2:56 AM, Fabio Duran Verdugo wrote: > hola me llamo fabio y desarrollo bajo python y gtk incluyendo a kiwi > (gnome), y tengo un problema que no es un bug pero resulta molesto, > porque > resulta que estoy desarrollando un sistema que necesita y despende de > firefox (linux) y explorer (wintendo), y el problema es que si > ejecuto esta > instruccion : > > if sys.platform == "win32": > os.system("explorer reporte.html") > else: > os.system("firefox reporte.html") A lo mejor te resulta más sencillo usar el módulo webbrowser [1]de la librería estándar que hace exáctamente lo que (creo que) quieres, no bloquea el proceso que lo ejecuta y funciona bajo windows. import webbrower webbrowser.open("file://reporte.html") Espero te sirva de ayuda, Alberto [1] http://www.python.org/doc/current/lib/module-webbrowser.html From david.abreu en iac.es Wed Feb 28 01:30:46 2007 From: david.abreu en iac.es (David Abreu Rodriguez) Date: Wed, 28 Feb 2007 00:30:46 +0000 Subject: modulo para generar html In-Reply-To: <1069.172.16.7.4.1172583513.squirrel@webmail.vn.pri.jovenclub.cu> References: <1069.172.16.7.4.1172583513.squirrel@webmail.vn.pri.jovenclub.cu> Message-ID: <45E4CD36.1040109@iac.es> no es exáctamente lo que pides, pero mírate txt2tags, a mí me ha sido muy útil. Roylan Suarez Reyes wrote: >Hola colegas, necesito generar algunos reportes en html a partir de un >fichero txt. Existe algun modulo que facilite esta tarea. > >salu2 > > > > From omar_alberto_h en yahoo.es Wed Feb 28 01:33:18 2007 From: omar_alberto_h en yahoo.es (omar alberto) Date: Wed, 28 Feb 2007 00:33:18 +0000 (GMT) Subject: enviar correo con python Message-ID: <20070228003318.32345.qmail@web26205.mail.ukl.yahoo.com> Hola Alatar , yo tambien soy novato en esto de python y bueno si me regalaras un sencillo ejemplo de como llamar la funcion def mandar_mail con sus rerspectivos parametros te lo agradeceria ----- Mensaje original ---- De: Alatar Para: La lista de python en castellano Enviado: martes, 27 de febrero, 2007 18:08:36 Asunto: Re: [Python-es] enviar correo con python Hola Roylan. Recientemente he terminado yo un programa para poder mantener un newslist, te mando mi código que, de momento me funciona perfectamente. He de decirte que soy novato en Python, pero que voy pillando carrerilla XD (Digo esto porque si algún experto puede hacerme alguna sugerencia respecto al código, ésta será bienvenida) #_________________ def mandar_mail( pm_servidor_correo, pm_login_usuario, pm_login_password, pm_emisor_nombre, pm_emisor_correo, pm_receptor_nombre, pm_receptor_correo, pm_asunto, pm_archivo_texto, pm_archivo_html, pm_adjuntos = [], pm_acuse_recibo = False, pm_imagenes_embebidas = []): """ Rutina para mandar correo electrónico, permitiendo mandar el mensaje alternativamente en modo texto y html, así como con archivos adjuntos, imágenes embebidas y pudiendo solicitar confirmación de lectura. """ assert type(pm_adjuntos) == list assert type(pm_imagenes_embebidas) == list #Inicializamos el mensaje a mandar y vamos añadiendo partes msgRaiz = MIMEMultipart('related') msgRaiz['From'] = pm_emisor_nombre + ' <' + pm_emisor_correo +'>' msgRaiz['To'] = pm_receptor_correo msgRaiz['Subject'] = pm_asunto msgRaiz['Date'] = formatdate(localtime = True) msgRaiz.preamble = '' #De momento, no lo uso msgRaiz.epilogue = '' #De momento, no lo uso if pm_acuse_recibo: msgRaiz['Disposition-Notification-To'] = pm_emisor_correo #Se encapsulan las versiones de texto plano y html del cuerpo #del mensaje en una parte 'alternative' para que el cliente de #correo decida qué parte mostrar msgAlternativo = MIMEMultipart('alternative') msgRaiz.attach(msgAlternativo) #Abrimos mensaje de texto alternativo y lo añadimos msgTexto = MIMEText(pm_archivo_texto, 'plain', pm_encoding_cuerpo) msgAlternativo.attach(msgTexto) #Abrimos mensaje html alternativo y lo añadimos msgHtml = MIMEText(pm_archivo_html, 'html', pm_encoding_cuerpo) msgAlternativo.attach(msgHtml) #Añadimos las imágenes embebidas for imagen in pm_imagenes_embebidas: #Cargar imagen archivo_imagen = open(imagen, 'rb') msgImage = MIMEImage(archivo_imagen.read()) archivo_imagen.close() #Hemos de adjuntar la imagen en el content-id. #En el archivo html se debe hacer referencia al content-id #como fuente en el source de la imagen, por ejemplo: # msgImage.add_header('Content-ID', '<' + imagen + '>') msgRaiz.attach(msgImage) #Añadimos los ficheros adjuntos a mandar for file in pm_adjuntos: adjunto = MIMEBase('application', "octet-stream") adjunto.set_payload(open(file, "rb").read()) Encoders.encode_base64(adjunto) adjunto.add_header('Content-Disposition', 'attachment; filename = "%s"' % os.path.basename(file)) msgRaiz.attach(adjunto) #Conectamos con el servidor de correo y mandamos el mensaje servidor = smtplib.SMTP(pm_servidor_correo) #servidor.set_debuglevel(1) servidor.ehlo() servidor.login(pm_login_usuario, pm_login_password) try: servidor.sendmail(pm_emisor_correo, pm_receptor_correo, msgRaiz.as_string()) servidor.quit() resultado = k_ok except: resultado = k_error return resultado -------------------------------------------------------------------------- Espero que te sea de ayuda, Alatar ;) ------------------------------------------------------------------------------------- Roylan Suarez Reyes escribió: > hola colegas > > Estoy intentando desarrollar en mi aplicacion un modulo para enviar un > correo, pero resulta que cuando el correo llega el destinatario llega sin > asunto, sin fecha, y estas cabeceras son importantes, aqui como lo hice: > > from smtplib import SMTP > import config > > def EnviarCorreo(): > "Funcion que envia un correo electronico" > servidor = SMTP(config.HOSTNAME) > remitente= config.HOSTNAME > destinatario= config.EMAIL_ADMIN > mensaje = 'From: %s\nTo: %s\n\n' %(remitente, destinatario) > mensaje += 'CheckTraz: Acceso a sitio prohibido...\n' > mensaje += 'ha ocurrido un acceso a sitio prohibido, revise el siguiente > enlace:\n' > > servidor.sendmail(remitente, destinatario, mensaje) > > EnviarCorreo() > > _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es ______________________________________________ LLama Gratis a cualquier PC del Mundo. Llamadas a fijos y móviles desde 1 céntimo por minuto. http://es.voice.yahoo.com From dmunhiz en gmail.com Wed Feb 28 09:33:26 2007 From: dmunhiz en gmail.com (=?ISO-8859-1?Q?Daniel_Mu=F1iz_Fontoira?=) Date: Wed, 28 Feb 2007 09:33:26 +0100 Subject: Hola In-Reply-To: References: Message-ID: <45E53E56.9050307@gmail.com> Será porque en lugar de <&=saludo %> debería ser <%=saludo %> ?? Remitente: Daniel Muñiz Fontoira Eu uso software libre [1] [1]http://www.gnu.org/philosophy/free-sw.gl.html Idoia Villacián Zárate escribió: > > Hola: > > Si alguien me podia comentar un poquillo que estoy haciendo mal,hace > unos dias deje un comentario de porque no me salia bien un programa,yo > sigo los pasos de una direccion,que es esta: > > > [1]http://64.233.183.104/search?q=cache:5gAIA8nOok0J:paginaspersonales > > .deusto.es/dipina/publications/PensandoEnPythonIII.pdf+http://paginasp > > ersonales.deusto.es/dipina/publications/PensandoEnPythonIII&hl=es&ct=c > lnk&cd=1 > > El programa es este: > > <% > if form.has_key('nombre'):# el objeto es descrito en la siguiente > seccion > saludo= '¡Hola,%s!' % form['nombre'].capitalize() > else: > saludo = 'Hola solop!' > #end > %> >

<&=saludo %>

> > > Aqui me deberia de salir Hola solop y me sale <&=saludo %> > > Puse unas comillas que me dijeron y me sigue saliendo mal. > > Estoy utilizando Apache 2.0.59,tengo Python 2.4 y mod_python > instalados.He seguido las indicaciones de esta pagina,que es para > una > aplicacion web que va a acceder a una base de datos,que es lo que > yo > > quiero. > > Si alguien me puede decir,gracias. > _________________________________________________________________ > > Tu horóscopo diario, semanal y gratuito. [2]Cartas, tarot y > predicciones en MSN Horóscopo > > References > > 1. http://64.233.183.104/search?q=cache:5gAIA8nOok0J:paginaspersonales > 2. http://g.msn.com/8HMBESES/2728??PS=47575 > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From cgalisteo en k-rolus.net Wed Feb 28 12:08:00 2007 From: cgalisteo en k-rolus.net (Carlos Galisteo de Cabo) Date: Wed, 28 Feb 2007 12:08:00 +0100 Subject: =?iso-8859-1?b?Q29tdW5pY2FjafNu?= USB In-Reply-To: <97468b780702271346n55576e6fuaadb7a5a617e6024@mail.gmail.com> References: <97468b780702271346n55576e6fuaadb7a5a617e6024@mail.gmail.com> Message-ID: <20070228120800.suwmfrgr48800ow0@k-rolus.net> Quoting Rafa Domenech : > Soy principiante en python y necesito crear una aplicación que se comunique > via USB con un dispositivo. En un principio el programa es para uso bajo > linux. A ver si alguno conoce alguna librería o me muestra algun ejemplo de > código. No lo he usado nunca, pero creo que con pyserial[1] podrás usar un USB como cualquier otro puerto serie. [1]http://pyserial.sourceforge.net/ --- Carlos Galisteo http://blog.k-rolus.net PGP_key::http://k-rolus.net/~cgalisteo/cgalisteo.gpg Key_Fingerprint::F888 6FBA 9145 B5A2 C187 66D6 5B8C 027A 69AD BE65 --- From roylan04012 en pri.jovenclub.cu Wed Feb 28 14:20:38 2007 From: roylan04012 en pri.jovenclub.cu (Roylan Suarez Reyes) Date: Wed, 28 Feb 2007 08:20:38 -0500 (CST) Subject: enviar correo con python In-Reply-To: <20070228003318.32345.qmail@web26205.mail.ukl.yahoo.com> References: <20070228003318.32345.qmail@web26205.mail.ukl.yahoo.com> Message-ID: <49358.172.16.7.10.1172668838.squirrel@webmail.vn.pri.jovenclub.cu> > Hola Alatar , > > yo tambien soy novato en esto de python y bueno si me regalaras un > sencillo ejemplo de como llamar la funcion def mandar_mail con sus > rerspectivos parametros te lo agradeceria Me sumo ha esto tambien, ayer en poco tiempo trate de hacer correr la funcion pero me dio un error, no tuve mucho tiempo, hoy lo hare con mas calma.. salu2 roylan > ----- Mensaje original ---- > De: Alatar > Para: La lista de python en castellano > Enviado: martes, 27 de febrero, 2007 18:08:36 > Asunto: Re: [Python-es] enviar correo con python > > Hola Roylan. > > Recientemente he terminado yo un programa para poder mantener un > newslist, te mando mi código que, de momento me funciona perfectamente. > > He de decirte que soy novato en Python, pero que voy pillando carrerilla > XD > (Digo esto porque si algún experto puede hacerme alguna sugerencia > respecto al código, ésta será bienvenida) > > #_________________ > def mandar_mail( > pm_servidor_correo, > pm_login_usuario, > pm_login_password, > pm_emisor_nombre, > pm_emisor_correo, > pm_receptor_nombre, > pm_receptor_correo, > pm_asunto, > pm_archivo_texto, > pm_archivo_html, > pm_adjuntos = [], > pm_acuse_recibo = False, > pm_imagenes_embebidas = []): > """ > Rutina para mandar correo electrónico, permitiendo mandar el > mensaje alternativamente en modo texto y html, así como > con archivos adjuntos, imágenes embebidas y pudiendo solicitar > confirmación de lectura. > """ > assert type(pm_adjuntos) == list > assert type(pm_imagenes_embebidas) == list > > #Inicializamos el mensaje a mandar y vamos añadiendo partes > msgRaiz = MIMEMultipart('related') > > msgRaiz['From'] = pm_emisor_nombre + ' <' + pm_emisor_correo +'>' > msgRaiz['To'] = pm_receptor_correo > msgRaiz['Subject'] = pm_asunto > msgRaiz['Date'] = formatdate(localtime = True) > msgRaiz.preamble = '' #De momento, no lo uso > msgRaiz.epilogue = '' #De momento, no lo uso > > if pm_acuse_recibo: > msgRaiz['Disposition-Notification-To'] = pm_emisor_correo > > #Se encapsulan las versiones de texto plano y html del cuerpo > #del mensaje en una parte 'alternative' para que el cliente de > #correo decida qué parte mostrar > msgAlternativo = MIMEMultipart('alternative') > msgRaiz.attach(msgAlternativo) > > #Abrimos mensaje de texto alternativo y lo añadimos > msgTexto = MIMEText(pm_archivo_texto, 'plain', pm_encoding_cuerpo) > msgAlternativo.attach(msgTexto) > > #Abrimos mensaje html alternativo y lo añadimos > msgHtml = MIMEText(pm_archivo_html, 'html', pm_encoding_cuerpo) > msgAlternativo.attach(msgHtml) > > #Añadimos las imágenes embebidas > for imagen in pm_imagenes_embebidas: > #Cargar imagen > archivo_imagen = open(imagen, 'rb') > msgImage = MIMEImage(archivo_imagen.read()) > archivo_imagen.close() > #Hemos de adjuntar la imagen en el content-id. > #En el archivo html se debe hacer referencia al content-id > #como fuente en el source de la imagen, por ejemplo: > # > msgImage.add_header('Content-ID', '<' + imagen + '>') > msgRaiz.attach(msgImage) > > #Añadimos los ficheros adjuntos a mandar > for file in pm_adjuntos: > adjunto = MIMEBase('application', "octet-stream") > adjunto.set_payload(open(file, "rb").read()) > Encoders.encode_base64(adjunto) > adjunto.add_header('Content-Disposition', 'attachment; filename > = "%s"' % os.path.basename(file)) > msgRaiz.attach(adjunto) > > #Conectamos con el servidor de correo y mandamos el mensaje > servidor = smtplib.SMTP(pm_servidor_correo) > #servidor.set_debuglevel(1) > servidor.ehlo() > servidor.login(pm_login_usuario, pm_login_password) > try: > servidor.sendmail(pm_emisor_correo, pm_receptor_correo, > msgRaiz.as_string()) > servidor.quit() > resultado = k_ok > except: > resultado = k_error > > return resultado > > -------------------------------------------------------------------------- > > Espero que te sea de ayuda, > > Alatar ;) > > > ------------------------------------------------------------------------------------- > Roylan Suarez Reyes escribió: >> hola colegas >> >> Estoy intentando desarrollar en mi aplicacion un modulo para enviar un >> correo, pero resulta que cuando el correo llega el destinatario llega >> sin >> asunto, sin fecha, y estas cabeceras son importantes, aqui como lo hice: >> >> from smtplib import SMTP >> import config >> >> def EnviarCorreo(): >> "Funcion que envia un correo electronico" >> servidor = SMTP(config.HOSTNAME) >> remitente= config.HOSTNAME >> destinatario= config.EMAIL_ADMIN >> mensaje = 'From: %s\nTo: %s\n\n' %(remitente, destinatario) >> mensaje += 'CheckTraz: Acceso a sitio prohibido...\n' >> mensaje += 'ha ocurrido un acceso a sitio prohibido, revise el >> siguiente >> enlace:\n' >> >> servidor.sendmail(remitente, destinatario, mensaje) >> >> EnviarCorreo() >> >> > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > > > > > > > > > ______________________________________________ > LLama Gratis a cualquier PC del Mundo. > Llamadas a fijos y móviles desde 1 céntimo por minuto. > http://es.voice.yahoo.com > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > -- Roylan Suarez Reyes Admin Redes JCCE Vinales telef: 793210 roylan04012 en pri.jovenclub.cu From rolandojtorres en gmail.com Wed Feb 28 14:24:20 2007 From: rolandojtorres en gmail.com (=?UTF-8?Q?Rolando_Jos=C3=A9_Torres_S=C3=A1nchez?=) Date: Wed, 28 Feb 2007 08:24:20 -0500 Subject: problema con llamada a software In-Reply-To: References: <251dd14d0702231756k552189daq3b293ff617a09b5b@mail.gmail.com> Message-ID: <6a39a1d0702280524k7cab8850pdab4e98c076429ed@mail.gmail.com> El 27/02/07, Alberto Valverde escribió: > > On Feb 24, 2007, at 2:56 AM, Fabio Duran Verdugo wrote: > > > hola me llamo fabio y desarrollo bajo python y gtk incluyendo a kiwi > > (gnome), y tengo un problema que no es un bug pero resulta molesto, > > porque > > resulta que estoy desarrollando un sistema que necesita y despende de > > firefox (linux) y explorer (wintendo), y el problema es que si > > ejecuto esta > > instruccion : > > > > if sys.platform == "win32": > > os.system("explorer reporte.html") > > else: > > os.system("firefox reporte.html") > > A lo mejor te resulta más sencillo usar el módulo webbrowser [1]de la > librería estándar que hace exáctamente lo que (creo que) quieres, no > bloquea el proceso que lo ejecuta y funciona bajo windows. > > import webbrower > webbrowser.open("file://reporte.html") > > Espero te sirva de ayuda, > Alberto > > [1] http://www.python.org/doc/current/lib/module-webbrowser.html_______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > A mi me funciona bien en windowsxp con: salida = os.popen('explorer http://www.google.com.co &') y en Linux con: salida = os.popen('opera http://www.google.com.co &') aunque lo trabajo es con tkinter y no con gtk. Abre las aplicaciones como subprocesos, y el programa principal continua funcionando normalmente. -- Rolando José Torres Sánchez TCL/TK inside Python MSN:rolandojtorres en hotmail.com ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From gcarrera en cnb.uam.es Wed Feb 28 14:29:28 2007 From: gcarrera en cnb.uam.es (=?ISO-8859-1?Q?Germ=E1n_Carrera?=) Date: Wed, 28 Feb 2007 14:29:28 +0100 Subject: Persistencia para una variable In-Reply-To: <2c9fb0dd0702271129r454c24a7g25193e0ff43cf1fc@mail.gmail.com> References: <45E2D50C.4010600@cnb.uam.es> <45E2DE1F.5030302@ch3m4.org><45E2EF1E.4010101@cnb.uam.es> <45E31098.2090704@ch3m4.org><45E42BA5.4030802@cnb.uam.es> <2c9fb0dd0702271129r454c24a7g25193e0ff43cf1fc@mail.gmail.com> Message-ID: <45E583B8.6020400@cnb.uam.es> Hola Chema, Voy a probar lo que me comentas sobre variables de clase la solución parece mucho más elegante que la de usar variables locales. Muchas gracias. Chema Cortes wrote: > El 27/02/07, Germán Carrera escribió: > >> Gracias por la ayuda, el caso es un poco enrevesado y para buscar una >> solución, debido a que no puedo modificar el código que no forma parte >> de mi módulo hice una reproducción con un pequeño ejemplo de lo que >> pasaba . >> >> Esto es a grandes rasgos, en cada iteración se creaba una instancia >> nueva de "test" perdiéndose el valor de las propiedades de la clase >> generada anteriormente, añadiendo el global (en este caso que el objeto >> se instancia en cada iteración) se acaban más o menos los problemas. >> >> Si pudiera accader al resto, sólo haría falta quitar test_=test() de >> dentro del for y ponerlo encima. > > Entiendo mejor el problema. Como te comentaba, la alternativa a usar > variables globales sería usar atributos de clase: > > class test: > carajo=[6,7] > def __init__(self): > None > def algofunc(self,iter): > for n in range(90): > if iter==5: > test.carajo=[2,3,3,4,5,3,4,3] > print test.carajo > > > La ventaja de hacerlo así es que haces que el atributo global se > asocie a la clase, con lo que queda más claro si vas a hacer > subclases. > > Por cierto, cuando no quieras poner nada en el cuerpo de una función > usa el token 'pass': > > def __init__(self): > pass > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From gcarrera en cnb.uam.es Wed Feb 28 14:34:26 2007 From: gcarrera en cnb.uam.es (=?ISO-8859-1?Q?Germ=E1n_Carrera?=) Date: Wed, 28 Feb 2007 14:34:26 +0100 Subject: Persistencia para una variable In-Reply-To: <45E583B8.6020400@cnb.uam.es> References: <45E2D50C.4010600@cnb.uam.es><45E2DE1F.5030302@ch3m4.org><45E2EF 1E.4010101@cnb.uam.es><45E31098.2090704@ch3m4.org><45E42BA5.4030802@cnb.uam .es><2c9fb0dd0702271129r454c24a7g25193e0ff43cf1fc@mail.gmail.com> <45E583B8.6020400@cnb.uam.es> Message-ID: <45E584E2.8030309@cnb.uam.es> Perdón, variables globales. Saludos Germán Carrera wrote: > Hola Chema, > > Voy a probar lo que me comentas sobre variables de clase la solución > parece mucho más elegante que la de usar variables locales. > > Muchas gracias. > > Chema Cortes wrote: >> El 27/02/07, Germán Carrera escribió: >> >>> Gracias por la ayuda, el caso es un poco enrevesado y para buscar una >>> solución, debido a que no puedo modificar el código que no forma parte >>> de mi módulo hice una reproducción con un pequeño ejemplo de lo que >>> pasaba . >>> >>> Esto es a grandes rasgos, en cada iteración se creaba una instancia >>> nueva de "test" perdiéndose el valor de las propiedades de la clase >>> generada anteriormente, añadiendo el global (en este caso que el objeto >>> se instancia en cada iteración) se acaban más o menos los problemas. >>> >>> Si pudiera accader al resto, sólo haría falta quitar test_=test() de >>> dentro del for y ponerlo encima. >> >> Entiendo mejor el problema. Como te comentaba, la alternativa a usar >> variables globales sería usar atributos de clase: >> >> class test: >> carajo=[6,7] >> def __init__(self): >> None >> def algofunc(self,iter): >> for n in range(90): >> if iter==5: >> test.carajo=[2,3,3,4,5,3,4,3] >> print test.carajo >> >> >> La ventaja de hacerlo así es que haces que el atributo global se >> asocie a la clase, con lo que queda más claro si vas a hacer >> subclases. >> >> Por cierto, cuando no quieras poner nada en el cuerpo de una función >> usa el token 'pass': >> >> def __init__(self): >> pass >> _______________________________________________ >> Python-es mailing list >> Python-es en aditel.org >> http://listas.aditel.org/listinfo/python-es >> > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > From rodrigo en nul-unu.com Wed Feb 28 14:31:25 2007 From: rodrigo en nul-unu.com (Luis Rodrigo Gallardo Cruz) Date: Wed, 28 Feb 2007 07:31:25 -0600 Subject: =?iso-8859-1?Q?Comunicaci?= =?iso-8859-1?Q?=F3n?= USB In-Reply-To: <20070228120800.suwmfrgr48800ow0@k-rolus.net> References: <97468b780702271346n55576e6fuaadb7a5a617e6024@mail.gmail.com> <20070228120800.suwmfrgr48800ow0@k-rolus.net> Message-ID: <20070228133125.GC3500@lisa.casa.ayr> On Wed, Feb 28, 2007 at 12:08:00PM +0100, Carlos Galisteo de Cabo wrote: > Quoting Rafa Domenech : > > >Soy principiante en python y necesito crear una aplicación que se comunique > >via USB con un dispositivo. En un principio el programa es para uso bajo > >linux. A ver si alguno conoce alguna librería o me muestra algun ejemplo de > >código. > > No lo he usado nunca, pero creo que con pyserial[1] podrás usar un > USB como cualquier otro puerto serie. > > [1]http://pyserial.sourceforge.net/ Pero hay dispositivos USB que no se comportan como puertos serie. Tampoco he usado esto, pero PyUSB is a native Python module written in C (meanwhile, because the next major version will use ctypes), that provides USB access for it. http://pyusb.berlios.de/ (Que por cierto es el primer resultado de google:python+usb. Puntitos malos al de la pregunta original.) ------------ próxima parte ------------ A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 189 bytes Desc: Digital signature URL: ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From jileon en parcan.es Wed Feb 28 14:58:52 2007 From: jileon en parcan.es (=?ISO-8859-1?Q?Juan_Ignacio_Rodr=EDguez_de_Le=F3n?=) Date: Wed, 28 Feb 2007 13:58:52 +0000 Subject: [Python 2.5] Otros cambios en el lenguaje In-Reply-To: References: <45D475AB.5010802@parcan.es> Message-ID: <45E58A9C.5050001@parcan.es> Zara escribió: > Sólo una notilla (de gusto personal, se puede ignorar sin causar > ningún trauma): Yo prefiero lanzar(throw) excepciones que elevarlas > (raise). Me parece más gráfico, uno lanza una excepción como quien > lanza una pelota en el béisbol, para que el que pueda, que la cace > (catch) > > Ya sé que raise es la palabra clave en pythin, y throw en muchos otros > lenguajes (C++, Java...), pero por lo que ya he dichoe, me parece más > gráfico lanzarla. Si, traduje *raise* sin pensarmelo mucho como elevar, y la verdad es que es mucho más expresivo lanzar. Lo tendré en cuenta para próximas traducciones. Gracias por el comentario. > Primero: felicidades. Y suerte, que no salga muy llorón(a) por las > noches, que el sueño es uno de los bienes más preciados. > Gracias, la verdad es que nos ha salido super tranquilito. Ya duerme toda la noche de un tirón. Y yo que me alegro :-) From carles en companysoler.cat Wed Feb 28 15:07:19 2007 From: carles en companysoler.cat (Carles Company Soler) Date: Wed, 28 Feb 2007 15:07:19 +0100 Subject: Curses y timer Message-ID: <45E58C97.10007@companysoler.cat> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Buenas, estoy haciendo una aplicación en Python usando la biblioteca curses. Ahora quiero que cada 5 segundos se me refresque la pantalla. Pensé hacerlo con el módulo Timer de la biblioteca threading, pero a veces se me queda un poco loco. Lo hago así: def refresca(scr): global thread global block if block==0: carrega_fitxers() mostra_fitxer(scr) thread=Timer(5.0,refresca,[scr]) thread.start() y en la funcion principal: thread=Timer(5.0,refresca,[scr]) thread.start() Pero no acaba de ir bien. Hago algo mal? Hay otra solución mejor? Gracias! -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFF5YyXuMcAvpoPkjARAhy1AJkBOxADF2eUqZnTuZJChsXos0fF8QCfbLOT vTUyUcCP/3Bm7WdcI/FbPgk= =smcb -----END PGP SIGNATURE----- From arnau en ehas.org Wed Feb 28 15:01:12 2007 From: arnau en ehas.org (Arnau Sanchez) Date: Wed, 28 Feb 2007 15:01:12 +0100 Subject: problema con llamada a software In-Reply-To: <45E47BA9.6040704@rvburke.com> References: <000001c75800$9c4af1b0$640010ac@nombref31twj9b> <45E2CE4B.50806@ehas.org> <45E394AB.3040608@lilyphilia.net> <45E430B2.6000203@ehas.org> <45E47BA9.6040704@rvburke.com> Message-ID: <45E58B28.4020107@ehas.org> Rafael Villar Burke escribió: > Arnau Sanchez wrote: >> Ya que sale el tema, siempre he tenido una duda respecto al uso del >> módulo mailcap, ¿cómo obtienes el mime-type de un fichero del que sólo >> sabes el nombre? el mime-type es un parámetro obligatorio de la >> función findmatch. > ¿Es posible que use file?. > > pachi en goober:~$ file -i gl.po > gl.po: text/x-po; charset=utf-8 No, no, me refería a cómo puedes saber el mime-type desde el programa python, porque no se proporciona ningún método de autodetección (y findmatch necesita que se lo des explícitamente). Trasteando un poco con lo devuelto por mailcap.getcaps() se podría, pero creo que debería formar parte del módulo. Inspeccionando un poco el código Perl de las aplicaciones del paquete mime-support parece que no usa "file", con la información del mailcap (/etc/mailcap) tiene suficiente para relacionar una extensión con la aplicación. From alfonsodg en gmail.com Wed Feb 28 15:53:05 2007 From: alfonsodg en gmail.com (Alfonso de la Guarda) Date: Wed, 28 Feb 2007 09:53:05 -0500 Subject: Curses y timer In-Reply-To: <45E58C97.10007@companysoler.cat> References: <45E58C97.10007@companysoler.cat> Message-ID: Hola, Aqui hay otra solución, la cual empleo para colocar la hora cada segundo: def imptiempo(pan): win=definewin(pan,0,0) while 1: time.sleep(1) impres=time.strftime("%A, %d-%B(%m)-%Y %H:%M:%S") posx=cent(maxx,impres) win.addstr(0,posx,impres) updat() hora=mkpanel(curses.COLOR_WHITE,1,maxx-2,4,1) thread.start_new_thread(imptiempo,(hora,)) Aqui he creado -en mi aplicación- algunas funciones que me ayudan a controlar mis paneles como definewin, pero basicamente lo que hace es convertir un panel en una ventana. Despues del while empieza lo importante, porque hace que el reloj se dispare y se imprima eternamente en el panel. Saludos, On 2/28/07, Carles Company Soler wrote: > > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Buenas, > estoy haciendo una aplicación en Python usando la biblioteca curses. > Ahora quiero que cada 5 segundos se me refresque la pantalla. Pensé > hacerlo con el módulo Timer de la biblioteca threading, pero a veces se > me queda un poco loco. > Lo hago así: > > def refresca(scr): > global thread > global block > if block==0: > carrega_fitxers() > mostra_fitxer(scr) > thread=Timer(5.0,refresca,[scr]) > thread.start() > > y en la funcion principal: > > thread=Timer(5.0,refresca,[scr]) > thread.start() > > Pero no acaba de ir bien. Hago algo mal? Hay otra solución mejor? > > Gracias! > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.6 (MingW32) > Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org > > iD8DBQFF5YyXuMcAvpoPkjARAhy1AJkBOxADF2eUqZnTuZJChsXos0fF8QCfbLOT > vTUyUcCP/3Bm7WdcI/FbPgk= > =smcb > -----END PGP SIGNATURE----- > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > -- -------------------------------- Alfonso de la Guarda INVESTIGACION Y CONSULTORIA TECNOLOGICA SAC Telef. 97550914 4726906 From carles en companysoler.cat Wed Feb 28 16:29:56 2007 From: carles en companysoler.cat (Carles Company Soler) Date: Wed, 28 Feb 2007 16:29:56 +0100 Subject: Curses y timer In-Reply-To: References: <45E58C97.10007@companysoler.cat> Message-ID: <45E59FF4.8080705@companysoler.cat> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Alfonso de la Guarda wrote: > Hola, > > Aqui hay otra solución, la cual empleo para colocar la hora cada segundo: > > def imptiempo(pan): > win=definewin(pan,0,0) > while 1: > time.sleep(1) > impres=time.strftime("%A, %d-%B(%m)-%Y %H:%M:%S") > posx=cent(maxx,impres) > win.addstr(0,posx,impres) > updat() > > hora=mkpanel(curses.COLOR_WHITE,1,maxx-2,4,1) > thread.start_new_thread(imptiempo,(hora,)) > > Aqui he creado -en mi aplicación- algunas funciones que me ayudan a > controlar mis paneles como definewin, pero basicamente lo que hace es > convertir un panel en una ventana. Despues del while empieza lo > importante, > porque hace que el reloj se dispare y se imprima eternamente en el panel. > > Saludos, > > Gracias! Ha ido perfecto. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFF5Z/0uMcAvpoPkjARAt9DAJ9DXhwTJbubBhq/9N0uumkob2tUcACdGbEC gbsO1481bzbUYND77dvlzi0= =H2EB -----END PGP SIGNATURE----- From jileon en parcan.es Wed Feb 28 16:31:42 2007 From: jileon en parcan.es (=?ISO-8859-1?Q?Juan_Ignacio_Rodr=EDguez_de_Le=F3n?=) Date: Wed, 28 Feb 2007 15:31:42 +0000 Subject: [Python 2.5] - =?iso-8859-1?q?M=F3dulos_nuevos=2C_m=F3dulos_mejor?= =?iso-8859-1?q?ados_y_m=F3dulos_eliminados?= Message-ID: <45E5A05E.3080700@parcan.es> Nueva actualización de los cambios introducidos en Python 2.5 Esta vez toca una *amplia* (Aunque no exhaustiva) revisión de los módulos añadidos, modificados y elimados en esta revisión. La URL es: Y por si se corta la de arriba, también vale esta: ¡Ya queda menos para acabar! Un saludo a todos. From kh_alatar en telefonica.net Wed Feb 28 17:24:19 2007 From: kh_alatar en telefonica.net (Alatar) Date: Wed, 28 Feb 2007 17:24:19 +0100 Subject: enviar correo con python In-Reply-To: <20070228003318.32345.qmail@web26205.mail.ukl.yahoo.com> References: <20070228003318.32345.qmail@web26205.mail.ukl.yahoo.com> Message-ID: <45E5ACB3.2040807@telefonica.net> Hola a ambos, Omar Alberto y Roylan. Como veo que os interesa, os mando la rutina entera de nuevo con los imports y un ejemplo de uso. Para hacerla me he basado en los consejos de la lista, en algunos ejemplos encontrados en la red y en varias horitas nocturnas de ensayos/error XD He de advertiros que además yo la he retocado para gestionar diferentes encodes, porque no todos los hosts de correo (hotmail, yahoo, gmail, etc...) utilizan el mismo. Pero no os incluyo los retoques en esta versión para que el código sea más claro y porque todavía tengo que efectuar algunos ajustes. Por lo demás la rutina funciona a la perfección, salvo que al hacer el copy paste haya cometido algún error. Por favor, si haceis vosotros copy paste, repasad las indentaciones (que no sea ese el problema) ;) #---------------------- import os import smtplib import string import email from email.MIMEMultipart import MIMEMultipart from email.MIMEBase import MIMEBase from email.MIMEText import MIMEText from email.MIMEImage import MIMEImage from email.Utils import formatdate from email import Encoders #_________________ def mandar_mail( pm_servidor_correo, pm_login_usuario, pm_login_password, pm_emisor_nombre, pm_emisor_correo, pm_receptor_nombre, pm_receptor_correo, pm_asunto, pm_archivo_texto, pm_archivo_html, pm_adjuntos = [], pm_acuse_recibo = False, pm_imagenes_embebidas = []): """ Rutina para mandar correo electrónico, permitiendo mandar el mensaje alternativa/conjuntamente en modo texto y html, así como con archivos adjuntos, imágenes embebidas y pudiendo solicitar confirmación de lectura. """ assert type(pm_adjuntos) == list assert type(pm_imagenes_embebidas) == list #Inicializamos el mensaje a mandar y vamos añadiendo partes msgRaiz = MIMEMultipart('related') msgRaiz['From'] = pm_emisor_nombre + ' <' + pm_emisor_correo +'>' msgRaiz['To'] = pm_receptor_correo msgRaiz['Subject'] = pm_asunto msgRaiz['Date'] = formatdate(localtime = True) msgRaiz.preamble = '' #De momento, no lo uso msgRaiz.epilogue = '' #De momento, no lo uso if pm_acuse_recibo: msgRaiz['Disposition-Notification-To'] = pm_emisor_correo #Se encapsulan las versiones de texto plano y html del cuerpo #del mensaje en una parte 'alternative' para que el cliente de #correo decida qué parte mostrar msgAlternativo = MIMEMultipart('alternative') msgRaiz.attach(msgAlternativo) #Abrimos mensaje de texto alternativo y lo añadimos msgTexto = MIMEText(pm_archivo_texto, 'plain', pm_encoding_cuerpo) msgAlternativo.attach(msgTexto) #Abrimos mensaje html alternativo y lo añadimos msgHtml = MIMEText(pm_archivo_html, 'html', pm_encoding_cuerpo) msgAlternativo.attach(msgHtml) #Añadimos las imágenes embebidas, si las hay for imagen in pm_imagenes_embebidas: #Cargar imagen archivo_imagen = open(imagen, 'rb') msgImage = MIMEImage(archivo_imagen.read()) archivo_imagen.close() #Hemos de adjuntar la imagen en el content-id. #En el archivo html se debe hacer referencia al content-id #como fuente en el source de la imagen, por ejemplo: # msgImage.add_header('Content-ID', '<' + imagen + '>') msgRaiz.attach(msgImage) #Añadimos los ficheros adjuntos a mandar , si los hay for file in pm_adjuntos: adjunto = MIMEBase('application', "octet-stream") adjunto.set_payload(open(file, "rb").read()) Encoders.encode_base64(adjunto) adjunto.add_header('Content-Disposition', 'attachment; filename = "%s"' % os.path.basename(file)) msgRaiz.attach(adjunto) #Conectamos con el servidor de correo y mandamos el mensaje servidor = smtplib.SMTP(pm_servidor_correo) #servidor.set_debuglevel(1) servidor.ehlo() servidor.login(pm_login_usuario, pm_login_password) try: servidor.sendmail(pm_emisor_correo, pm_receptor_correo, msgRaiz.as_string()) servidor.quit() resultado = True except: resultado = False return(resultado) #----------------------------------- Para el ejemplo de llamada debeis tener el mensaje en formato texto ("mensaje_ejemplo.txt") y en formato html ("mensaje_ejemplo.html"). Y supondremos también que quereis adjuntar un archivo en formato pdf ("archivo_ejemplo.pdf"). Añadiremos otros literales de ejemplo para los demás parámetros: pm_servidor_correo = 'smtp.telefonica.ent' pm_login_usuario = 'tunombredeusuario$telefonica.net' pm_login_password = 'tupassword' pm_emisor_nombre = 'Tu Nombre en Bonito' pm_emisor_correo = 'tucorreo en telefonica.net' pm_receptor_nombre = 'El Nombre del Receptor en Bonito' pm_receptor_correo = 'correodelreceptor en hotmail.com' pm_asunto = 'El asunto del mensaje' pm_archivo_texto = 'mensaje_ejemplo.txt' pm_archivo_html = 'mensaje_ejemplo.html' pm_adjuntos = ['archivo_ejemplo.pdf'] pm_acuse_recibo = False pm_imagenes_embebidas = [] La llamada sería: mandar_mail( pm_servidor_correo, pm_login_usuario, pm_login_password, pm_emisor_nombre, pm_emisor_correo, pm_receptor_nombre, pm_receptor_correo, pm_asunto, pm_archivo_texto, pm_archivo_html, pm_adjuntos, pm_acuse_recibo, pm_imagenes_embebidas) Espero os sea de ayuda ( ya me contareis), Alatar ;) From jpavonruiz en yahoo.es Wed Feb 28 18:35:06 2007 From: jpavonruiz en yahoo.es (Juan Pavon Ruiz) Date: Wed, 28 Feb 2007 18:35:06 +0100 (CET) Subject: Convertir ".ps" en ".gif" Message-ID: <58463.62829.qm@web53111.mail.yahoo.com> Hola comunidad, un ejemplo básico de mi problema: >>> from Tkinter import * >>> root = Tkinter.Tk() >>> canvas = Tkinter.Canvas(root) >>> canvas.pack() >>> rect = canvas.create_rectangle(10,10,100,100, fill="red") >>> retval = canvas.postscript(file="saved.ps", height=100, width=100) ¿Cómo puedo pasar "saved.ps" a "saved.gif" sin utilizar programas externos? Gracias. --------------------------------- LLama Gratis a cualquier PC del Mundo. Llamadas a fijos y móviles desde 1 céntimo por minuto. http://es.voice.yahoo.com From alfonsodg en gmail.com Wed Feb 28 17:05:02 2007 From: alfonsodg en gmail.com (Alfonso de la Guarda) Date: Wed, 28 Feb 2007 11:05:02 -0500 Subject: Curses y timer In-Reply-To: <45E59FF4.8080705@companysoler.cat> References: <45E58C97.10007@companysoler.cat> <45E59FF4.8080705@companysoler.cat> Message-ID: De nada.... On 2/28/07, Carles Company Soler wrote: > > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Alfonso de la Guarda wrote: > > Hola, > > > > Aqui hay otra solución, la cual empleo para colocar la hora cada > segundo: > > > > def imptiempo(pan): > > win=definewin(pan,0,0) > > while 1: > > time.sleep(1) > > impres=time.strftime("%A, %d-%B(%m)-%Y %H:%M:%S") > > posx=cent(maxx,impres) > > win.addstr(0,posx,impres) > > updat() > > > > hora=mkpanel(curses.COLOR_WHITE,1,maxx-2,4,1) > > thread.start_new_thread(imptiempo,(hora,)) > > > > Aqui he creado -en mi aplicación- algunas funciones que me ayudan a > > controlar mis paneles como definewin, pero basicamente lo que hace es > > convertir un panel en una ventana. Despues del while empieza lo > > importante, > > porque hace que el reloj se dispare y se imprima eternamente en el > panel. > > > > Saludos, > > > > > > Gracias! Ha ido perfecto. > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.6 (MingW32) > Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org > > iD8DBQFF5Z/0uMcAvpoPkjARAt9DAJ9DXhwTJbubBhq/9N0uumkob2tUcACdGbEC > gbsO1481bzbUYND77dvlzi0= > =H2EB > -----END PGP SIGNATURE----- > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > -- -------------------------------- Alfonso de la Guarda INVESTIGACION Y CONSULTORIA TECNOLOGICA SAC Telef. 97550914 4726906 From pych3m4 en gmail.com Wed Feb 28 19:56:25 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Wed, 28 Feb 2007 19:56:25 +0100 Subject: Listados con Reportlab mediante trml2pdf In-Reply-To: <002301c75a86$6ad4ffd0$640010ac@nombref31twj9b> References: <002301c75a86$6ad4ffd0$640010ac@nombref31twj9b> Message-ID: <2c9fb0dd0702281056t7ad877betddb48dbb6ba1df57@mail.gmail.com> El 27/02/07, Amm-Python escribió: > Para 500 registros 2.750s (rápido) > Para 1000 registros 6.063s (bien) > Para 2000 registros 13.797s (empieza a no gustarme) > Para 3000 registros 23.641s (no me gusta) > Para 4000 registros 35.813s (sigue sin gustarme) > Para 5000 registros 50.469s (esto ...) > > (Nota: No hay cabeceras ni pies de página, ni contadores de las mismas, > ni logotipos, etc.) > > Para mi es normal hacer un informe con 10000, 20000, 50000 registros. > Sobretodo informes de resúmenes anuales; seguro que no sirven para nada, > pero a los clientes les encantan. > > Por lo que concluyo que, o el esquema del ejemplo no es eficiente, o yo > no se hacerlo mejor, o debo utilizar otra alternativa para generar el > pdf. > > Mientras sigo exportando datos a formato xls y/o csv. > > Hasta me estoy planteando que el cliente instale LaTex y hacer el > listado en dicho formato. Y antes de planteármelo seriamente, pregunto, > ¿con qué generáis listados de grandes volúmenes de información?. No puedo darte una solución; tan sólo te confirmo que hemos tenido los mismos problemas para crear ficheros pdf con tantos registros, tanto en python como en java. Los ficheros que se generan son extremadamente gigantes y su creación es muy lenta (más de una semana para emitir 30.000 certificados con un logotipo simple). Se abandonó la idea de crear estos listados vía una librería, y se optó por montar una "fusión de correo" con alguna herramienta ofimática (aunque, bien pensado, lo de usar LaTeX tampoco es mala idea ;-). From odlc729 en yahoo.es Wed Feb 28 20:10:47 2007 From: odlc729 en yahoo.es (OMAR DAVID LOPEZ CORDOBA) Date: Wed, 28 Feb 2007 20:10:47 +0100 (CET) Subject: porfavor quiero recibir su ayuda para aprender a programar con python Message-ID: <839209.6034.qm@web25301.mail.ukl.yahoo.com> Estoy in teresado en aprender a programar con Python, y ya que no tengo experiencia con este lenguaje, quiciera saber si me pueden decir ¿que tipo de cosas se pueden hacer con Python? --------------------------------- LLama Gratis a cualquier PC del Mundo. Llamadas a fijos y móviles desde 1 céntimo por minuto. http://es.voice.yahoo.com From pych3m4 en gmail.com Wed Feb 28 20:25:31 2007 From: pych3m4 en gmail.com (Chema Cortes) Date: Wed, 28 Feb 2007 20:25:31 +0100 Subject: Convertir ".ps" en ".gif" In-Reply-To: <58463.62829.qm@web53111.mail.yahoo.com> References: <58463.62829.qm@web53111.mail.yahoo.com> Message-ID: <2c9fb0dd0702281125l179607c4v90762fc72545c5d0@mail.gmail.com> El 28/02/07, Juan Pavon Ruiz escribió: > Hola comunidad, un ejemplo básico de mi problema: > > >>> from Tkinter import * > >>> root = Tkinter.Tk() > >>> canvas = Tkinter.Canvas(root) > >>> canvas.pack() > >>> rect = canvas.create_rectangle(10,10,100,100, fill="red") > >>> retval = canvas.postscript(file="saved.ps", height=100, width=100) > > ¿Cómo puedo pasar "saved.ps" a "saved.gif" sin utilizar programas externos? Podrías hacerlo con PIL, pero necesitarás instalar ghostscript. ¿No sería más fácil crear trabajar directamente con PIL? From cgalisteo en k-rolus.net Wed Feb 28 21:00:56 2007 From: cgalisteo en k-rolus.net (Carlos Galisteo) Date: Wed, 28 Feb 2007 21:00:56 +0100 Subject: porfavor quiero recibir su ayuda para aprender a programar con python In-Reply-To: <839209.6034.qm@web25301.mail.ukl.yahoo.com> References: <839209.6034.qm@web25301.mail.ukl.yahoo.com> Message-ID: <45E5DF78.4060908@k-rolus.net> OMAR DAVID LOPEZ CORDOBA escribió: > Estoy in teresado en aprender a programar con Python, y ya que no tengo experiencia con este lenguaje, quiciera saber si me pueden decir ¿que tipo de cosas se pueden hacer con Python? > > Pues se pueden hacer cosas como estas [1], como ya ha hecho esta gente [2]. [1]http://www.python.org/about/apps/ [2]http://www.python.org/about/success/ From jcea en argo.es Wed Feb 28 20:34:12 2007 From: jcea en argo.es (Jesus Cea) Date: Wed, 28 Feb 2007 20:34:12 +0100 Subject: Fractales In-Reply-To: <45E32854.1040701@ch3m4.org> References: <45E2F8FE.8030409@telefonica.net> <45E32854.1040701@ch3m4.org> Message-ID: <45E5D934.7020606@argo.es> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Chema Cortes wrote: > Chaos es lo mejor que puedes encontrar. Con él se puede, incluso, crear > animaciones. La documentación te servirá como guía para iniciar el > proyecto. ¿URL?. Google me saca demasiado "ruido". - -- Jesus Cea Avion _/_/ _/_/_/ _/_/_/ jcea en argo.es http://www.argo.es/~jcea/ _/_/ _/_/ _/_/ _/_/ _/_/ jabber / xmpp:jcea en jabber.org _/_/ _/_/ _/_/_/_/_/ _/_/ _/_/ _/_/ _/_/ _/_/ "Things are not so easy" _/_/ _/_/ _/_/ _/_/ _/_/ _/_/ "My name is Dump, Core Dump" _/_/_/ _/_/_/ _/_/ _/_/ "El amor es poner tu felicidad en la felicidad de otro" - Leibniz -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iQCVAwUBReXZNJlgi5GaxT1NAQJzzQP/TgOVklDPVpnk8pAHC99Gtt5XwDfzh3Bx aiSPXSQwkB/gewRWNg2EJz6rPhT3+9iYF7j6xBfMkKkPdv49/DULC+FzYTCkFuxp 4bFiwkdyweesh8R7J+i31s2G547DA/eKA2wXN0Wf4OpOEtHPVdO0hR44mzOUXNj8 txTUoQw6Oxc= =EB3U -----END PGP SIGNATURE----- ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From ZanaThos en DistroBit.NeT Wed Feb 28 22:46:16 2007 From: ZanaThos en DistroBit.NeT (ZanaThos) Date: Wed, 28 Feb 2007 22:46:16 +0100 Subject: Python para servicios web. (Python Server Pages) Message-ID: <45E5F828.8060107@DistroBit.NeT> Hola a todos, desde hace unos días estoy aprendiendo cómo implementar Python Server Pages para una pequeña web con acceso a una base de datos en MySQL. Utilizo Apache2 y el mod_python, al igual que un módulo para Python de MySQL, que seguro conocéis, llamado MySQLdb. La cuestión, es que no he encontrado mucha información sobre el tema, lo único, algún artículo muy parco en palabras en OnLAMP.com o alguna web parecida, y la información del mismo estilo, es decir, muy poca y muy por encima. Es cierto que hay bastantes webs, que buscando por Google se pueden encontrar, pero me refiero a algo reconocido y que profundice bien. Me gustaría saber entonces si alguien puede hablarme del tema un poco, es decir: dónde encontrar un manual gratuito sobre Python para web (.PSP) aparte del apartado que viene en el manual de mod_python, o si hay algún libro publicado sobre el tema que me pueda servir. La verdad es que me gustaría profundizar sobre el tema, ya que nunca me gustó PHP y menos Java, pero con PythonSP, es diferente porque ya tengo conocimiento previo de Python y es un lenguaje que me gusta mucho por lo motivos que todos aquí sabemos. Nada más, si alguien sabe algo le agradecería que lo compartiera, más que nada porque al buscarme yo la vida con PythonSP, no sé si el método de programación que utilizo es el más indicado o si hay caminos más rápidos y efectivos para programar las funcionalidades de mi web, tales como acceso a la base de datos, petición de datos o envío de información de formularios HTML. Muchas gracias a todos, GonZa. -- ------------------------------------------------------------- "Simplicity is prerequisite for reliability." - Edsger Dijkstra . o O 0 ^ 0 O o . From rolandojtorres en gmail.com Wed Feb 28 21:51:55 2007 From: rolandojtorres en gmail.com (=?UTF-8?Q?Rolando_Jos=C3=A9_Torres_S=C3=A1nchez?=) Date: Wed, 28 Feb 2007 15:51:55 -0500 Subject: Convertir ".ps" en ".gif" In-Reply-To: <58463.62829.qm@web53111.mail.yahoo.com> References: <58463.62829.qm@web53111.mail.yahoo.com> Message-ID: <6a39a1d0702281251o34147348s70f94b1e572f5f68@mail.gmail.com> En TCL se puede grabar el contenido de un canvas en un pequeño GIF canvas write -format gif Sin embargo eso pasa, porque existe el comando write que escribe en contenido de canvas directamente en el archivo file.gif usando el formato GIF o PPM. En Tkinter, no existe tal comando como comando del canvas, lo cual creo que no se puede usar sino a traves de un comando propio de Python que escriba el Objeto del Canvas directamente en el archivo usando el formato GIF. Creo que esto es solo posible usando la libreria PIL El 28/02/07, Juan Pavon Ruiz escribió: > Hola comunidad, un ejemplo básico de mi problema: > > >>> from Tkinter import * > >>> root = Tkinter.Tk() > >>> canvas = Tkinter.Canvas(root) > >>> canvas.pack() > >>> rect = canvas.create_rectangle(10,10,100,100, fill="red") > >>> retval = canvas.postscript(file="saved.ps", height=100, width=100) > > ¿Cómo puedo pasar "saved.ps" a "saved.gif" sin utilizar programas externos? > Gracias. > > > --------------------------------- > > LLama Gratis a cualquier PC del Mundo. > Llamadas a fijos y móviles desde 1 céntimo por minuto. > http://es.voice.yahoo.com > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > -- Rolando José Torres Sánchez TCL/TK inside Python MSN:rolandojtorres en hotmail.com ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From rolandojtorres en gmail.com Wed Feb 28 22:30:32 2007 From: rolandojtorres en gmail.com (=?UTF-8?Q?Rolando_Jos=C3=A9_Torres_S=C3=A1nchez?=) Date: Wed, 28 Feb 2007 16:30:32 -0500 Subject: Listados con Reportlab mediante trml2pdf In-Reply-To: <2c9fb0dd0702281056t7ad877betddb48dbb6ba1df57@mail.gmail.com> References: <002301c75a86$6ad4ffd0$640010ac@nombref31twj9b> <2c9fb0dd0702281056t7ad877betddb48dbb6ba1df57@mail.gmail.com> Message-ID: <6a39a1d0702281330l53ee712ev3a653e5e15a5beb6@mail.gmail.com> Los reportes se generan PDFs distintos o en el mismo PDF?? Lo pregunto, porque hace unos meses intentaba generar PDF desde mapas GIS, y cuando superan los 80Mb la generacion del archivo PDF se pone muy lenta, incluso si solo tenia la sola malla de las coordenadas, y ninguna curva de nivel. El problema lo resolvi, generando SVGs en cambio de PDF, pues los PDF finales llegaban a ocupar entre 100 y 200 Mb, imposibles de visualizar. Es posible que ustedes esten generando un solo PDF con miles de registros, y a medida que crece la cola de registros, la generacion se vuelve cada vez mas lenta por el formato del archivo. Cuanto ocupa un PDF de 10000 Registros?? El 28/02/07, Chema Cortes escribió: > El 27/02/07, Amm-Python escribió: > > > Para 500 registros 2.750s (rápido) > > Para 1000 registros 6.063s (bien) > > Para 2000 registros 13.797s (empieza a no gustarme) > > Para 3000 registros 23.641s (no me gusta) > > Para 4000 registros 35.813s (sigue sin gustarme) > > Para 5000 registros 50.469s (esto ...) > > > > (Nota: No hay cabeceras ni pies de página, ni contadores de las mismas, > > ni logotipos, etc.) > > > > Para mi es normal hacer un informe con 10000, 20000, 50000 registros. > > Sobretodo informes de resúmenes anuales; seguro que no sirven para nada, > > pero a los clientes les encantan. > > > > Por lo que concluyo que, o el esquema del ejemplo no es eficiente, o yo > > no se hacerlo mejor, o debo utilizar otra alternativa para generar el > > pdf. > > > > Mientras sigo exportando datos a formato xls y/o csv. > > > > Hasta me estoy planteando que el cliente instale LaTex y hacer el > > listado en dicho formato. Y antes de planteármelo seriamente, pregunto, > > ¿con qué generáis listados de grandes volúmenes de información?. > > No puedo darte una solución; tan sólo te confirmo que hemos tenido los > mismos problemas para crear ficheros pdf con tantos registros, tanto > en python como en java. Los ficheros que se generan son extremadamente > gigantes y su creación es muy lenta (más de una semana para emitir > 30.000 certificados con un logotipo simple). > > Se abandonó la idea de crear estos listados vía una librería, y se > optó por montar una "fusión de correo" con alguna herramienta > ofimática (aunque, bien pensado, lo de usar LaTeX tampoco es mala idea > ;-). > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > -- Rolando José Torres Sánchez TCL/TK inside Python MSN:rolandojtorres en hotmail.com ------------ próxima parte ------------ _______________________________________________ Python-es mailing list Python-es en aditel.org http://listas.aditel.org/listinfo/python-es From roylan04012 en pri.jovenclub.cu Wed Feb 28 19:20:45 2007 From: roylan04012 en pri.jovenclub.cu (Roylan Suarez Reyes) Date: Wed, 28 Feb 2007 13:20:45 -0500 Subject: enviar correo con python In-Reply-To: <45E5ACB3.2040807@telefonica.net> References: <20070228003318.32345.qmail@web26205.mail.ukl.yahoo.com> <45E5ACB3.2040807@telefonica.net> Message-ID: <200702281320.45410.roylan04012@pri.jovenclub.cu> On Wednesday 28 February 2007 11:24 am, Alatar wrote: recontracorcholis, ahora si rula que es una maravilla, este ejemplo satisface lo que estoy haciendo.... Como aca tenemos muchos problemas con la seguridad informatica es necesario velar por el acceso a sitios de porno y demas, entoces me di a la tarea de desarrollar una aplicacion que revisa las trazas de acceso a internet cada cierto tiempo basado en una lista de palabras sitio e informa al encargado de la Seguridad informatica sobre esto... gragias colega Alatar :) > Hola a ambos, Omar Alberto y Roylan. > > Como veo que os interesa, os mando la rutina entera de nuevo con los > imports y un ejemplo de uso. Para hacerla me he basado en los consejos > de la lista, en algunos ejemplos encontrados en la red y en varias > horitas nocturnas de ensayos/error XD > > He de advertiros que además yo la he retocado para gestionar diferentes > encodes, porque no todos los hosts de correo (hotmail, yahoo, gmail, > etc...) utilizan el mismo. Pero no os incluyo los retoques en esta > versión para que el código sea más claro y porque todavía tengo que > efectuar algunos ajustes. Por lo demás la rutina funciona a la > perfección, salvo que al hacer el copy paste haya cometido algún error. > Por favor, si haceis vosotros copy paste, repasad las indentaciones (que > no sea ese el problema) ;) > > #---------------------- > import os > import smtplib > import string > import email > > from email.MIMEMultipart import MIMEMultipart > from email.MIMEBase import MIMEBase > from email.MIMEText import MIMEText > from email.MIMEImage import MIMEImage > from email.Utils import formatdate > from email import Encoders > > #_________________ > def mandar_mail( > pm_servidor_correo, > pm_login_usuario, > pm_login_password, > pm_emisor_nombre, > pm_emisor_correo, > pm_receptor_nombre, > pm_receptor_correo, > pm_asunto, > pm_archivo_texto, > pm_archivo_html, > pm_adjuntos = [], > pm_acuse_recibo = False, > pm_imagenes_embebidas = []): > """ > Rutina para mandar correo electrónico, permitiendo mandar el > mensaje alternativa/conjuntamente en modo texto y html, así como > con archivos adjuntos, imágenes embebidas y pudiendo solicitar > confirmación de lectura. > """ > assert type(pm_adjuntos) == list > assert type(pm_imagenes_embebidas) == list > > #Inicializamos el mensaje a mandar y vamos añadiendo partes > msgRaiz = MIMEMultipart('related') > msgRaiz['From'] = pm_emisor_nombre + ' <' + pm_emisor_correo +'>' > msgRaiz['To'] = pm_receptor_correo > msgRaiz['Subject'] = pm_asunto > msgRaiz['Date'] = formatdate(localtime = True) > msgRaiz.preamble = '' #De momento, no lo uso > msgRaiz.epilogue = '' #De momento, no lo uso > > if pm_acuse_recibo: > msgRaiz['Disposition-Notification-To'] = pm_emisor_correo > > #Se encapsulan las versiones de texto plano y html del cuerpo > #del mensaje en una parte 'alternative' para que el cliente de > #correo decida qué parte mostrar > msgAlternativo = MIMEMultipart('alternative') > msgRaiz.attach(msgAlternativo) > > #Abrimos mensaje de texto alternativo y lo añadimos > msgTexto = MIMEText(pm_archivo_texto, 'plain', pm_encoding_cuerpo) > msgAlternativo.attach(msgTexto) > > #Abrimos mensaje html alternativo y lo añadimos > msgHtml = MIMEText(pm_archivo_html, 'html', pm_encoding_cuerpo) > msgAlternativo.attach(msgHtml) > > #Añadimos las imágenes embebidas, si las hay > for imagen in pm_imagenes_embebidas: > #Cargar imagen > archivo_imagen = open(imagen, 'rb') > msgImage = MIMEImage(archivo_imagen.read()) > archivo_imagen.close() > > #Hemos de adjuntar la imagen en el content-id. > #En el archivo html se debe hacer referencia al content-id > #como fuente en el source de la imagen, por ejemplo: > # > msgImage.add_header('Content-ID', '<' + imagen + '>') > msgRaiz.attach(msgImage) > > #Añadimos los ficheros adjuntos a mandar , si los hay > for file in pm_adjuntos: > adjunto = MIMEBase('application', "octet-stream") > adjunto.set_payload(open(file, "rb").read()) > Encoders.encode_base64(adjunto) > adjunto.add_header('Content-Disposition', 'attachment; filename > = "%s"' % os.path.basename(file)) > msgRaiz.attach(adjunto) > > #Conectamos con el servidor de correo y mandamos el mensaje > servidor = smtplib.SMTP(pm_servidor_correo) > #servidor.set_debuglevel(1) > servidor.ehlo() > servidor.login(pm_login_usuario, pm_login_password) > try: > servidor.sendmail(pm_emisor_correo, pm_receptor_correo, > msgRaiz.as_string()) > servidor.quit() > resultado = True > except: > resultado = False > > return(resultado) > > #----------------------------------- > > Para el ejemplo de llamada debeis tener el mensaje en formato texto > ("mensaje_ejemplo.txt") y en formato html ("mensaje_ejemplo.html"). Y > supondremos también que quereis adjuntar un archivo en formato pdf > ("archivo_ejemplo.pdf"). Añadiremos otros literales de ejemplo para los > demás parámetros: > > pm_servidor_correo = 'smtp.telefonica.ent' > pm_login_usuario = 'tunombredeusuario$telefonica.net' > pm_login_password = 'tupassword' > pm_emisor_nombre = 'Tu Nombre en Bonito' > pm_emisor_correo = 'tucorreo en telefonica.net' > pm_receptor_nombre = 'El Nombre del Receptor en Bonito' > pm_receptor_correo = 'correodelreceptor en hotmail.com' > pm_asunto = 'El asunto del mensaje' > pm_archivo_texto = 'mensaje_ejemplo.txt' > pm_archivo_html = 'mensaje_ejemplo.html' > pm_adjuntos = ['archivo_ejemplo.pdf'] > pm_acuse_recibo = False > pm_imagenes_embebidas = [] > > La llamada sería: > > mandar_mail( pm_servidor_correo, pm_login_usuario, pm_login_password, > pm_emisor_nombre, pm_emisor_correo, pm_receptor_nombre, > pm_receptor_correo, pm_asunto, pm_archivo_texto, > pm_archivo_html, pm_adjuntos, pm_acuse_recibo, pm_imagenes_embebidas) > > Espero os sea de ayuda ( ya me contareis), > > Alatar ;) > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es -- --- Roylan Suarez Reyes Admin Redes JCCE Vinales Telef 793210 roylan04012 en pri.jovenclub.cu From sonajadiabolica en gmail.com Wed Feb 28 17:21:52 2007 From: sonajadiabolica en gmail.com (aNgel rEsendiz g.) Date: Wed, 28 Feb 2007 10:21:52 -0600 Subject: Hola In-Reply-To: <45E53E56.9050307@gmail.com> References: <45E53E56.9050307@gmail.com> Message-ID: <8d9e208f0702280821s506bf146y70b6f76bfbd8d862@mail.gmail.com> Hola, pues yo lo que te puedo recomendar es utilizar cgi, a mi se me hace más sencillo y sin tantos problemas, porque solo necesitas que el servidor tenga python, y solo tienes que aprender a utilizar un modulo de python, no a usar python en un modulo de apache, bueno, así lo siento. te dejo un enlace http://www.wikilearning.com/python-wkccp-6421-1.htm Saludos. On 2/28/07, Daniel Muñiz Fontoira wrote: > Será porque en lugar de <&=saludo %> debería ser <%=saludo %> ?? > > Remitente: > Daniel Muñiz Fontoira > Eu uso software libre [1] > [1]http://www.gnu.org/philosophy/free-sw.gl.html > > > Idoia Villacián Zárate escribió: > > > > Hola: > > > > Si alguien me podia comentar un poquillo que estoy haciendo mal,hace > > unos dias deje un comentario de porque no me salia bien un programa,yo > > sigo los pasos de una direccion,que es esta: > > > > > > [1]http://64.233.183.104/search?q=cache:5gAIA8nOok0J:paginaspersonales > > > > .deusto.es/dipina/publications/PensandoEnPythonIII.pdf+http://paginasp > > > > ersonales.deusto.es/dipina/publications/PensandoEnPythonIII&hl=es&ct=c > > lnk&cd=1 > > > > El programa es este: > > > > <% > > if form.has_key('nombre'):# el objeto es descrito en la siguiente > > seccion > > saludo= '¡Hola,%s!' % form['nombre'].capitalize() > > else: > > saludo = 'Hola solop!' > > #end > > %> > >

<&=saludo %>

> > > > > > Aqui me deberia de salir Hola solop y me sale <&=saludo %> > > > > Puse unas comillas que me dijeron y me sigue saliendo mal. > > > > Estoy utilizando Apache 2.0.59,tengo Python 2.4 y mod_python > > instalados.He seguido las indicaciones de esta pagina,que es para > > una > > aplicacion web que va a acceder a una base de datos,que es lo que > > yo > > > > quiero. > > > > Si alguien me puede decir,gracias. > > _________________________________________________________________ > > > > Tu horóscopo diario, semanal y gratuito. [2]Cartas, tarot y > > predicciones en MSN Horóscopo > > > > References > > > > 1. http://64.233.183.104/search?q=cache:5gAIA8nOok0J:paginaspersonales > > 2. http://g.msn.com/8HMBESES/2728??PS=47575 > > _______________________________________________ > > Python-es mailing list > > Python-es en aditel.org > > http://listas.aditel.org/listinfo/python-es > > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo/python-es > -- aNgel rEsendiz.! From kernel.no.found en gmail.com Wed Feb 28 17:27:12 2007 From: kernel.no.found en gmail.com (=?ISO-8859-1?Q?Juan_Jos=E9_Alonso.?=) Date: Wed, 28 Feb 2007 17:27:12 +0100 Subject: Como hacer importacion ciclica Message-ID: <117d6e170702280827r7201b9dfjea5e774f795d2db2@mail.gmail.com> Saludos, ya me ha ocurrido en varios momentos.. les comento Tengo un fichero donde tengo una clase Mapa(), y otro fichero donde tengo Interfaz() El tema es que en el fichero de Mapa() necesito importar la clase Interfaz y en interfaz necesito importar Mapa() o cualquier otro del mismo fichero Y la primera importacion va bien, pero al hacer la 2º no me deja, he oido algo de que es por ser una importacion ciclica maps.py /|\ | | \|/ interface.py Como se haria esa importacion entonces? como se solucionaria. Muchas gracias. -- Juan José Alonso. KarlsBerg. eMail: kernel.no.found en gmail.com MSN: kernel.no.found en gmail.com