From floro en aditel.org Wed May 1 23:41:32 2002 From: floro en aditel.org (=?ISO-8859-1?Q?Pedro_Floro_Garc=EDa?=) Date: Wed, 1 May 2002 23:41:32 +0200 (CEST) Subject: Instalacion de Pmw Message-ID: Hola, Me he bajado Pmw (Python Mega Widgets, http://pmw.sourceforge.net/) y me estaba preguntando cómo hay que instalarlo, qué hay que hacer para que funcione. En la web dice que hay que asegurarse que el directorio lib de Pmw este en sys.path.... que es ese sys.path? Y como se pone ahi? Bueno, todo esto en linux. Si alguien lo usa... Gracias, saludos. From chemacortes en wanadoo.es Thu May 2 03:25:48 2002 From: chemacortes en wanadoo.es (Chema =?iso-8859-1?q?Cort=E9s?=) Date: Thu, 02 May 2002 01:25:48 GMT Subject: Instalacion de Pmw In-Reply-To: References: Message-ID: <200105020251.26529.chemacortes@wanadoo.es> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 El Mié 01 May 2002 23:41, Pedro Floro García escribió: > Me he bajado Pmw (Python Mega Widgets, > http://pmw.sourceforge.net/) y me estaba preguntando cómo hay que > instalarlo, qué hay que hacer para que funcione. > > En la web dice que hay que asegurarse que el directorio lib de > Pmw este en sys.path.... que es ese sys.path? Y como se pone ahi? > Bueno, todo esto en linux. Si alguien lo usa... Gracias, saludos. Aunque no utilizo el pwm, te intentaré ayudar. El sys.path es la ruta a los módulos de python, equivalente al PATH del sistema para encontrar los ejecutables. Se accede a él importando el módulo sys. El sys.path es una "lista" fijada durante la instalación del python. Se le amplía con el valor de la variable de entorno PYTHONPATH y el directorio donde se encuentra la aplicación. 'sys.path' se puede alterar durante la ejecución, normalmente en algún script que se ejecuta automáticamente en el arranque (eg: site.py) Pero en tu caso lo más aconsejable es colocar el paquete pwm en el directorio 'site-packages' dentro de tu instalación de python. Es el lugar preparado para que añadas nuevos paquetes. Saludos, - -- Chema Cortes (chemacortes en wanadoo.es) | LinuxUser#142755 - SuSE Linux 8.0 ZARALINUX http://www.zaralinux.org | "La ignorancia se apodera de quien PYTANDO http://pytando.sf.net | se contenta con lo que sabe" PGPKEY: mailto:chemacortes en wanadoo.es?subject=__PGPKEY__ -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQE671oOHLTQrABk8H0RApHXAKDX50TdBR12EXO/en/Q4oygCdZODACg+Lj1 J7ZFUeRrl9eUuuavzIM49Tg= =Eclq -----END PGP SIGNATURE----- From rapto en arrakis.es Thu May 2 11:13:24 2002 From: rapto en arrakis.es (Marcos =?ISO-8859-1?Q?S=E1nchez?= Provencio) Date: 02 May 2002 11:13:24 +0200 Subject: [Python-es] Instalacion de Pmw In-Reply-To: References: Message-ID: <1020330804.1209.4.camel@renata.macondo.pri> El mié, 01-05-2002 a las 23:41, Pedro Floro García escribió: > Hola, > > Me he bajado Pmw (Python Mega Widgets, > http://pmw.sourceforge.net/) y me estaba preguntando cómo hay que > instalarlo, qué hay que hacer para que funcione. > > En la web dice que hay que asegurarse que el directorio lib de > Pmw este en sys.path.... que es ese sys.path? Y como se pone ahi? > Bueno, todo esto en linux. Si alguien lo usa... Gracias, saludos. ¿Qué distribución utilizas? En Debian (versión testing) sólo hay que hacer apt-get install python-pmw Y si usas ActivePython debe ir por ahí la cosa... From floro en aditel.org Thu May 2 12:50:25 2002 From: floro en aditel.org (=?ISO-8859-1?Q?Pedro_Floro_Garc=EDa?=) Date: Thu, 2 May 2002 12:50:25 +0200 (CEST) Subject: Instalacion de Pmw In-Reply-To: <1020330804.1209.4.camel@renata.macondo.pri> References: <1020330804.1209.4.camel@renata.macondo.pri> Message-ID: El día 02/05/02, Marcos Sánchez Provencio escribió: > ¿Qué distribución utilizas? En Debian (versión testing) sólo hay que > hacer > apt-get install python-pmw Uso Debian. Bueno, ya lo tengo solucionado. He descomprimido el Pmw en /usr/lib/python2.2/ y dentro de una carpeta de Pmw, llamada bin, habia un archivo, que ejecutandolo diciendole la ruta del lib/ del Pmw se creaban tres ficheros que habia que copiarlos en /usr/lib/python2.2/ o /usr/lib/python2.2/lib/, no me acuerdo muy bien. Bueno, muchas gracias de todas formas. Saludos. > > Y si usas ActivePython debe ir por ahí la cosa... > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo.py/python-es > From rapto en arrakis.es Thu May 2 13:21:11 2002 From: rapto en arrakis.es (Marcos =?ISO-8859-1?Q?S=E1nchez?= Provencio) Date: 02 May 2002 13:21:11 +0200 Subject: Instalacion de Pmw In-Reply-To: References: Message-ID: <1020338471.1209.35.camel@renata.macondo.pri> El jue, 02-05-2002 a las 12:50, Pedro Floro García escribió: > El día 02/05/02, Marcos Sánchez Provencio escribió: > > > ¿Qué distribución utilizas? En Debian (versión testing) sólo hay que > > hacer > > apt-get install python-pmw > > Uso Debian. > Bueno, ya sé que el disco duro de un hombre es su castillo, pero ¿les tienes manía a los paquetes de Debian? > Bueno, ya lo tengo solucionado. He descomprimido el Pmw en > /usr/lib/python2.2/ y dentro de una carpeta de Pmw, llamada bin, > habia un archivo, que ejecutandolo diciendole la ruta del lib/ > del Pmw se creaban tres ficheros que habia que copiarlos en > /usr/lib/python2.2/ o /usr/lib/python2.2/lib/, no me acuerdo muy > bien. Bueno, muchas gracias de todas formas. Saludos. Vale, pero sería más recomendable meterlo en site-packages From floro en aditel.org Thu May 2 22:03:07 2002 From: floro en aditel.org (=?ISO-8859-1?Q?Pedro_Floro_Garc=EDa?=) Date: Thu, 2 May 2002 22:03:07 +0200 (CEST) Subject: Instalacion de Pmw In-Reply-To: <1020338471.1209.35.camel@renata.macondo.pri> References: <1020338471.1209.35.camel@renata.macondo.pri> Message-ID: El día 02/05/02, Marcos Sánchez Provencio escribió: > El jue, 02-05-2002 a las 12:50, Pedro Floro García escribió: > > El día 02/05/02, Marcos Sánchez Provencio escribió: > > > > > ¿Qué distribución utilizas? En Debian (versión testing) sólo hay que > > > hacer > > > apt-get install python-pmw > > > > Uso Debian. > > > Bueno, ya sé que el disco duro de un hombre es su castillo, pero ¿les > tienes manía a los paquetes de Debian? Jejeje, no, lo que pasa es que no tenia modem externo hasta hoy, y para configurar el interno necesitaba un kernel bastante antiguo, y no es plan. Pero a partir de ahora me bajare paquetes de Debian, que ya tengo ganas. Es que me bajo las cosas en windows y las cojo desde linux. Bueno, un saludo. > > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo.py/python-es > From akers en geo.net.co Fri May 3 03:55:02 2002 From: akers en geo.net.co (Akers John (Geonet)) Date: Thu, 2 May 2002 20:55:02 -0500 Subject: Informacion Message-ID: <004701c1f245$8b00df80$47874ac8@consorcio3> Buenas, a todos Mi nombre es Akers John , en este momento me encuentro evaluando python como herramienta, para unos proyectos y tengo algunas dudas, me gustaria si alguien de la lista tiene mas experiencia con python me pueda ayudar a resolver mis dudas. 1. Puedo compilar python o distribuirlo en un solo ejecutable,tanto en windows,linux o unix 2. El cliente no es necesario que tenga instalado python 3. cual es el rendimiento de python con kinterbasdb,puedo con este ejecutar procedimientos almacenados y recibir parametros de salidas Gracias por su colaboracion ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From fbarousse en piensa.com Fri May 3 05:40:09 2002 From: fbarousse en piensa.com (Felipe E. Barousse B.) Date: 02 May 2002 22:40:09 -0500 Subject: Informacion In-Reply-To: <004701c1f245$8b00df80$47874ac8@consorcio3> References: <004701c1f245$8b00df80$47874ac8@consorcio3> Message-ID: <1020397211.2763.75.camel@monster.piensa.com> Hola Akers: A continuación te envio breve respuesta a tus preguntas: 1.- Python se "compila" a un pseudo-codigo (bytecode) que a su vez es ejecutado por el runtime o "interprete" del lenguaje. Puedes distribuir este pseudo-codigo entre Linux, Windows, Mac, etc. y será ejecutado por el lenguaje Python instalado en cada sistema operativo. (Cuidado que sean las mismas versiones del lenguaje en cada uno). Para el caso de Windows, existe por ahí una utilería que puede "combinar" el interprete de Python -el lenguaje en si- con tu pseudo-codigo en un solo archivo ejecutable *.exe dando así la ilusión de tener un programa directamente ejecutable en windows DOS. No recuerdo ahora el nombre de dicha utileria pero en Vault of Parnassus (repositorio web de cosas para Python) seguro lo encuentras. 2.- Si debe tener instalado Python para ejecutar el archivo en pseudo-codigo *.pyc, a menos que hablemos de Windows/MS-DOS y tengas la utileria que menciono en el punto 1 3.- Desconozco kinterbasdb pero puedes lograr muy altos rendimientos con Python, especialmente con los procesadores disponibles hoy en día, como siempre, si el tiempo es critico tal vez tengas que recurrir a otro lenguaje como "C" o "C++" y compilar directamente a ejecutables...si bien, no creo que esto llegue a ser necesario. Con Python puedes en muchas bases de datos (PostgreSQL, Oracle, Sybase, etc. etc.) acceder a los procedimientos almacenados, triggers, etc. etc. otra vez, desconozco el caso de tu db pero es muy probable que sea factible hacerlo. Espero esta información te sea de utilidad. Felipe Barousse Bufete Consultor de México - Piensa Technologies www.piensa.com On Thu, 2002-05-02 at 20:55, Akers John (Geonet) wrote: > > Buenas, a todos > > Mi nombre es Akers John , en este momento me encuentro evaluando python como herramienta, para unos > proyectos y tengo algunas dudas, me gustaria si alguien > de la lista tiene mas experiencia con python me pueda ayudar a resolver mis dudas. > > > 1. Puedo compilar python o distribuirlo en un solo ejecutable,tanto en windows,linux o unix > 2. El cliente no es necesario que tenga instalado python > 3. cual es el rendimiento de python con kinterbasdb,puedo > con este ejecutar procedimientos almacenados y recibir > parametros de salidas > > > Gracias por su colaboracion > ------------ próxima parte ------------ A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 232 bytes Desc: This is a digitally signed message part URL: From dquintas en telecable.es Fri May 3 10:18:58 2002 From: dquintas en telecable.es (David) Date: 03 May 2002 10:18:58 +0200 Subject: Informacion In-Reply-To: <1020397211.2763.75.camel@monster.piensa.com> References: <004701c1f245$8b00df80$47874ac8@consorcio3> <1020397211.2763.75.camel@monster.piensa.com> Message-ID: <1020413944.1271.4.camel@debian> El vie, 03-05-2002 a las 05:40, Felipe E. Barousse B. escribió: > Hola Akers: > > A continuación te envio breve respuesta a tus preguntas: > > 1.- Python se "compila" a un pseudo-codigo (bytecode) que a su vez es > ejecutado por el runtime o "interprete" del lenguaje. Puedes distribuir > este pseudo-codigo entre Linux, Windows, Mac, etc. y será ejecutado por > el lenguaje Python instalado en cada sistema operativo. (Cuidado que > sean las mismas versiones del lenguaje en cada uno). Para el caso de > Windows, existe por ahí una utilería que puede "combinar" el interprete > de Python -el lenguaje en si- con tu pseudo-codigo en un solo archivo > ejecutable *.exe dando así la ilusión de tener un programa directamente > ejecutable en windows DOS. No recuerdo ahora el nombre de dicha utileria > pero en Vault of Parnassus (repositorio web de cosas para Python) seguro > lo encuentras. yo he utilizado con bastante buenos resultados el py2exe http://starship.python.net/crew/theller/py2exe/ Y no solo para win32 estan disponibles este tipo de "trucos" de ocultar en un solo archivo autosuficiente (ya que con el py2exe, q es el q conozco, te ahorras el comprobar las versiones, digamos q "empaquetas" contra la version de python q te convenga). Otra solucion, pero q no he probado es: http://www.mcmillan-inc.com/install1.html From BartolomeSintes en ono.com Thu May 2 23:16:45 2002 From: BartolomeSintes en ono.com (=?iso-8859-1?Q?Bartolom=E9_Sintes_Marco?=) Date: Thu, 2 May 2002 23:16:45 +0200 Subject: =?iso-8859-1?Q?M=E1s_dudas_con_acentos_en_las_cadenas?= Message-ID: <001a01c1f21e$aa179f20$f5222a3e@athlon> Hola, Este programa: print "Dime tu nombre: ", nombre = raw_input() print "Hola", nombre me da el siguiente error al escribir un nombre con acentos (por ejemplo, Ramón): Traceback (most recent call last): File "C:/Mis documentos/01-02 Python/_Dudas/acentos_en_cadenas.py", line 2, in ? nombre = raw_input() TypeError: object.readline() returned non-string ¿Cómo se puede resolver este problema? Gracias por la ayuda, Barto ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From rapto en arrakis.es Fri May 3 10:52:05 2002 From: rapto en arrakis.es (Marcos =?ISO-8859-1?Q?S=E1nchez?= Provencio) Date: 03 May 2002 10:52:05 +0200 Subject: =?ISO-8859-1?Q?M=E1s?= dudas con acentos en las cadenas In-Reply-To: <001a01c1f21e$aa179f20$f5222a3e@athlon> References: <001a01c1f21e$aa179f20$f5222a3e@athlon> Message-ID: <1020415925.1534.6.camel@cynar> El jue, 02-05-2002 a las 23:16, Bartolomé Sintes Marco escribió: > Hola, > > Este programa: > > print "Dime tu nombre: ", > nombre = raw_input() > print "Hola", nombre > > me da el siguiente error al escribir un nombre con acentos (por ejemplo, Ramón): > > Traceback (most recent call last): > File "C:/Mis documentos/01-02 Python/_Dudas/acentos_en_cadenas.py", line 2, in ? > nombre = raw_input() > TypeError: object.readline() returned non-string > > ¿Cómo se puede resolver este problema? > > Gracias por la ayuda, > Barto ¿Qué versiones utilizas? A mí me funciona bien desde línea de órdenes (ventana MSDOS en win, bash en linux). Igual lo que falla es el IDE que uses (pythonwin, idle u otro). From chemacortes en wanadoo.es Fri May 3 07:35:19 2002 From: chemacortes en wanadoo.es (Chema Cortes) Date: Fri, 3 May 2002 5:35:19 -0000 Subject: Informacion Message-ID: <200205030941.g439fYk02392@spisa.act.uji.es> Hola, Akers: A parte del py2exe que te han dicho ya, existe la posibilidad de crear un único ejecutable que contega empotrado el intérprete de python. En la distribución estándar de python viene en las utilidades un paquete del propio Guido para "congelar" una aplicación llamado "freeze". Para Linux/Unix lo he probado con total éxito. Para windows también parece que se puede hacer, aunque por lo que cuenta la documentación no parece sencillo. Requiere como compilador el Visual C++, y añadir alguna DLL adicional en la distribución del ejecutable. En cuanto al kinterbasdb no tengo ni idea, pero te puedo asegurar que el rendimiento del interbase no tiene porqué bajar por utilizar python en lugar de C (o jython en lugar de java). Aún así, puede que exista alguna característica del interbase que no esté incluída en la API del "python database" y que influya de algún modo en su rendimiento óptimo. Saludos, -- Chema Cortes (chemacortes en wanadoo.es) | LinuxUser#142755 - SuSE Linux 8.0 ZARALINUX http://www.zaralinux.org | La ignorancia se apodera de quien PYTANDO http://pytando.sf.net | se contenta con lo que sabe --------- Original message -------- From: "Akers John (Geonet)" To: "python" Subject: [Python-es] Informacion Date: 05-03-02 02:54 Buenas, a todos Mi nombre es Akers John , en este momento me encuentro evaluando python como herramienta, para unos proyectos y tengo algunas dudas, me gustaria si alguien de la lista tiene mas experiencia con python me pueda ayudar a resolver mis dudas. 1. Puedo compilar python o distribuirlo en un solo ejecutable,tanto en windows,linux o unix 2. El cliente no es necesario que tenga instalado python 3. cual es el rendimiento de python con kinterbasdb,puedo con este ejecutar procedimientos almacenados y recibir parametros de salidas Gracias por su colaboracion From morillas en posta.unizar.es Fri May 3 11:40:35 2002 From: morillas en posta.unizar.es (luis miguel) Date: Fri, 3 May 2002 11:40:35 +0200 Subject: =?iso-8859-1?Q?=5BPython-es=5D_M=E1s_dudas_con_acentos_en_las_cadenas?= In-Reply-To: <1020415925.1534.6.camel@cynar>; from rapto@arrakis.es on vie, may 03, 2002 at 10:52:05 +0200 References: <001a01c1f21e$aa179f20$f5222a3e@athlon> <1020415925.1534.6.camel@cynar> Message-ID: <20020503114035.A865@micasa.com> Asunto: Re: [Python-es] Más dudas con acentos en las cadenas Fecha: vie, may 03, 2002 at 10:52:05 +0200 Citando a Marcos Sánchez Provencio (rapto en arrakis.es): > El jue, 02-05-2002 a las 23:16, Bartolomé Sintes Marco escribió: > > Hola, > > > > Este programa: > > > > print "Dime tu nombre: ", > > nombre = raw_input() > > print "Hola", nombre > > > > me da el siguiente error al escribir un nombre con acentos (por ejemplo, Ramón): > > > > Traceback (most recent call last): > > File "C:/Mis documentos/01-02 Python/_Dudas/acentos_en_cadenas.py", line 2, in ? > > nombre = raw_input() > > TypeError: object.readline() returned non-string > > > > ¿Cómo se puede resolver este problema? > > > > Gracias por la ayuda, > > Barto > ¿Qué versiones utilizas? A mí me funciona bien desde línea de órdenes (ventana MSDOS en win, bash en linux). > Igual lo que falla es el IDE que uses (pythonwin, idle u otro). Lo he probado y tampoco tengo problema desde la línea de órdenes. Pero sí que falla el IDE (al menos idle 0.8 que es el que utilizo). Un saludo Luis Miguel From antoniojezu en hotmail.com Fri May 3 20:04:52 2002 From: antoniojezu en hotmail.com (Antonio Carrasco) Date: Fri, 3 May 2002 20:04:52 +0200 Subject: [Python-es] Manipulando documentos MS Word Message-ID: VIERNES!. Pero me he estrellado. Esto más que una consulta, creo que es a título informativo. Desarrollando una herramienta de registro documental que ofrece la posibilidad de sustituir campos en plantillas creadas en MS Word, Excel, Project, ... me encuentro con que al manipular estos archivos binarios, utilizando el replace de las cadenas, corrompe los archivos. Me explico un poquito mejor. Por ejemplo, un documento de especificación de requisitos con campos a sustituir como autor, empresa, fecha de creación, código del proyecto u otros, quedan corrompidos. Me he paseado por la documentación de www.python.org, por los mail-archive, y encuentro una referencia a wvWare (www.wvware.com), pero esta herramienta sólo convierte archivos de MSWord a html, etc.. (creo que es lo que utiliza el kde word, si no me equivoco). La única solución que he encontrado es utilizar documentos .rtf en lugar de .doc. Pero esto no resuelve mi problema para archivos de tipo .xls o .prj. Otra de las soluciones es trabajar con COM y python, pero el servidor es una máquina unix. Vaya. Otra sería delegar en una máquina windows que modificara el archivo y lo devolviera, pero obliga a tener dos máquinas en la empresa, y a un desarrollo demasiado complicado. Total, que jugando con los documentos de MSWord con el Notepad, me encuentro que si sustituyo cadenas por otras del mismo tamaño, el archivo no se corrompe, luego esta es la única solución viable hasta ahora y la que seguramente utilize. Espero que sirva de información para que no os estrelléis donde yo, y si alguien ha tenido alguna experiencia manipulando documentos de este tipo con python y no le importa compartirlo o si me he saltado algo que debería tener en cuenta o que debería haber provado, que aporte. Gracias. ----------------------- Zalu2. Antonio Carrasco. From rapto en arrakis.es Fri May 3 20:20:56 2002 From: rapto en arrakis.es (Marcos =?ISO-8859-1?Q?S=E1nchez?= Provencio) Date: 03 May 2002 20:20:56 +0200 Subject: [Python-es] Manipulando documentos MS Word In-Reply-To: References: Message-ID: <1020450057.1159.9.camel@renata.macondo.pri> El vie, 03-05-2002 a las 20:04, Antonio Carrasco escribió: > VIERNES!. Pero me he estrellado. Esto más que una consulta, creo que es a > título informativo. Desarrollando una herramienta de registro documental que > ofrece la posibilidad de sustituir campos en plantillas creadas en MS Word, > Excel, Project, ... me encuentro con que al manipular estos archivos > binarios, utilizando el replace de las cadenas, corrompe los archivos. > > Me explico un poquito mejor. Por ejemplo, un documento de especificación de > requisitos con campos a sustituir como autor, empresa, fecha de creación, > código del proyecto u otros, quedan corrompidos. > > Me he paseado por la documentación de www.python.org, por los mail-archive, > y encuentro una referencia a wvWare (www.wvware.com), pero esta herramienta > sólo convierte archivos de MSWord a html, etc.. (creo que es lo que utiliza > el kde word, si no me equivoco). > > La única solución que he encontrado es utilizar documentos .rtf en lugar de > .doc. Pero esto no resuelve mi problema para archivos de tipo .xls o .prj. > > Otra de las soluciones es trabajar con COM y python, pero el servidor es una > máquina unix. Vaya. Otra sería delegar en una máquina windows que modificara > el archivo y lo devolviera, pero obliga a tener dos máquinas en la empresa, > y a un desarrollo demasiado complicado. > > Total, que jugando con los documentos de MSWord con el Notepad, me encuentro > que si sustituyo cadenas por otras del mismo tamaño, el archivo no se > corrompe, luego esta es la única solución viable hasta ahora y la que > seguramente utilize. > > Espero que sirva de información para que no os estrelléis donde yo, y si > alguien ha tenido alguna experiencia manipulando documentos de este tipo con > python y no le importa compartirlo o si me he saltado algo que debería tener > en cuenta o que debería haber provado, que aporte. Gracias. > > ----------------------- Ya sé que éste no es un foro típico Bill-Gates-es-el-demonio, pero éste es uno más de los resultados de utilizar productos de Microsoft. Uno queda cautivo de ellos hasta el fin de los tiempos. El sistema de substituir cadenas binarias dentro de los ficheros ya escritos debe ser de los más peligrosos de la historia (y, desde luego, yo estaría temblando de tener que usarlo). Vamos, que me parece muy poco fiable. La alternativa de usar los productos originales (por cierto, igual te vale el producto http://codeweavers.com/products/office/ ) me parece igualmente poco fiables. El uso de un procesador de texto interactivo para la generación de documentos es frustrantemente lento. En resumen "yet another" motivo para huir de los productos de Microsoft. Incidentalmente, OpenOffice ha sacado su versión 1.0 en castellano. Es capaz de abrir varios de los formatos de MS Office. El formato nativo está completamente documentado (ficheros xml comprimidos con zip), por lo que es inmediato generarlos externamente y analizarlos y modificarlos programáticamente. Y funciona perfectamente desde Linux, Solaris y Windows, con una relación calidad/precio insuperable. Hala, mis disculpas por el 'rollo'. From BartolomeSintes en ono.com Fri May 3 18:54:45 2002 From: BartolomeSintes en ono.com (=?iso-8859-1?Q?Bartolom=E9_Sintes_Marco?=) Date: Fri, 3 May 2002 18:54:45 +0200 Subject: Acentos en cadenas Message-ID: <001201c1f2c3$3aa7bb20$f5222a3e@athlon> Hola, Aclaraciones a mi anterior pregunta, por si sirve de algo: Estoy utilizando Windows 98 SE en castellano, Python 2.2.1 para Windows e IDLE 0.8. Lo que hago es: - abrir IDLE (Python GUI) (la ventana se llama Python shell) - abrir una nueva ventana (File / New Window) - escribir el programa siguiente en esa nueva ventana print "Dime tu nombre: ", nombre = raw_input() print "Hola", nombre - guardar el programa (Ctrl+S) con el nombre acentos_en_cadenas.py - ejecutar el programa (Ctrl+F5) - al escribir un nombre con acentos o con eñes, el mensaje de error siguiente aparece en la ventana Python Shell Traceback (most recent call last): File "C:\Mis documentos\01-02 Python\_Dudas\acentos_en_cadenas.py", line 4, in ? nombre = str(raw_input()) TypeError: object.readline() returned non-string Por otra parte, he comprobado que si desde MiPC hago doble clic sobre el archivo acentos_en_cadenas.py, entonces funciona perfectamente, pero a mi me gustaría que funcionara en IDLE. Hace unos días hice una consulta en esta lista (http://listas.aditel.org/archivos/python-es/2002-April/000398.html) también relacionada con acentos y la solución tenía que ver con un archivo de configuración de Pyhton. ¿Habrá que hacer algo parecido en este caso? Gracias por la ayuda Barto ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From rapto en arrakis.es Fri May 3 20:30:42 2002 From: rapto en arrakis.es (Marcos =?ISO-8859-1?Q?S=E1nchez?= Provencio) Date: 03 May 2002 20:30:42 +0200 Subject: Acentos en cadenas In-Reply-To: <001201c1f2c3$3aa7bb20$f5222a3e@athlon> References: <001201c1f2c3$3aa7bb20$f5222a3e@athlon> Message-ID: <1020450642.1159.12.camel@renata.macondo.pri> El vie, 03-05-2002 a las 18:54, Bartolomé Sintes Marco escribió: > Hola, > > Aclaraciones a mi anterior pregunta, por si sirve de algo: > > Estoy utilizando Windows 98 SE en castellano, Python 2.2.1 para Windows e IDLE 0.8. > > Lo que hago es: > - abrir IDLE (Python GUI) (la ventana se llama Python shell) > - abrir una nueva ventana (File / New Window) > - escribir el programa siguiente en esa nueva ventana > print "Dime tu nombre: ", > nombre = raw_input() > print "Hola", nombre > - guardar el programa (Ctrl+S) con el nombre acentos_en_cadenas.py > - ejecutar el programa (Ctrl+F5) > - al escribir un nombre con acentos o con eñes, el mensaje de error siguiente aparece en la ventana Python Shell > Traceback (most recent call last): > File "C:\Mis documentos\01-02 Python\_Dudas\acentos_en_cadenas.py", line 4, in ? > nombre = str(raw_input()) > TypeError: object.readline() returned non-string > > Por otra parte, he comprobado que si desde MiPC hago doble clic sobre el archivo acentos_en_cadenas.py, entonces funciona perfectamente, pero a mi me gustaría que funcionara en IDLE. > > Hace unos días hice una consulta en esta lista (http://listas.aditel.org/archivos/python-es/2002-April/000398.html) también relacionada con acentos y la solución tenía que ver con un archivo de configuración de Pyhton. ¿Habrá que hacer algo parecido en este caso? > > Gracias por la ayuda > Barto En Linux (creo que los mismos nº de versión) el error es reproducible. From rapto en arrakis.es Fri May 3 20:34:40 2002 From: rapto en arrakis.es (Marcos =?ISO-8859-1?Q?S=E1nchez?= Provencio) Date: 03 May 2002 20:34:40 +0200 Subject: Acentos en cadenas In-Reply-To: <001201c1f2c3$3aa7bb20$f5222a3e@athlon> References: <001201c1f2c3$3aa7bb20$f5222a3e@athlon> Message-ID: <1020450880.1261.14.camel@renata.macondo.pri> El vie, 03-05-2002 a las 18:54, Bartolomé Sintes Marco escribió: > Hola, > > Aclaraciones a mi anterior pregunta, por si sirve de algo: > > Estoy utilizando Windows 98 SE en castellano, Python 2.2.1 para Windows e IDLE 0.8. > > Lo que hago es: > - abrir IDLE (Python GUI) (la ventana se llama Python shell) > - abrir una nueva ventana (File / New Window) > - escribir el programa siguiente en esa nueva ventana > print "Dime tu nombre: ", > nombre = raw_input() > print "Hola", nombre > - guardar el programa (Ctrl+S) con el nombre acentos_en_cadenas.py > - ejecutar el programa (Ctrl+F5) > - al escribir un nombre con acentos o con eñes, el mensaje de error siguiente aparece en la ventana Python Shell > Traceback (most recent call last): > File "C:\Mis documentos\01-02 Python\_Dudas\acentos_en_cadenas.py", line 4, in ? > nombre = str(raw_input()) > TypeError: object.readline() returned non-string > > Por otra parte, he comprobado que si desde MiPC hago doble clic sobre el archivo acentos_en_cadenas.py, entonces funciona perfectamente, pero a mi me gustaría que funcionara en IDLE. > > Hace unos días hice una consulta en esta lista (http://listas.aditel.org/archivos/python-es/2002-April/000398.html) también relacionada con acentos y la solución tenía que ver con un archivo de configuración de Pyhton. ¿Habrá que hacer algo parecido en este caso? > > Gracias por la ayuda > Barto Ya está estudiado: https://sourceforge.net/tracker/index.php?func=detail&aid=441472&group_id=9579&atid=109579 From antoniojezu en hotmail.com Fri May 3 21:02:30 2002 From: antoniojezu en hotmail.com (Antonio Carrasco) Date: Fri, 3 May 2002 21:02:30 +0200 Subject: Manipulando documentos MS Word References: <1020450057.1159.9.camel@renata.macondo.pri> Message-ID: > Ya sé que éste no es un foro típico Bill-Gates-es-el-demonio, pero éste > es uno más de los resultados de utilizar productos de Microsoft. Uno > queda cautivo de ellos hasta el fin de los tiempos. El sistema de > substituir cadenas binarias dentro de los ficheros ya escritos debe ser > de los más peligrosos de la historia (y, desde luego, yo estaría > temblando de tener que usarlo). Vamos, que me parece muy poco fiable. La > alternativa de usar los productos originales (por cierto, igual te vale > el producto > http://codeweavers.com/products/office/ > ) me parece igualmente poco fiables. El uso de un procesador de texto > interactivo para la generación de documentos es frustrantemente lento. > > En resumen "yet another" motivo para huir de los productos de Microsoft. > Incidentalmente, OpenOffice ha sacado su versión 1.0 en castellano. Es > capaz de abrir varios de los formatos de MS Office. El formato nativo > está completamente documentado (ficheros xml comprimidos con zip), por > lo que es inmediato generarlos externamente y analizarlos y modificarlos > programáticamente. Y funciona perfectamente desde Linux, Solaris y > Windows, con una relación calidad/precio insuperable. El problema de estas soluciones es que incrementa el costo de mi proyecto sin ampliar la funcionalidad, y por supuesto, el tiempo de desarrollo. Gracias por la respuesta. > Hala, mis disculpas por el 'rollo'. Rollo el mío, que he estado a punto de responderme yo mismo diciéndome pesao. Una cosa out-list, lo de pytando...sigue en marcha?. From rapto en arrakis.es Fri May 3 21:04:30 2002 From: rapto en arrakis.es (Marcos =?ISO-8859-1?Q?S=E1nchez?= Provencio) Date: 03 May 2002 21:04:30 +0200 Subject: [Python-es] Manipulando documentos MS Word In-Reply-To: References: <1020450057.1159.9.camel@renata.macondo.pri> Message-ID: <1020452670.1261.19.camel@renata.macondo.pri> El vie, 03-05-2002 a las 21:02, Antonio Carrasco escribió: > El problema de estas soluciones es que incrementa el costo de mi proyecto > sin ampliar la funcionalidad, y por supuesto, el tiempo de desarrollo. > Gracias por la respuesta. No, si yo no pretendía dar soluciones, de ahí lo de 'rollo'. Con los datos que tengo, yo pondría un servidor con vmware para magrear los archivos de microsoft. Por lo menos, sólo se puede ir la luz de un PC. Qué triste. > > Hala, mis disculpas por el 'rollo'. > > Rollo el mío, que he estado a punto de responderme yo mismo diciéndome > pesao. Una cosa out-list, lo de pytando...sigue en marcha?. Chema, que alguien ha matado a alguien... From chemacortes en wanadoo.es Sat May 4 02:00:16 2002 From: chemacortes en wanadoo.es (Chema =?iso-8859-1?q?Cort=E9s?=) Date: Sat, 4 May 2002 02:00:16 +0200 Subject: Manipulando documentos MS Word In-Reply-To: References: Message-ID: <200205040200.21661.chemacortes@wanadoo.es> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 El Vie 03 May 2002 20:04, Antonio Carrasco escribió: > VIERNES!. Pero me he estrellado. Esto más que una consulta, creo que es a > título informativo. Desarrollando una herramienta de registro documental > que ofrece la posibilidad de sustituir campos en plantillas creadas en MS > Word, Excel, Project, ... me encuentro con que al manipular estos archivos > binarios, utilizando el replace de las cadenas, corrompe los archivos. > >... > > La única solución que he encontrado es utilizar documentos .rtf en lugar de > .doc. Pero esto no resuelve mi problema para archivos de tipo .xls o .prj. Existe una solución alternativa consistente en utilizar xml en office 2000: http://www.ramon.org/xml/articulos/office_2000_y_xml.htm Supongo que se habrá mejorado el soporte XML en el office XP, aunque estoy con Marcos y recomiendo utilizar siempre formatos estándar de ficheros en lugar de los de office. > Otra de las soluciones es trabajar con COM y python, pero el servidor es > una máquina unix. Vaya. Otra sería delegar en una máquina windows que > modificara el archivo y lo devolviera, pero obliga a tener dos máquinas en > la empresa, y a un desarrollo demasiado complicado. No se si ya lo has descartado, pero podrías utilizar plantillas de office vinculadas a ficheros de formato conocidos como dBase ó texto-plano. > Total, que jugando con los documentos de MSWord con el Notepad, me > encuentro que si sustituyo cadenas por otras del mismo tamaño, el archivo > no se corrompe, luego esta es la única solución viable hasta ahora y la que > seguramente utilize. Si es una solución, no busques más. Espero que pronto podamos contar con la API python para OpenOffice y manipular mejor ficheros en otros formatos. > ------ > Una cosa out-list, lo de pytando...sigue en marcha?. Lo estoy llevando con mucho retraso por complicaciones en mi trabajo; pero el proyecto sigue. Como no es cosa de retrasarlo mucho más, intentaré sacar el curso de introducción tal como lo tengo (sin mucho dhtml) para antes del verano. También estudio poner en marcha próximamente un weblog de noticias en español sobre python. Saludos, - -- Chema Cortes (chemacortes en wanadoo.es) | LinuxUser#142755 - SuSE Linux 8.0 ZARALINUX http://www.zaralinux.org | "La ignorancia se apodera de quien PYTANDO http://pytando.sf.net | se contenta con lo que sabe" PGPKEY: mailto:chemacortes en wanadoo.es?subject=__PGPKEY__ -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQE80ySVHLTQrABk8H0RAs7lAJ9D276fR+TK8fYqWOD5C7xi1ZC+2QCcCbpI +BM0qkH5AJtlp9iYUjipsUU= =jwHA -----END PGP SIGNATURE----- From BartolomeSintes en ono.com Sat May 4 00:26:19 2002 From: BartolomeSintes en ono.com (=?iso-8859-1?Q?Bartolom=E9_Sintes_Marco?=) Date: Sat, 4 May 2002 00:26:19 +0200 Subject: [Python-es] Acentos en cadenas Message-ID: <001001c1f2f1$8ca44320$f5222a3e@athlon> Hola, El bug 441472 se refiere a juegos de caracteres no latinos, y los acentos del castellano están en Latin-1 Creo que el error de acentos en cadenas es más bien el 527022 http://sourceforge.net/tracker/?func=detail&atid=105470&aid=527022&group_id= 5470 aunque en esa página dicen que el fallo se produce en Linux/KDE y no en Windows y a mi me pasa en Windows. Supongo que sólo queda esperar a que alguien arregle IDLE o utilizar otro IDE. ¿Alguien me puede recomendar alguno? Gracias, Barto From rapto en arrakis.es Sat May 4 11:28:36 2002 From: rapto en arrakis.es (Marcos =?ISO-8859-1?Q?S=E1nchez?= Provencio) Date: 04 May 2002 11:28:36 +0200 Subject: Manipulando documentos MS Word In-Reply-To: <200205040200.21661.chemacortes@wanadoo.es> References: <200205040200.21661.chemacortes@wanadoo.es> Message-ID: <1020504517.1213.8.camel@renata.macondo.pri> El sáb, 04-05-2002 a las 02:00, Chema Cortés escribió: > > ------ > > Una cosa out-list, lo de pytando...sigue en marcha?. > > Lo estoy llevando con mucho retraso por complicaciones en mi trabajo; pero el > proyecto sigue. Como no es cosa de retrasarlo mucho más, intentaré sacar el > curso de introducción tal como lo tengo (sin mucho dhtml) para antes del > verano. También estudio poner en marcha próximamente un weblog de noticias en > español sobre python. Deberíamos coordinarnos (ya que, al parecer, somos pocos) con Cristian Echeverría, el de http://www.chevenet.com/. Supongo que no le cuesta nada montar un weblog en lugar del formato actual. Y es que me suena haber visto un weblog de python en castellano ya. Visto el poco tiempo que tenemos, me parece más interesante escribir documentos originales. Debe de haber cantidad de gente usando python y hablando en castellano a la vez, porque http://sourceforge.net/project/stats/?group_id=9845 Por cierto, meto más propaganda, de Zope ya hay un weblog en http://hispazope.freezope.org/ From rapto en arrakis.es Sat May 4 11:43:05 2002 From: rapto en arrakis.es (Marcos =?ISO-8859-1?Q?S=E1nchez?= Provencio) Date: 04 May 2002 11:43:05 +0200 Subject: Acentos en cadenas In-Reply-To: <001001c1f2f1$8ca44320$f5222a3e@athlon> References: <001001c1f2f1$8ca44320$f5222a3e@athlon> Message-ID: <1020505386.1213.19.camel@renata.macondo.pri> El sáb, 04-05-2002 a las 00:26, Bartolomé Sintes Marco escribió: > Hola, > > El bug 441472 se refiere a juegos de caracteres no latinos, y los acentos > del castellano están en Latin-1 > > Creo que el error de acentos en cadenas es más bien el 527022 > http://sourceforge.net/tracker/?func=detail&atid=105470&aid=527022&group_id= > 5470 > aunque en esa página dicen que el fallo se produce en Linux/KDE y no en > Windows y a mi me pasa en Windows. > > Supongo que sólo queda esperar a que alguien arregle IDLE o utilizar otro > IDE. ¿Alguien me puede recomendar > alguno? A mí me va bastante bien (salvo en entrada por consola, que no funciona en absoluto) el SciTE. Siempre que los datos los pidas con otro mecanismo (un diálogo Tkinter, por ejemplo...). No sé lo complicado que resultaría parchear SciTE para tomar entrada de consola. Ojo, que el SciTE es un procesador de texto con ínfulas, pero a mí me ha resultado cantidad de práctico. Tecleas el programa, lo guardas, F5 y tira millas. From morillas en posta.unizar.es Sat May 4 16:30:46 2002 From: morillas en posta.unizar.es (luis miguel) Date: Sat, 4 May 2002 16:30:46 +0200 Subject: Manipulando documentos MS Word In-Reply-To: =?iso-8859-1?Q?=3C200205040200=2E21661=2Echemacortes=40wanadoo=2Ees=3E?= =?iso-8859-1?Q?=3B_from_chemacortes=40wanadoo=2Ees_on_s=E1b=2C_may_04=2C?= =?iso-8859-1?Q?_2002_at_02:00:16_+0200?= References: <200205040200.21661.chemacortes@wanadoo.es> Message-ID: <20020504163046.A14475@micasa.com> Asunto: Re: [Python-es] Manipulando documentos MS Word Fecha: sáb, may 04, 2002 at 02:00:16 +0200 Citando a Chema Cortés (chemacortes en wanadoo.es): > Lo estoy llevando con mucho retraso por complicaciones en mi trabajo; pero el > proyecto sigue. Como no es cosa de retrasarlo mucho más, intentaré sacar el > curso de introducción tal como lo tengo (sin mucho dhtml) para antes del > verano. También estudio poner en marcha próximamente un weblog de noticias en > español sobre python. > Aunque ando liado, te puedo echar una mano (por eso de no dispersar esfuerzos, ya que no somos muchos) Tengo que dar un curso en septiembre y estoy empezando a prepararlo. Un saludo Luis Miguel From chemacortes en wanadoo.es Mon May 6 01:26:29 2002 From: chemacortes en wanadoo.es (Chema =?iso-8859-1?q?Cort=E9s?=) Date: Mon, 6 May 2002 01:26:29 +0200 Subject: Fomentando Python (Era Re: Manipulando documentos MS Word) In-Reply-To: <1020504517.1213.8.camel@renata.macondo.pri> References: <200205040200.21661.chemacortes@wanadoo.es> <1020504517.1213.8.camel@renata.macondo.pri> Message-ID: <200205060126.34268.chemacortes@wanadoo.es> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 El Sáb 04 May 2002 11:28, Marcos Sánchez Provencio escribió: > Deberíamos coordinarnos (ya que, al parecer, somos pocos) con Cristian > Echeverría, el de http://www.chevenet.com/. Supongo que no le cuesta > nada montar un weblog en lugar del formato actual. Y es que me suena > haber visto un weblog de python en castellano ya. Visto el poco tiempo > que tenemos, me parece más interesante escribir documentos originales. Coincido contigo en todo. Chevenet estaba muy parada. En el último mensaje de su creador, Cristian Echeverría, solicita colaboradores con lo que puede resultar apropiado sugerirle un formato weblog para su web. La otra web en español a la que aludes supongo que era www.python-es.f2s.com. Desapareció sin que nadie hiciera ningún comentario. Y lo de montar otro weblog, lo estaba pensando más como un modo de aprender zope. Desde luego no es mi intención fomentar la dispersión. > Debe de haber cantidad de gente usando python y hablando en castellano a > la vez, porque > http://sourceforge.net/project/stats/?group_id=9845 Estoy convencido que la comunidad hispana de python tiene potencial suficiente para contar con mayor presencia en internet que la que ahora tiene. Después de ver como en Guadec se consagraba python como lenguaje de programación para Gnome, seguramente se incremente el número de interesados a partir de ahora. Saludos, - -- Chema Cortes (chemacortes en wanadoo.es) | LinuxUser#142755 - SuSE Linux 8.0 ZARALINUX http://www.zaralinux.org | "La ignorancia se apodera de quien PYTANDO http://pytando.sf.net | se contenta con lo que sabe" PGPKEY: mailto:chemacortes en wanadoo.es?subject=__PGPKEY__ -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQE81b+pHLTQrABk8H0RAhMzAJ0aYygtZjfm3GuC1QS3OhnWSKh+hQCfWm+w G+uDaDqQeBfjcbOu3Z0nkYI= =AWnZ -----END PGP SIGNATURE----- From chemacortes en wanadoo.es Mon May 6 02:11:08 2002 From: chemacortes en wanadoo.es (Chema =?iso-8859-1?q?Cort=E9s?=) Date: Mon, 6 May 2002 02:11:08 +0200 Subject: [Python-es] Acentos en cadenas In-Reply-To: <1020505386.1213.19.camel@renata.macondo.pri> References: <001001c1f2f1$8ca44320$f5222a3e@athlon> <1020505386.1213.19.camel@renata.macondo.pri> Message-ID: <200205060211.13923.chemacortes@wanadoo.es> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 El problema es que el IDLE utiliza como codificación por defecto el "ascii". No sólo da errores la entrada de datos; si se intenta editar un código con algún carácter por encima del código 128 da error al guardar el fichero. Es un problema común a todos los editores basados en IDLE. El SciTE no tiene problemas para editar texto en latin1, pero no tiene previsto ningún medio para la entrada de datos. Bastaría con hacerse un módulo que recree una cónsola para entrada/salida (como el PyShell del IDLE). De momento, no queda más remedio que utilizar algunos apaños ("workarounds") hasta que alguien arregle el código. Por ejemplo, en IDLE funcionaría lo siguiente: from sys import stdin,stdout # a=raw_input("Dame tu nombre: ") stdout.write("Dame tu nombre: ") nombre=stdin.readline() # paso de unicode a latin1 nombre=nombre.encode("latin1") # El resto funciona normalmente print "Hola",nombre La gracia es que no funciona desde la línea de comandos. Saludos, - -- Chema Cortes (chemacortes en wanadoo.es) | LinuxUser#142755 - SuSE Linux 8.0 ZARALINUX http://www.zaralinux.org | "La ignorancia se apodera de quien PYTANDO http://pytando.sf.net | se contenta con lo que sabe" PGPKEY: mailto:chemacortes en wanadoo.es?subject=__PGPKEY__ -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQE81cogHLTQrABk8H0RAoBZAKD35wLbxZHqHhY/+KUNOIiofqoI4QCgrKHr wUSpPpAIONJnGjVJ+n6pxg0= =bcNE -----END PGP SIGNATURE----- From wilerbag en hotmail.com Mon May 6 21:13:45 2002 From: wilerbag en hotmail.com (william barto) Date: Mon, 06 May 2002 14:13:45 -0500 Subject: [Python-es] (sin asunto) Message-ID: hola buenas tardes tengo el siguiente problema con el lenguaje python me pueden ayudar gracias File "C:\Python21\william.txt", line 1 Python 2.1.1 (#20, Jul 20 2001, 01:19:29) [MSC 32 bit (Intel)] on win32 ^ SyntaxError: invalid syntax la verdad es que hasta ahora estoy aprendiendo este idioma y estoy tratando de correr una linea gracias nuevamente _________________________________________________________________ Únase con MSN Hotmail al servicio de correo electrónico más grande del mundo. http://www.hotmail.com From BartolomeSintes en ono.com Tue May 7 07:03:53 2002 From: BartolomeSintes en ono.com (=?iso-8859-1?Q?Bartolom=E9_Sintes_Marco?=) Date: Tue, 7 May 2002 07:03:53 +0200 Subject: (sin asunto) Message-ID: <000a01c1f584$95f47a40$f5222a3e@athlon> Lo que te pasa es que estas intentando ejecutar el mensaje de "bienvenida" de Python Shell y eso no es correcto. Supongo que has seguido los siguientes pasos: 1. Inicio / Programas / Python 2.2 / IDLE (Python Shell) 2. Se ha abierto una ventana con titulo "Python Shell" 3. Has escrito algo (o no) 4. Edit / Run script 5. Se ha abierto una ventana diciendo que grabaras primero el archivo 6. File / Save etc. 7. Otra vez Edit / Run script 8. En la ventana Python Shell se ha escrito el error que comentas Esto es debido a que la ventana "Python Shell" es para trabajar en modo interactivo: escribes una instruccion (o varias) después del símbolo de peticion >>> y al dar a Intro se ejecuta inmediatamente. Si lo que quieres es escribir un programa: 1. Inicio / Programas / Python 2.2 / IDLE (Python Shell) 2. Se abrira una ventana con título "Python Shell" 3. File / New Widnows 4. Escribe el programa en esta nueva ventana 5. File / Save etc. en la segunda ventana 6. Edit / Run script en la segunda ventana 7. Si tu programa produce alguna entrada o salida, se hara en la ventana Python Shell Si eres un autentico novato en la programación, quizas te sirva de ayuda este minicurso de programacion utilizando Python que estoy escribiendo: http://intercentres.cult.gva.es/intercentres/46019751/informatica/tutoriales/python/index.html La pagina http://intercentres.cult.gva.es/intercentres/46019751/informatica/tutoriales/python/idle.html te puede interesar (si todavia no lo has descubierto por tu cuenta) Barto ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From rapto en arrakis.es Tue May 7 10:11:53 2002 From: rapto en arrakis.es (Marcos =?ISO-8859-1?Q?S=E1nchez?= Provencio) Date: 07 May 2002 10:11:53 +0200 Subject: (sin asunto) In-Reply-To: References: Message-ID: <1020759113.1477.9.camel@cynar> El lun, 06-05-2002 a las 21:13, william barto escribió: > hola buenas tardes tengo el siguiente problema con el lenguaje python me > pueden ayudar gracias > > > File "C:\Python21\william.txt", line 1 > Python 2.1.1 (#20, Jul 20 2001, 01:19:29) [MSC 32 bit (Intel)] on win32 > ^ > SyntaxError: invalid syntax > > la verdad es que hasta ahora estoy aprendiendo este idioma y estoy tratando > de correr una linea > > gracias nuevamente Y ¿qué contiene el fichero? No parece contener código Python. Sigue preguntando, que esto parece fácil después de unos días. From jdavid en nuxeo.com Tue May 7 11:20:35 2002 From: jdavid en nuxeo.com (=?ISO-8859-1?Q?Juan_David_Ib=E1=F1ez_Palomar?=) Date: Tue, 07 May 2002 11:20:35 +0200 Subject: EuroPython 2002 Message-ID: <3CD79C63.8090206@nuxeo.com> Hola a todo el mundo, Para los que no lo sepan, el próximo mes de Junio, del 26 al 28, se celebra en Charleroi (Bélgica) la primera conferencia europea de Python (y también Zope). Los invitados estelares son Guido Van Rossum y Eric S. Raymond. Y la web es: http://www.europython.org/ Bueno, espero que nos veamos allí. Chao, -- J. David Ibáñez, Nuxeo.com Python programmer (http://www.python.org) From aperez en aditel.org Tue May 7 13:01:38 2002 From: aperez en aditel.org (=?ISO-8859-1?Q?Antonio_P=E9rez_P=E9rez?=) Date: Tue, 7 May 2002 13:01:38 +0200 (CEST) Subject: Equivalente a "ldd" en Python Message-ID: Hola, este es mi primer mensaje aquí, os llevo leyendo ya desde hace un tiempo pero aun no habia enviado nada, así que saludos a todos =). Mi duda era si hay alguna forma de saber qué librerías dependen de un binario desde python (sin parsear la salida del ldd). Lo de parsear la salida del ldd... no cuesta mucho, pero por si había algo más "limpio" :) Eso es todo, saludos y gracias de antemano. -- Antonio Pérez Pérez | aperez en aditel.org Secretario de Aditel | antonio.perez.perez en hispalinux.es // debian-tags: Desempaquetando el reemplazo de amor ... From morillas en posta.unizar.es Wed May 8 13:51:37 2002 From: morillas en posta.unizar.es (luis miguel) Date: Wed, 8 May 2002 13:51:37 +0200 Subject: Biblio Python Message-ID: <20020508135137.A708@micasa.com> Qué tal listeros? Una consulta sobre libros (por si alguien les ha echado una ojeada o recomienda otra cosa) Trabajo con Programming Python de M. Lutz, pero tengo que preparar un curso más especializado en POO para internet y he encontrado en amazon lo siguiente: Python web programming (S. Holden) Python for the www (C. Fehily) Web programming in python (G. Thiruvathukal) Alguien ha consultado alguno de estos tochos?? Luis Miguel From hernan en orgmf.com.ar Wed May 8 11:59:32 2002 From: hernan en orgmf.com.ar (Hernan Martinez Foffani) Date: Wed, 8 May 2002 11:59:32 +0200 Subject: [Python-es] Biblio Python In-Reply-To: <20020508135137.A708@micasa.com> Message-ID: > Python web programming (S. Holden) > Python for the www (C. Fehily) > Web programming in python (G. Thiruvathukal) Yo no lo leí, pero el de Steve Holden tiene muy buenas recomendaciones. Y el autor responde consultas regularmente en news://comp.lang.python. -Hernan From wilerbag en hotmail.com Wed May 8 15:45:40 2002 From: wilerbag en hotmail.com (william barto) Date: Wed, 08 May 2002 08:45:40 -0500 Subject: help no puedo enviar mensajes Message-ID: buenos dias help no eh podido enviar mensajes por que me dice que tengo muchos errores me pueden ayudar gracias _________________________________________________________________ MSN Photos es la manera más sencilla de compartir e imprimir sus fotos: http://photos.msn.com/support/worldwide.aspx From wilerbag en hotmail.com Wed May 8 15:49:56 2002 From: wilerbag en hotmail.com (william barto) Date: Wed, 08 May 2002 08:49:56 -0500 Subject: hacer un ejecutable Message-ID: buenos dias pythonianos Tengo la siguiente pregunta necesito hacer un programa pero en un equipo que no tiene phiton. ¿como hago para hacer un urgente mil gracias. _________________________________________________________________ Hable con sus amigos en línea, pruebe MSN Messenger: http://messenger.msn.es From rapto en arrakis.es Wed May 8 18:32:46 2002 From: rapto en arrakis.es (Marcos =?ISO-8859-1?Q?S=E1nchez?= Provencio) Date: 08 May 2002 18:32:46 +0200 Subject: hacer un ejecutable In-Reply-To: References: Message-ID: <1020875567.1540.7.camel@cynar> Si el equipo es Windows, consulta py2exe. En Linux, es fácil instalar el intérprete en el cliente o usar el Installer de McMillan (busca en Google) El mié, 08-05-2002 a las 15:49, william barto escribió: > > buenos dias pythonianos > Tengo la siguiente pregunta necesito hacer un programa pero en un equipo que > no tiene phiton. ¿como hago para hacer un urgente mil gracias. > > > > _________________________________________________________________ > Hable con sus amigos en línea, pruebe MSN Messenger: http://messenger.msn.es > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo.py/python-es From arociana en terra.es Wed May 8 21:05:04 2002 From: arociana en terra.es (Antonio Carrasco) Date: Wed, 8 May 2002 21:05:04 +0200 Subject: help no puedo enviar mensajes In-Reply-To: References: Message-ID: ¿...? O soy muy despistado o me he perdido algo. >>>-----Mensaje original----- >>>De: python-es-bounces en aditel.org [mailto:python-es-bounces en aditel.org]En >>>nombre de william barto >>>Enviado el: miércoles, 08 de mayo de 2002 14:46 >>>Para: python-es en aditel.org >>>Asunto: [Python-es] help no puedo enviar mensajes >>> >>> >>> >>>buenos dias help no eh podido enviar mensajes por que me dice que tengo >>>muchos errores me pueden ayudar >>>gracias >>> >>> >>>_________________________________________________________________ >>>MSN Photos es la manera más sencilla de compartir e imprimir sus fotos: >>>http://photos.msn.com/support/worldwide.aspx >>> >>>_______________________________________________ >>>Python-es mailing list >>>Python-es en aditel.org >>>http://listas.aditel.org/listinfo.py/python-es From kmilo en softhome.net Thu May 9 16:51:19 2002 From: kmilo en softhome.net (kmilo) Date: Thu, 9 May 2002 09:51:19 -0500 Subject: __main__ In-Reply-To: <1020875567.1540.7.camel@cynar> References: <1020875567.1540.7.camel@cynar> Message-ID: <20020509095119.75ff3348.kmilo@softhome.net> estuve viendo el hello world en cgi de python --------------hello_cgi.py------------------------------ #!/usr/local/bin/python # for unix of course def main(): print "Content-type: text/html" print print " Hello, World!" print "Hello, World!" if (__name__ == "__main__"): main() ------------------------------------------------------ que es __name__ ? que es __main__? y por que los comparan? -- -- ( ¬)> / \ Linux, Rock, Python ahh y si vuelvo a comprar, comics. V ) > > Sended by Sylpheed in SuSe 7.3 Profesional Linux user number 269263. http://kmiloweb.netfirms.com/ From tjavier en usuarios.retecal.es Thu May 9 16:40:54 2002 From: tjavier en usuarios.retecal.es (=?iso-8859-15?q?Tom=E1s=20Javier=20Robles=20Prado?=) Date: Thu, 09 May 2002 16:40:54 +0200 Subject: Si quieres colaborar... Message-ID: <200205091641.08284.tjavier@usuarios.retecal.es> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hola a todos, Llevo unos días bastante ocupado y temo que lo estaré durante mucho tiempo, por eso no podré escribir código Python para subirlo a la página. Si tienes código sencillo de algún programa que hayas hecho en Python y quieres colaborar, por favor ponte en contacto conmigo. Busco código fácil de comprender, para usuarios nuevos en Python. Si quieres echar un ojo a la página, la tienes en http://users.servicios.retecal.es/tjavier Muchas gracias. - -- Un saludo, T. Javier Robles Prado Python para novatos en http://users.servicios.retecal.es/tjavier Puedes encontrar mi clave pública en http://pgp.rediris.es:11371/pks/lookup?search=Robles+Prado&op=index -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQE82op8eaCWiYxm11ARAi86AJ0TMM7s7YFAw/EZngDjLJRHTGoMtwCfbfnN 8ib8dq3jl/r6ag4ivQfOGd4= =mKkn -----END PGP SIGNATURE----- From hernan en orgmf.com.ar Thu May 9 17:06:05 2002 From: hernan en orgmf.com.ar (Hernan Martinez Foffani) Date: Thu, 9 May 2002 17:06:05 +0200 Subject: __main__ In-Reply-To: <20020509095119.75ff3348.kmilo@softhome.net> References: <20020509095119.75ff3348.kmilo@softhome.net> Message-ID: __name__ es un atributo que poseen casi todos los objetos en python. inclusive un modulo de codigo fuente. cuando se ejecuta el codigo fuente como: $ python hello_cgi.py el atributo __name__ contiene la cadena "__main__" pero dentro del intreprete de comandos contiene el nombre del modulo, en este caso: 'hello_cgi' >>> import hello_cgi.py >>> hello_cgi.__name__ 'hello_cgi' >>> (en este caso la funcion main() no es ejectucada!) python no define un punto de entrada de ejecucion. todas las sentencias se ejecutan en caida. con el truco del __name__ el programador elije el punto de entrada que mas le conviene. además de esa forma el mismo programa puede ser ejecutado desde el prompt del sistema operativo y desde dentro del interprete de comandos. es muy práctico porque un mismo codigo fuente puede ser aprovechado como biblioteca de clases o funciones y como programa independiente. > -----Mensaje original----- > De: python-es-bounces en aditel.org [mailto:python-es-bounces en aditel.org]En > nombre de kmilo > Enviado el: jueves, 09 de mayo de 2002 16:51 > Para: python-es en aditel.org > Asunto: [Python-es] __main__ > > > estuve viendo el hello world en cgi de python > > --------------hello_cgi.py------------------------------ > #!/usr/local/bin/python > # for unix of course > def main(): > print "Content-type: text/html" > print > print " Hello, World!" > print "Hello, World!" > if (__name__ == "__main__"): > main() > > ------------------------------------------------------ > > que es __name__ ? > que es __main__? > y por que los comparan? > > > -- > -- > ( ¬)> > / \ Linux, Rock, Python ahh y si vuelvo a comprar, comics. > V ) > > > > > Sended by Sylpheed in SuSe 7.3 Profesional > Linux user number 269263. > http://kmiloweb.netfirms.com/ > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo.py/python-es > From rapto en arrakis.es Thu May 9 18:47:52 2002 From: rapto en arrakis.es (Marcos =?ISO-8859-1?Q?S=E1nchez?= Provencio) Date: 09 May 2002 18:47:52 +0200 Subject: __main__ In-Reply-To: References: Message-ID: <1020962872.1159.1.camel@renata.macondo.pri> El jue, 09-05-2002 a las 17:06, Hernan Martinez Foffani escribió: > __name__ es un atributo que poseen casi todos los > objetos en python. inclusive un modulo de codigo > fuente. > cuando se ejecuta el codigo fuente como: > $ python hello_cgi.py > el atributo __name__ contiene la cadena "__main__" > > pero dentro del intreprete de comandos contiene > el nombre del modulo, en este caso: 'hello_cgi' > > >>> import hello_cgi.py > >>> hello_cgi.__name__ > 'hello_cgi' > >>> > > (en este caso la funcion main() no es ejectucada!) > > python no define un punto de entrada de ejecucion. > todas las sentencias se ejecutan en caida. con > el truco del __name__ el programador elije el > punto de entrada que mas le conviene. > además de esa forma el mismo programa puede ser > ejecutado desde el prompt del sistema operativo y > desde dentro del interprete de comandos. > es muy práctico porque un mismo codigo fuente puede > ser aprovechado como biblioteca de clases o funciones y > como programa independiente. > Una pequeña nota aparte a una excelente introducción. El truco de if __name__=='__main__': se utiliza muchas veces para dar ejemplos de uso o como módulo de autocomprobación. From kmilo en softhome.net Fri May 10 07:28:59 2002 From: kmilo en softhome.net (kmilo) Date: Fri, 10 May 2002 00:28:59 -0500 Subject: __main__ In-Reply-To: <1020962872.1159.1.camel@renata.macondo.pri> References: <1020962872.1159.1.camel@renata.macondo.pri> Message-ID: <20020510002859.769b104b.kmilo@softhome.net> osea que cuando el modulo es el principal __name__ == __main__ y cuando el modulo no es principal __name__ == nombre_del_modulo On 09 May 2002 18:47:52 +0200 Marcos Sánchez Provencio wrote: > El jue, 09-05-2002 a las 17:06, Hernan Martinez Foffani escribió: > > __name__ es un atributo que poseen casi todos los > > objetos en python. inclusive un modulo de codigo > > fuente. > > cuando se ejecuta el codigo fuente como: > > $ python hello_cgi.py > > el atributo __name__ contiene la cadena "__main__" > > > > pero dentro del intreprete de comandos contiene > > el nombre del modulo, en este caso: 'hello_cgi' > > > > >>> import hello_cgi.py > > >>> hello_cgi.__name__ > > 'hello_cgi' > > >>> > > > > (en este caso la funcion main() no es ejectucada!) > > > > python no define un punto de entrada de ejecucion. > > todas las sentencias se ejecutan en caida. con > > el truco del __name__ el programador elije el > > punto de entrada que mas le conviene. > > además de esa forma el mismo programa puede ser > > ejecutado desde el prompt del sistema operativo y > > desde dentro del interprete de comandos. > > es muy práctico porque un mismo codigo fuente puede > > ser aprovechado como biblioteca de clases o funciones y > > como programa independiente. > > > Una pequeña nota aparte a una excelente introducción. El truco de if > __name__=='__main__': se utiliza muchas veces para dar ejemplos de uso o > como módulo de autocomprobación. > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo.py/python-es -- -- ( ¬)> / \ Linux, Rock, Python ahh y si vuelvo a comprar, comics. V ) > > Sended by Sylpheed in SuSe 7.3 Profesional Linux user number 269263. http://kmiloweb.netfirms.com/ From rapto en arrakis.es Fri May 10 16:32:52 2002 From: rapto en arrakis.es (Marcos =?ISO-8859-1?Q?S=E1nchez?= Provencio) Date: 10 May 2002 16:32:52 +0200 Subject: __main__ In-Reply-To: <20020510002859.769b104b.kmilo@softhome.net> References: <1020962872.1159.1.camel@renata.macondo.pri> <20020510002859.769b104b.kmilo@softhome.net> Message-ID: <1021041172.4516.4.camel@cynar> El vie, 10-05-2002 a las 07:28, kmilo escribió: > osea que cuando el modulo es el principal > __name__ == __main__ > y cuando el modulo no es principal > __name__ == nombre_del_modulo > eso es From kmilo en softhome.net Mon May 13 03:03:34 2002 From: kmilo en softhome.net (kmilo) Date: Sun, 12 May 2002 20:03:34 -0500 Subject: ahora que? In-Reply-To: <1021041172.4516.4.camel@cynar> References: <1020962872.1159.1.camel@renata.macondo.pri> <20020510002859.769b104b.kmilo@softhome.net> <1021041172.4516.4.camel@cynar> Message-ID: <20020512200334.1015f8d6.kmilo@softhome.net> cuando entre a la lista estaba leyendo el tutorial de python, luego de eso trabaje un rato con la documentacion del Tkinter, me aleje de python por 3 o 4 meses, hasta la semana anterior, ahora que he vuelto lo primero que hice fue leer la Python Library Reference, pero despues de terminarla me quede un inmenso sentido de Y ahora que hago? Asi que, cual creen ustedes que es el siguiente paso para seguir aprendiendo este grandioso ( y gracias a dios, facil) lenguaje? -- When I don't understand my code I don't complain about it, I code something and don't back to work with perl Kmilo Sended by Sylpheed in SuSe 7.3 Profesional Linux user number 269263. http://kmiloweb.netfirms.com/ From arociana en terra.es Tue May 14 00:01:15 2002 From: arociana en terra.es (Antonio Carrasco) Date: Tue, 14 May 2002 00:01:15 +0200 Subject: ahora que? In-Reply-To: <20020512200334.1015f8d6.kmilo@softhome.net> References: <20020512200334.1015f8d6.kmilo@softhome.net> Message-ID: Si tienes claro cómo funciona python, el siguiente paso que yo daría sería: http://www.vex.net/parnassus/ Y cotillear un poco de código, entenderlo, jugar con él, no sé, conocer los paquetes... -------------------- Zalu2 Antonio Carrasco "Cuando el sabio señala la luna, el necio mira el dedo." >>>-----Mensaje original----- >>>De: python-es-bounces en aditel.org [mailto:python-es-bounces en aditel.org]En >>>nombre de kmilo >>>Enviado el: lunes, 13 de mayo de 2002 2:04 >>>Para: python-es en aditel.org >>>Asunto: [Python-es] ahora que? >>> >>> >>>cuando entre a la lista estaba leyendo el tutorial de python, >>>luego de eso trabaje un rato con la documentacion del Tkinter, >>>me aleje de python por 3 o 4 meses, hasta la semana anterior, >>>ahora que he vuelto lo primero que hice fue leer la Python >>>Library Reference, pero despues de terminarla me quede un >>>inmenso sentido de >>> >>>Y ahora que hago? >>> >>>Asi que, cual creen ustedes que es el siguiente paso para seguir >>>aprendiendo este grandioso ( y gracias a dios, facil) lenguaje? >>> >>>-- >>>When I don't understand my code >>>I don't complain about it, >>>I code something and don't back >>>to work with perl >>> >>>Kmilo >>> >>>Sended by Sylpheed in SuSe 7.3 Profesional >>>Linux user number 269263. >>>http://kmiloweb.netfirms.com/ >>> >>>_______________________________________________ >>>Python-es mailing list >>>Python-es en aditel.org >>>http://listas.aditel.org/listinfo.py/python-es From morillas en posta.unizar.es Tue May 14 03:08:20 2002 From: morillas en posta.unizar.es (luis miguel) Date: Tue, 14 May 2002 03:08:20 +0200 Subject: Plugin navegador Message-ID: <20020514030820.A3276@marmota> He visto que con iexplorer (en windows) podemos instalar las extensiones de python para windows y 'embeber' en el código html un script de python (como se hace con javascript). Cómo puedo hacer lo mismo con los navegadores que utilizo en linux (netscape y konqueror??) Yo no he encontrado ningún plugin para que el cliente ejecute un script de python. Un saludo Luis Miguel. From hernan en orgmf.com.ar Tue May 14 09:43:11 2002 From: hernan en orgmf.com.ar (Hernan Martinez Foffani) Date: Tue, 14 May 2002 09:43:11 +0200 Subject: Plugin navegador In-Reply-To: <20020514030820.A3276@marmota> References: <20020514030820.A3276@marmota> Message-ID: cuidado!!!! el entorno python no es un arenero seguro. por ejemplo, para los que tengan habilitado Python client script en el IE, prueben: http://www.computerbytesman.com/python/pythondirdemo.htm los navegadores tendrían que usar python en modo restringido (rexec) y controlar qué modulos y/o funciones se pueden o no ejecutar. tengo entendido que nadie ha creado un arenero en modo rexec para navegadores que evite sorpresas desagradables. el mecanismo rexec parece bastante bueno para aplicaciones con python embebido, pero no se han hecho pruebas formales ni analisis exhaustivos. honestamente, yo no habilitaría los navegadores para que ejecuten scritps en python, me parece un poco arriesgado. tampoco te olvides de jython. así podrás programar en python y usar el sandbox de java. saludos, -Hernan > -----Mensaje original----- > De: python-es-bounces en aditel.org [mailto:python-es-bounces en aditel.org]En > nombre de luis miguel > Enviado el: martes, 14 de mayo de 2002 3:08 > Para: Python-es > Asunto: [Python-es] Plugin navegador > > > He visto que con iexplorer (en windows) podemos instalar las extensiones > de python para windows y 'embeber' en el código html un script de python > (como se hace con javascript). Cómo puedo hacer lo mismo con los > navegadores > que utilizo en linux (netscape y konqueror??) Yo no he encontrado ningún > plugin para que el cliente ejecute un script de python. > > Un saludo > > Luis Miguel. > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo.py/python-es > From hernan en orgmf.com.ar Tue May 14 11:40:31 2002 From: hernan en orgmf.com.ar (Hernan Martinez Foffani) Date: Tue, 14 May 2002 11:40:31 +0200 Subject: ahora que? In-Reply-To: <20020512200334.1015f8d6.kmilo@softhome.net> References: <20020512200334.1015f8d6.kmilo@softhome.net> Message-ID: > Asi que, cual creen ustedes que es el siguiente paso para seguir > aprendiendo este grandioso ( y gracias a dios, facil) lenguaje? pues !manos a la obra! :-) busca un proyecto para programar que te interese. si vas a encarar algo desde cero busca algo pequeno para comenzar. otra opcion seria ofrecer colaboracion en algun proyecto ya comenzado, hay montones en parnassus como dijo Antonio y en sourceforge (por ejemplo una lista de proyectos en/con python y en estado de desarrollo temprano: http://sourceforge.net/softwaremap/trove_list.php?form_cat=178&discrim=178,9 ) saludos, -Hernan From chemacortes en wanadoo.es Tue May 14 11:15:21 2002 From: chemacortes en wanadoo.es (Chema Cortes) Date: Tue, 14 May 2002 9:15:21 -0000 Subject: ahora que? Message-ID: <200205141325.g4EDP5a16393@spisa.act.uji.es> Hola, kmilo: Es difícil responderte sin conocer cuáles son tus intereses. Parece que lo más lógico a partir de aquí es que te leas algún libro más especializado. Aquí te pongo algunos que puedes pillar de internet: - "How to Think Like a Computer Scientist" http://www.greenteapress.com/thinkpython.html - "Dive into Python" http://www.diveintopython.org (en proceso de traducción en http://www.diveintopython.org/es/) También puedes revisar los artículos de "Charming Python" (http://gnosis.cx/publish/tech_index_cp.html) o la relación semanal de URLs de "Daily Python-URL" (http://www.pythonware.com/daily/) en busca de ideas. En fin, que una vez que has empezado no deberías pararte y aplicar lo que has aprendido en algún proyecto. Mira en sourceforge.net a ver si hay alguno que te pueda interesar. Saludos, -- Chema Cortes (chemacortes en wanadoo.es) | LinuxUser#142755 - SuSE Linux 8.0 ZARALINUX http://www.zaralinux.org | La ignorancia se apodera de quien PYTANDO http://pytando.sf.net | se contenta con lo que sabe --------- Original message -------- From: "kmilo" To: "python-es en aditel.org" Subject: [Python-es] ahora que? Date: 05-13-02 21:50 cuando entre a la lista estaba leyendo el tutorial de python, luego de eso trabaje un rato con la documentacion del Tkinter, me aleje de python por 3 o 4 meses, hasta la semana anterior, ahora que he vuelto lo primero que hice fue leer la Python Library Reference, pero despues de terminarla me quede un inmenso sentido de Y ahora que hago? Asi que, cual creen ustedes que es el siguiente paso para seguir aprendiendo este grandioso ( y gracias a dios, facil) lenguaje? -- When I don't understand my code I don't complain about it, I code something and don't back to work with perl From fernand0 en hotpop.com Tue May 14 18:42:16 2002 From: fernand0 en hotpop.com (fernand0 en hotpop.com) Date: Tue, 14 May 2002 18:42:16 +0200 (CEST) Subject: =?ISO-8859-1?Q?IRPF_2001_en_python_=28Espa=F1a=29_=28programita?= =?ISO-8859-1?Q?_tonto=29?= Message-ID: Hola, para los que hayais presentado la declaración de la renta o la vayais a presentar y querais comprobar el estado de la devolución sin tener que lanzar el navegador, introducir los datos y todo eso, aquí está este programita que lo hace por nosotros: basta con ponerle el NIF, la cantidad de EUROS solicitados y los CENTS. (Como curiosidad: es gracioso que en el formulario separen céntimos y euros, pero no dividan el NIF en parte numérica y la letra). También puede enviar por correo los resultados a la dirección que digais si configurais las variables TO y SERVIDORSMTP. Está probado en Linux, y con la Debian woody y el python2.2 hay problemas con la lectura de la página (que es https), por eso puse #!/usr/bin/env python2.1 y no pude utilizar el módulo email que viene con la 2.2 de python. Quedaría más cortito. Por supuesto, si le haceis mejoras o encontrais fallos, no dudeis en comunicarlo. Saludos, -- Fernando ------------ próxima parte ------------ #!/usr/bin/env python2.1 """ Programa para comprobar el estado de la devolución del irpf'2002 Hay que configurar, al menos, las variables: NIF, EUROS y CENTS para que funcione. Además, opcionalmente, configurar FROM, SERVIDORSMTP, si deseamos que el resultado devuelto por el servidor se nos envíe por correo electrónico a donde queramos. También podemos cambiar el FROM a algún valor con significado, si así lo deseamos. Si dejamos estas variables sin configurar, se guardará el resultado devuelto por el servidor en un fichero llamado irpf.html Este programa se proporciona como está, sin garantía de ninguna clase y en la esperanza de que sea útil. Comentarios, sugerencias, ideas a: fernand0(en)hotpop.com """ import urllib2 # Datos para identificar la declaración. Obligatorio ponerlos. # Cuidado, en la página web han decidido separar euros y céntimos. NIF='12345578Z' EUROS='0000' CENTS='00' # Datos para configurar el envío del mensaje de correo. Opcionales. # Si se deja alguno de los datos vacío (sin configurar), no se enviará por # correo, sino que se se guardará el fichero irpf.html devuelto por el # servidor FROM = 'Que viene hacienda ' TO = '' SERVIDORSMTP = '' # A partir de aquí no modificar sin conocimiento de lo que se hace ########################################################################## # La URL del POST URL='https://aeat.es/PROGCONV/CWBA/PROGLOGI/' # Los parámetros. parametros='HID=DEVOLUGE&NIF='+NIF+'&IMP='+EUROS+'&IMD='+CENTS # Solicitamos los datos al servidor. f = urllib2.urlopen(URL, parametros) if ((FROM != '') and (TO != '') and (SERVIDORSMTP != '')): # Ahora construimos el mensaje de correo electrónico # Lamentablemente el https no funciona con mi python2.2 así que hay # que construirse el mensaje a mano, sin poder usar email, que es # nuevo en python2.2. import smtplib import MimeWriter import mimetools import time import StringIO import cStringIO fecha = time.asctime(time.localtime(time.time())) # Construcción del mensaje textoMensaje = cStringIO.StringIO(f.read()) mensaje = StringIO.StringIO() generador=MimeWriter.MimeWriter(mensaje) generador.addheader('From',FROM) generador.addheader('Subject',"Estado de la devolución") generador.addheader('Date',fecha) generador.addheader('MIME-Version:',' 1.0\n') generador.startmultipartbody("mixed") parte = generador.nextpart() tipo="text/html" codificacion = "none" parte.addheader("Content-transfer-encoding","base64") pout = parte.startbody(tipo, [(URL,'')]) mimetools.encode(textoMensaje,pout,'base64') generador.lastpart() fromaddr = FROM toaddrs = TO server = smtplib.SMTP() server.connect(SERVIDORSMTP) server.sendmail(fromaddr, toaddrs, mensaje.getvalue()) server.quit() else: fSal = open ('irpf.html', 'w') fSal.write(f.read()) From chemacortes en wanadoo.es Wed May 15 05:35:28 2002 From: chemacortes en wanadoo.es (Chema Cortes) Date: Wed, 15 May 2002 3:35:28 -0000 Subject: [Python-es] Multi Byte Character Surport Message-ID: <200205150745.g4F7jOa29063@spisa.act.uji.es> Hola a todos: Comentábamos hace unas semanas un error que se producía al utilizar caractares acentuados (por encima del código 128). Acaba de salir un parche que arregla en problema, tanto en el modo línea de comando como en el IDLE. Le llaman MBCSP "Multi Byte Character Surport Patch" y lo podéis encontrar, para python 2.2.1, en http://dohao.org/python/mbcsp/en/ Sólo lo he podido probar el parche en win32 y funciona a la perfección. Además de arreglar los errores que comentábamos, permite usar en nombre de variables cualquier caracter (vocales acentuadas, eñes, símbolo de euro, símbolos orientales ó nórdicos, etc.) Saludos, -- Chema Cortes (chemacortes en wanadoo.es) | LinuxUser#142755 - SuSE Linux 8.0 ZARALINUX http://www.zaralinux.org | La ignorancia se apodera de quien PYTANDO http://pytando.sf.net | se contenta con lo que sabe From grd_98 en yahoo.com Wed May 15 09:57:10 2002 From: grd_98 en yahoo.com (Gerardo) Date: Wed, 15 May 2002 00:57:10 -0700 (PDT) Subject: Continuan el desarrollo de Gadfly Message-ID: <20020515075710.64370.qmail@web13404.mail.yahoo.com> Hola a todos. Hoy en anuncios de las news de python, comunican que han sacado una nueva versión, todavía en beta, de la que ha sido tan usada RDBMS gadfly, y que había dejado de continuar con el desarrollo Aaron Watters. La verdad es que yo necesitaba una pequeña base de datos para proyectos pequeños, y no encontraba ninguna adecuada. Sabeis vosotros de alguna otra? Un saludo. __________________________________________________ Do You Yahoo!? LAUNCH - Your Yahoo! Music Experience http://launch.yahoo.com From rapto en arrakis.es Wed May 15 12:07:57 2002 From: rapto en arrakis.es (Marcos =?ISO-8859-1?Q?S=E1nchez?= Provencio) Date: 15 May 2002 12:07:57 +0200 Subject: [Python-es] Nuevo =?ISO-8859-1?Q?art=EDculo?= de IBM sobre Python (en =?ISO-8859-1?Q?ingl=E9s=29?= Message-ID: <1021457277.1453.13.camel@renata.macondo.pri> wxHTML for beginners Building basic browser functionality with wxPython Nicholas Bastin (nbastin en mac.com) Director, Model Validation, OPNET Technologies, Inc. May 2002 Many applications use HTML for reporting and online help, among other things. Embedding a Web browser in your application eliminates the need to worry about which browser a client uses to view your pages, and also allows you to create custom tags that tie the HTML page back to your application. For example, for the help system in an IDE, a user could browse a function reference where you have created custom tags, and when the user clicks on the function name, the function call could be inserted into the user's code. http://www-106.ibm.com/developerworks/linux/library/l-wxpython/ From rapto en arrakis.es Wed May 15 14:01:39 2002 From: rapto en arrakis.es (Marcos =?ISO-8859-1?Q?S=E1nchez?= Provencio) Date: 15 May 2002 14:01:39 +0200 Subject: Plugin navegador In-Reply-To: References: Message-ID: <1021464100.2911.1.camel@renata.macondo.pri> El mar, 14-05-2002 a las 09:43, Hernan Martinez Foffani escribió: > > tampoco te olvides de jython. así podrás programar en python y usar > el sandbox de java. Yo creo que jython es también la mejor opción. From chemacortes en wanadoo.es Wed May 15 10:56:48 2002 From: chemacortes en wanadoo.es (Chema Cortes) Date: Wed, 15 May 2002 8:56:48 -0000 Subject: Plugin navegador Message-ID: <200205151314.g4FDEla02530@spisa.act.uji.es> No me parece comparable. Con el jython tendrías que compilar el código como un applet, a parte de que no podrías utilizar algunos de los módulos de la librería estándar de python. En general, los navegadores (a excepción del explorer+wsh) no utilizan más lenguaje de script que el ecmascript (javascript). Hay algunos plugins como el que te permite usar tcl en netscape; pero lo único que conozco para python es el navegador Grial, programado en python/tk, muy limitado para que permite usar python como lenguaje de script. Para Konqueror y similares en linux lo recomendable es programar los script en modo servidor utilizando apache+mod_python+PyHP...y que, por cierto, se ejecuta dentro del rexec del apache. Saludos, -- Chema Cortes (chemacortes en wanadoo.es) | LinuxUser#142755 - SuSE Linux 8.0 ZARALINUX http://www.zaralinux.org | La ignorancia se apodera de quien PYTANDO http://pytando.sf.net | se contenta con lo que sabe --------- Original message -------- From: "Marcos Sánchez Provencio" To: "python-es en aditel.org" Subject: RE: [Python-es] Plugin navegador Date: 05-15-02 13:05 El mar, 14-05-2002 a las 09:43, Hernan Martinez Foffani escribió: > > tampoco te olvides de jython. así podrás programar en python y usar > el sandbox de java. Yo creo que jython es también la mejor opción. From chemacortes en wanadoo.es Sat May 18 21:30:21 2002 From: chemacortes en wanadoo.es (Chema =?iso-8859-15?q?Cort=E9s?=) Date: Sat, 18 May 2002 21:30:21 +0200 Subject: Chequeo al estandar ISO C++ Message-ID: <200205182130.25645.chemacortes@wanadoo.es> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hola a todos: En la revista Dr.Dobb's (www.ddj.com) de junio 2002 hay un artículo que chequea el cumplimiento del estandar ISO C++ de varios compiladores. Lo interesante del artículo es que las pruebas de conformidad con el estándar están codificadas en python empleando el módulo "unittest". Según el artículo, se consigue de esta manera un mecanismo multiplataforma inmejorable para chequeo de los compiladores. El artículo y el código python se pueden descargar desde http://www.cs.clemson.edu/~malloy/projects/ddj.html Por si os interesan los resultados, de más a menos conforme con el estándar ISO C++: gcc 3.0.4 90.7% MIPSpro 7.3.1.2m 90.5% gcc 2.96 90.0% gcc 2.95.2 88.6% Borland 5.5.1 86.4% Visual C++ 6.0 73.6% Saludos, - -- Chema Cortes (chemacortes en wanadoo.es) | LinuxUser#142755 - SuSE Linux 8.0 ZARALINUX http://www.zaralinux.org | "La ignorancia se apodera de quien PYTANDO http://pytando.sf.net | se contenta con lo que sabe" PGPKEY: mailto:chemacortes en wanadoo.es?subject=__PGPKEY__ -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQE85qvRHLTQrABk8H0RAn/2AKDfeNKlslR0bPi6Xmsah8H/pSLy1gCg9JsV 6J51B/d0Q4edszAN8PpK+Aw= =1bsz -----END PGP SIGNATURE----- From kmilo en softhome.net Sat May 18 21:47:57 2002 From: kmilo en softhome.net (kmilo) Date: Sat, 18 May 2002 14:47:57 -0500 Subject: [Python-es] valor de la variable Message-ID: <20020518144757.40d94e72.kmilo@softhome.net> como hago para que las variables que se encuentran entre una cadena, den su valor y no el nombre de la variable. el problema es con la metodo mydb.query ya que le debo pasar una cadena, y quiero que tome el valor de la variable codigo import pg codigo = input("digite su codigo: ") mydb = pg.DB(dbname='mydb', host='localhost', user='kmilo') mydb.query(" INSERT INTO estudiante VALUES ('codigo') ") mydb.close() -- When I don't understand my code I don't complain about it, I code something and don't back to work with perl Kmilo Sended by Sylpheed in SuSe 7.3 Profesional Linux user number 269263. http://kmiloweb.netfirms.com/ From kmilo en softhome.net Sat May 18 21:52:05 2002 From: kmilo en softhome.net (kmilo) Date: Sat, 18 May 2002 14:52:05 -0500 Subject: existencia de una db postgres Message-ID: <20020518145205.4d05ef35.kmilo@softhome.net> como se puede saber si una base de datos (postgres) ya existe y si no es asi crearla todo antes de conectarse a alguna base de datos PDT: por el momento la estoy creando con os.system ("createdb mydb") -- When I don't understand my code I don't complain about it, I code something and don't back to work with perl Kmilo Sended by Sylpheed in SuSe 7.3 Profesional Linux user number 269263. http://kmiloweb.netfirms.com/ From kmilo en softhome.net Sat May 18 22:33:01 2002 From: kmilo en softhome.net (kmilo) Date: Sat, 18 May 2002 15:33:01 -0500 Subject: ahora que? In-Reply-To: <200205141325.g4EDP5a16393@spisa.act.uji.es> References: <200205141325.g4EDP5a16393@spisa.act.uji.es> Message-ID: <20020518153301.2134bae7.kmilo@softhome.net> OK. acabo de bajar > - "How to Think Like a Computer Scientist" > - "Dive into Python" y la coleccion de los py-howto ahora es cuestion de ponerme a leer On Tue, 14 May 2002 9:15:21 -0000 Chema Cortes wrote: > Hola, kmilo: > > Es difícil responderte sin conocer cuáles son tus intereses. > > Parece que lo más lógico a partir de aquí es que te leas algún libro más > especializado. Aquí te pongo algunos que puedes pillar de internet: > > - "How to Think Like a Computer Scientist" > http://www.greenteapress.com/thinkpython.html > > - "Dive into Python" http://www.diveintopython.org (en proceso de traducción > en http://www.diveintopython.org/es/) > > También puedes revisar los artículos de "Charming Python" > (http://gnosis.cx/publish/tech_index_cp.html) o la relación semanal de URLs > de "Daily Python-URL" (http://www.pythonware.com/daily/) en busca de ideas. > > En fin, que una vez que has empezado no deberías pararte y aplicar lo que > has aprendido en algún proyecto. Mira en sourceforge.net a ver si hay alguno > que te pueda interesar. > > > Saludos, > -- > Chema Cortes (chemacortes en wanadoo.es) | LinuxUser#142755 - SuSE Linux 8.0 > ZARALINUX http://www.zaralinux.org | La ignorancia se apodera de quien > PYTANDO http://pytando.sf.net | se contenta con lo que sabe > > > > --------- Original message -------- > From: "kmilo" > To: "python-es en aditel.org" > Subject: [Python-es] ahora que? > Date: 05-13-02 21:50 > > cuando entre a la lista estaba leyendo el tutorial de python, luego de eso > trabaje un rato con la documentacion del Tkinter, me aleje de python por 3 o > 4 meses, hasta la semana anterior, ahora que he vuelto lo primero que hice > fue leer la Python Library Reference, pero despues de terminarla me quede un > inmenso sentido de > > Y ahora que hago? > > Asi que, cual creen ustedes que es el siguiente paso para seguir aprendiendo > este grandioso ( y gracias a dios, facil) lenguaje? > > -- > When I don't understand my code > I don't complain about it, > I code something and don't back > to work with perl > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo.py/python-es -- When I don't understand my code I don't complain about it, I code something and don't back to work with perl Kmilo Sended by Sylpheed in SuSe 7.3 Profesional Linux user number 269263. http://kmiloweb.netfirms.com/ From hernan en orgmf.com.ar Sun May 19 01:44:46 2002 From: hernan en orgmf.com.ar (Hernan Martinez Foffani) Date: Sun, 19 May 2002 01:44:46 +0200 Subject: valor de la variable In-Reply-To: <20020518144757.40d94e72.kmilo@softhome.net> References: <20020518144757.40d94e72.kmilo@softhome.net> Message-ID: > como hago para que las variables que se encuentran entre una > cadena, den su valor y no el nombre de la variable. > > el problema es con la metodo mydb.query ya que le debo pasar una > cadena, y quiero que tome el valor de la variable codigo > > codigo = input("digite su codigo: ") > .. > mydb.query(" INSERT INTO estudiante VALUES ('codigo') ") usa el operador % de cadenas de caracteres. ej: mydb.query("INSERT INTO estudiante VALUES ('%s')" % cadena ) en este caso en particular tener en cuenta: - comillas embebidas en la variable cadena - tambien podrias usar parametros de sql. From hernan en orgmf.com.ar Sun May 19 01:56:18 2002 From: hernan en orgmf.com.ar (Hernan Martinez Foffani) Date: Sun, 19 May 2002 01:56:18 +0200 Subject: existencia de una db postgres In-Reply-To: <20020518145205.4d05ef35.kmilo@softhome.net> References: <20020518145205.4d05ef35.kmilo@softhome.net> Message-ID: > como se puede saber si una base de datos (postgres) ya existe y > si no es asi crearla > > todo antes de conectarse a alguna base de datos > > PDT: por el momento la estoy creando con > os.system ("createdb mydb") tu solucion es buena. en general, las operaciones de chequeo de no-existencia y creacion deberian ser atomicos. si esa accion no existe, lo mas sensato es intentar "crear" y esperar el fallo si el objeto ya existe. From kmilo en softhome.net Sun May 19 02:14:29 2002 From: kmilo en softhome.net (kmilo) Date: Sat, 18 May 2002 19:14:29 -0500 Subject: valor de la variable In-Reply-To: References: <20020518144757.40d94e72.kmilo@softhome.net> Message-ID: <20020518191429.340c654a.kmilo@softhome.net> Gracias, al fin lo deje asi: -------------------------------------------------------- import pg import os codigo = int (raw_input("digite su codigo: ")) nombre = raw_input("digite su nombre: ") nombre = "'"+ nombre + "'" edad = int (raw_input("digite su edad: ")) ciudad = raw_input("digite su ciudad: ") ciudad = "'"+ ciudad + "'" #creo la base de datos os.system ("createdb mydb") #conecto a la db mydb = pg.DB(dbname='mydb', host='localhost', user='kmilo') #crea la tabla estudiante if not( "estudiante" in mydb.get_tables()): mydb.query( """ CREATE TABLE estudiante ( codigo int, nombre varchar(80), edad int, cidudad varchar(80) ); """) #da valores a los campos mydb.query (" INSERT INTO estudiante VALUES (%d, %s, %d, %s)" %(codigo, nombre, edad, ciudad ) ) #cierro la coneccion a la db mydb.close() --------------------------------------------------------- On Sun, 19 May 2002 01:44:46 +0200 "Hernan Martinez Foffani" wrote: > > como hago para que las variables que se encuentran entre una > > cadena, den su valor y no el nombre de la variable. > > > > el problema es con la metodo mydb.query ya que le debo pasar una > > cadena, y quiero que tome el valor de la variable codigo > > > > codigo = input("digite su codigo: ") > > .. > > mydb.query(" INSERT INTO estudiante VALUES ('codigo') ") > > usa el operador % de cadenas de caracteres. > ej: > > mydb.query("INSERT INTO estudiante VALUES ('%s')" % cadena ) > > en este caso en particular tener en cuenta: > - comillas embebidas en la variable cadena > - tambien podrias usar parametros de sql. > > > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo.py/python-es -- When I don't understand my code I don't complain about it, I code something and don't back to work with perl Kmilo Sended by Sylpheed in SuSe 7.3 Profesional Linux user number 269263. http://kmiloweb.netfirms.com/ From rapto en arrakis.es Sun May 19 19:16:54 2002 From: rapto en arrakis.es (Marcos =?ISO-8859-1?Q?S=E1nchez?= Provencio) Date: 19 May 2002 19:16:54 +0200 Subject: valor de la variable In-Reply-To: <20020518191429.340c654a.kmilo@softhome.net> References: <20020518144757.40d94e72.kmilo@softhome.net> <20020518191429.340c654a.kmilo@softhome.net> Message-ID: <1021828614.2516.9.camel@renata.macondo.pri> Sería mejor que te acostumbrases a utilizar un módulo de acceso a datos compatible DB API. Así, el conocimiento te valdría para cualquier módulos de acceso a datos (Oracle, PostgreSQL, ODBC...) Para PostgreSQL yo utilizo psycopg. Entre otras cosas, te permite no preocuparte de la conversión de las comillas dentro de las cadenas, fechas, etc., mediante el uso de parámetros SQL. El dom, 19-05-2002 a las 02:14, kmilo escribió: > Gracias, al fin lo deje asi: > > -------------------------------------------------------- > import pg > import os > > codigo = int (raw_input("digite su codigo: ")) > nombre = raw_input("digite su nombre: ") > nombre = "'"+ nombre + "'" Más pitonesco (y marginalmente más rápido) nombre = "'%s'" % nombre > edad = int (raw_input("digite su edad: ")) > ciudad = raw_input("digite su ciudad: ") > ciudad = "'"+ ciudad + "'" > > #creo la base de datos > os.system ("createdb mydb") > > #conecto a la db > mydb = pg.DB(dbname='mydb', host='localhost', user='kmilo') > > #crea la tabla estudiante > if not( "estudiante" in mydb.get_tables()): > mydb.query( """ > CREATE TABLE estudiante ( > codigo int, > nombre varchar(80), > edad int, > cidudad varchar(80) > ); > """) > > #da valores a los campos > mydb.query (" INSERT INTO estudiante VALUES (%d, %s, %d, %s)" %(codigo, nombre, edad, ciudad ) ) OJO No funciona si hay comillas simples en nombre o ciudad. > > #cierro la coneccion a la db > mydb.close() > > --------------------------------------------------------- > > > On Sun, 19 May 2002 01:44:46 +0200 > "Hernan Martinez Foffani" wrote: > > > > como hago para que las variables que se encuentran entre una > > > cadena, den su valor y no el nombre de la variable. > > > > > > el problema es con la metodo mydb.query ya que le debo pasar una > > > cadena, y quiero que tome el valor de la variable codigo > > > > > > codigo = input("digite su codigo: ") > > > .. > > > mydb.query(" INSERT INTO estudiante VALUES ('codigo') ") > > > > usa el operador % de cadenas de caracteres. > > ej: > > > > mydb.query("INSERT INTO estudiante VALUES ('%s')" % cadena ) > > > > en este caso en particular tener en cuenta: > > - comillas embebidas en la variable cadena > > - tambien podrias usar parametros de sql. > > > > > > > > _______________________________________________ > > Python-es mailing list > > Python-es en aditel.org > > http://listas.aditel.org/listinfo.py/python-es > > > -- > When I don't understand my code > I don't complain about it, > I code something and don't back > to work with perl > > Kmilo > > Sended by Sylpheed in SuSe 7.3 Profesional > Linux user number 269263. > http://kmiloweb.netfirms.com/ > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo.py/python-es From kmilo en softhome.net Sun May 19 21:20:15 2002 From: kmilo en softhome.net (kmilo) Date: Sun, 19 May 2002 14:20:15 -0500 Subject: valor de la variable In-Reply-To: <1021828614.2516.9.camel@renata.macondo.pri> References: <20020518144757.40d94e72.kmilo@softhome.net> <20020518191429.340c654a.kmilo@softhome.net> <1021828614.2516.9.camel@renata.macondo.pri> Message-ID: <20020519142015.5f7672c4.kmilo@softhome.net> gracias por la ayuda marcos, pero la verdad no entendi nada, me lo puedes explicar de forma que alguien como yo lo entienda? que es un módulo de acceso a datos? On 19 May 2002 19:16:54 +0200 Marcos Sánchez Provencio wrote: > Sería mejor que te acostumbrases a utilizar un módulo de acceso a datos > compatible DB API. Así, el conocimiento te valdría para cualquier > módulos de acceso a datos (Oracle, PostgreSQL, ODBC...) > > Para PostgreSQL yo utilizo psycopg. > > Entre otras cosas, te permite no preocuparte de la conversión de las > comillas dentro de las cadenas, fechas, etc., mediante el uso de > parámetros SQL. > > El dom, 19-05-2002 a las 02:14, kmilo escribió: > > Gracias, al fin lo deje asi: > > > > -------------------------------------------------------- > > import pg > > import os > > > > codigo = int (raw_input("digite su codigo: ")) > > nombre = raw_input("digite su nombre: ") > > nombre = "'"+ nombre + "'" > > Más pitonesco (y marginalmente más rápido) > nombre = "'%s'" % nombre > > > edad = int (raw_input("digite su edad: ")) > > ciudad = raw_input("digite su ciudad: ") > > ciudad = "'"+ ciudad + "'" > > > > #creo la base de datos > > os.system ("createdb mydb") > > > > #conecto a la db > > mydb = pg.DB(dbname='mydb', host='localhost', user='kmilo') > > > > #crea la tabla estudiante > > if not( "estudiante" in mydb.get_tables()): > > mydb.query( """ > > CREATE TABLE estudiante ( > > codigo int, > > nombre varchar(80), > > edad int, > > cidudad varchar(80) > > ); > > """) > > > > #da valores a los campos > > mydb.query (" INSERT INTO estudiante VALUES (%d, %s, %d, %s)" %(codigo, nombre, edad, ciudad ) ) > OJO No funciona si hay comillas simples en nombre o ciudad. > > > > > #cierro la coneccion a la db > > mydb.close() > > > > --------------------------------------------------------- > > > > > > On Sun, 19 May 2002 01:44:46 +0200 > > "Hernan Martinez Foffani" wrote: > > > > > > como hago para que las variables que se encuentran entre una > > > > cadena, den su valor y no el nombre de la variable. > > > > > > > > el problema es con la metodo mydb.query ya que le debo pasar una > > > > cadena, y quiero que tome el valor de la variable codigo > > > > > > > > codigo = input("digite su codigo: ") > > > > .. > > > > mydb.query(" INSERT INTO estudiante VALUES ('codigo') ") > > > > > > usa el operador % de cadenas de caracteres. > > > ej: > > > > > > mydb.query("INSERT INTO estudiante VALUES ('%s')" % cadena ) > > > > > > en este caso en particular tener en cuenta: > > > - comillas embebidas en la variable cadena > > > - tambien podrias usar parametros de sql. > > > > > > > > > > > > _______________________________________________ > > > Python-es mailing list > > > Python-es en aditel.org > > > http://listas.aditel.org/listinfo.py/python-es > > > > > > -- > > When I don't understand my code > > I don't complain about it, > > I code something and don't back > > to work with perl > > > > Kmilo > > > > Sended by Sylpheed in SuSe 7.3 Profesional > > Linux user number 269263. > > http://kmiloweb.netfirms.com/ > > > > _______________________________________________ > > Python-es mailing list > > Python-es en aditel.org > > http://listas.aditel.org/listinfo.py/python-es > > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo.py/python-es -- When I don't understand my code I don't complain about it, I code something and don't back to work with perl Kmilo Sended by Sylpheed in SuSe 7.3 Profesional Linux user number 269263. http://kmiloweb.netfirms.com/ From chemacortes en wanadoo.es Mon May 20 01:54:37 2002 From: chemacortes en wanadoo.es (Chema =?iso-8859-1?q?Cort=E9s?=) Date: Mon, 20 May 2002 01:54:37 +0200 Subject: valor de la variable In-Reply-To: <20020518191429.340c654a.kmilo@softhome.net> References: <20020518144757.40d94e72.kmilo@softhome.net> <20020518191429.340c654a.kmilo@softhome.net> Message-ID: <200205200154.40810.chemacortes@wanadoo.es> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 El Dom 19 May 2002 02:14, kmilo escribió: > Gracias, al fin lo deje asi: > > -------------------------------------------------------- > import pg > import os > > codigo = int (raw_input("digite su codigo: ")) > nombre = raw_input("digite su nombre: ") > nombre = "'"+ nombre + "'" > edad = int (raw_input("digite su edad: ")) > ciudad = raw_input("digite su ciudad: ") > ciudad = "'"+ ciudad + "'" Tan sólo un consejo: en lugar de utilizar variables sueltas, convendría dejar clara la estructura del registro de datos mediante un diccionario: registro={'codigo':0, 'nombre':"", 'edad':0, 'ciudad':"" } > #creo la base de datos > os.system ("createdb mydb") > > #conecto a la db > mydb = pg.DB(dbname='mydb', host='localhost', user='kmilo') > > #crea la tabla estudiante > if not( "estudiante" in mydb.get_tables()): > mydb.query( """ > CREATE TABLE estudiante ( > codigo int, > nombre varchar(80), > edad int, > cidudad varchar(80) > ); > """) > > #da valores a los campos > mydb.query (" INSERT INTO estudiante VALUES (%d, %s, %d, %s)" %(codigo, > nombre, edad, ciudad ) ) Para formar la query, emplea la variante del operador format '%' para diccionarios: mydb.query ("INSERT INTO estudiante VALUES (%(codigo)d, '%(nombre)s', %(edad)d, '%(ciudad)s')" % registro ) ) Es sólo aquí, cuando creas la cadena del query, cuando necesitas poner los apóstrofes. Como ya te han comentado, tendrás problemas con la query si usas este código para insertar datos que lleven apóstrofes intercalados. Por ejemplo: "L'Hospitalet", "O'Donell", "Rock'nd'Roll",... Para hacer bien las cosas, se suele emplear un interface (DB API) para realizar las queries. El modo normal es construir la query como un objeto al que le vas pasando los datos que quieres insertar. La orientación a objetos hace que los datos se conviertan "automágicamente" a los tipos de datos más apropiados al gestor de bases de datos que utilizes, de forma que te puedes despreocupar de hacerlo por tu cuenta. Échale un vistazo al módulo que te dice Marcos o a los que puedas encontrar por el Parnassus http://www.vex.net/parnassus/ Saludos, - -- Chema Cortes (chemacortes en wanadoo.es) | LinuxUser#142755 - SuSE Linux 8.0 ZARALINUX http://www.zaralinux.org | "La ignorancia se apodera de quien PYTANDO http://pytando.sf.net | se contenta con lo que sabe" PGPKEY: mailto:chemacortes en wanadoo.es?subject=__PGPKEY__ -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQE86DtAHLTQrABk8H0RAjh0AJ4tXnt4YmYk7+bon2M6F2l+m/KgRQCgixpb vA+prKmjv17tnbtkKEMCoUQ= =RjtI -----END PGP SIGNATURE----- From chemacortes en wanadoo.es Mon May 20 02:39:18 2002 From: chemacortes en wanadoo.es (Chema =?iso-8859-1?q?Cort=E9s?=) Date: Mon, 20 May 2002 02:39:18 +0200 Subject: [Python-es] valor de la variable In-Reply-To: <200205200154.40810.chemacortes@wanadoo.es> References: <20020518144757.40d94e72.kmilo@softhome.net> <20020518191429.340c654a.kmilo@softhome.net> <200205200154.40810.chemacortes@wanadoo.es> Message-ID: <200205200239.18410.chemacortes@wanadoo.es> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 El Lun 20 May 2002 01:54, Chema Cortés escribió: > Para hacer bien las cosas, se suele emplear un interface (DB API) para > realizar las queries. El modo normal es construir la query como un objeto >... Olvidaros de lo dicho. No he encontrado ningún módulo que ofrezca objetos "query" como el que he dicho. Parece ser que el modo "normal" es menos "automágico": http://www.python.org/topics/database/DatabaseAPI-2.0.html Saludos, - -- Chema Cortes (chemacortes en wanadoo.es) | LinuxUser#142755 - SuSE Linux 8.0 ZARALINUX http://www.zaralinux.org | "La ignorancia se apodera de quien PYTANDO http://pytando.sf.net | se contenta con lo que sabe" PGPKEY: mailto:chemacortes en wanadoo.es?subject=__PGPKEY__ -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQE86EW2HLTQrABk8H0RAhTjAKDzlNxvyn/zKfdjAe5I95/9ugjV+QCg7Kow 5cRFk9nG1R3rX04rpwBnwdY= =rV1A -----END PGP SIGNATURE----- From rapto en arrakis.es Mon May 20 10:05:40 2002 From: rapto en arrakis.es (rapto) Date: Mon, 20 May 2002 08:05:40 GMT Subject: [Python-es] valor de la variable Message-ID: Mira (en inglés) http://python.org/topics/database/DatabaseAPI-2.0.html Hay un estándar de acceso a datos desde Python llamado DB API (está en la versión 2). Si se utiliza uno cualquiera de estos módulos, las llamadas necesarias para conectarse a la BD, ejecutar consultas y recuperar resultados es siempre la misma, de tal modo que vale con aprender una para dominarlas todas. Usando uno de estos módulos, la dificultad para pasar de usar PostgreSQL a usar ODBC en Windows estaría minimizada, ya que, ene teoría, valdría con cambiar el instante en que se conecta uno a la base de datos. He aquí un ejemplo de uso (http://www.amk.ca/python/writing/DB-API.html) >>>cursor = db.cursor(); >>> # List all the seminars >>> cursor.execute('select * from Seminars') >>> cursor.fetchall() [(4, 'Web Commerce', 300.0, 26), (1, 'Python Programming', 200.0, 15), (3, 'Socket Programming', 475.0, 7), (2, 'Intro to Linux', 100.0, 32), ] Este código funcionaría con cualquier módulo de acceso a datos compatible DB API. Sigue preguntando, ya verás la factura ;-) ----- Mensaje Original ----- Remitente: kmilo Fecha: Domingo, Mayo 19, 2002 9:20 pm Asunto: Re: [Python-es] valor de la variable > gracias por la ayuda marcos, pero la verdad no entendi nada, me lo > puedes explicar de forma que alguien como yo lo entienda? > > > que es un módulo de acceso a datos? > > On 19 May 2002 19:16:54 +0200 > Marcos Sánchez Provencio wrote: > > > Sería mejor que te acostumbrases a utilizar un módulo de acceso > a datos > > compatible DB API. Así, el conocimiento te valdría para cualquier > > módulos de acceso a datos (Oracle, PostgreSQL, ODBC...) > > > > Para PostgreSQL yo utilizo psycopg. > > > > Entre otras cosas, te permite no preocuparte de la conversión de las > > comillas dentro de las cadenas, fechas, etc., mediante el uso de > > parámetros SQL. > > > > El dom, 19-05-2002 a las 02:14, kmilo escribió: > > > Gracias, al fin lo deje asi: > > > > > > -------------------------------------------------------- > > > import pg > > > import os > > > > > > codigo = int (raw_input("digite su codigo: ")) > > > nombre = raw_input("digite su nombre: ") > > > nombre = "'"+ nombre + "'" > > > > Más pitonesco (y marginalmente más rápido) > > nombre = "'%s'" % nombre > > > > > edad = int (raw_input("digite su edad: ")) > > > ciudad = raw_input("digite su ciudad: ") > > > ciudad = "'"+ ciudad + "'" > > > > > > #creo la base de datos > > > os.system ("createdb mydb") > > > > > > #conecto a la db > > > mydb = pg.DB(dbname='mydb', host='localhost', user='kmilo') > > > > > > #crea la tabla estudiante > > > if not( "estudiante" in mydb.get_tables()): > > > mydb.query( """ > > > CREATE TABLE estudiante ( > > > codigo int, > > > nombre varchar(80), > > > edad int, > > > cidudad varchar(80) > > > ); > > > """) > > > > > > #da valores a los campos > > > mydb.query (" INSERT INTO estudiante VALUES (%d, %s, %d, %s)" > %(codigo, nombre, edad, ciudad ) ) > > OJO No funciona si hay comillas simples en nombre o ciudad. > > > > > > > > #cierro la coneccion a la db > > > mydb.close() > > > > > > --------------------------------------------------------- > > > > > > > > > On Sun, 19 May 2002 01:44:46 +0200 > > > "Hernan Martinez Foffani" wrote: > > > > > > > > como hago para que las variables que se encuentran entre > una > > > > > cadena, den su valor y no el nombre de la variable. > > > > > > > > > > el problema es con la metodo mydb.query ya que le debo > pasar una > > > > > cadena, y quiero que tome el valor de la variable codigo > > > > > > > > > > codigo = input("digite su codigo: ") > > > > > .. > > > > > mydb.query(" INSERT INTO estudiante VALUES ('codigo') ") > > > > > > > > usa el operador % de cadenas de caracteres. > > > > ej: > > > > > > > > mydb.query("INSERT INTO estudiante VALUES ('%s')" % cadena ) > > > > > > > > en este caso en particular tener en cuenta: > > > > - comillas embebidas en la variable cadena > > > > - tambien podrias usar parametros de sql. > > > > > > > > > > > > > > > > _______________________________________________ > > > > Python-es mailing list > > > > Python-es en aditel.org > > > > http://listas.aditel.org/listinfo.py/python-es > > > > > > > > > -- > > > When I don't understand my code > > > I don't complain about it, > > > I code something and don't back > > > to work with perl > > > > > > Kmilo > > > > > > Sended by Sylpheed in SuSe 7.3 Profesional > > > Linux user number 269263. > > > http://kmiloweb.netfirms.com/ > > > > > > _______________________________________________ > > > Python-es mailing list > > > Python-es en aditel.org > > > http://listas.aditel.org/listinfo.py/python-es > > > > > > _______________________________________________ > > Python-es mailing list > > Python-es en aditel.org > > http://listas.aditel.org/listinfo.py/python-es > > > -- > When I don't understand my code > I don't complain about it, > I code something and don't back > to work with perl > > Kmilo > > Sended by Sylpheed in SuSe 7.3 Profesional > Linux user number 269263. > http://kmiloweb.netfirms.com/ > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo.py/python-es > From mostroratas en yahoo.es Tue May 21 12:14:37 2002 From: mostroratas en yahoo.es (=?iso-8859-1?q?Attila=20Saorin?=) Date: Tue, 21 May 2002 12:14:37 +0200 (CEST) Subject: Dudas de principiante :) Message-ID: <20020521101437.52724.qmail@web20902.mail.yahoo.com> Saludos a todos, este es mi primer mensaje a la lista, soy novato en python, pero no programando. Tengo que escribir mi Proyecto Fin de Carrera en python, asi que es mi primer contacto con este lenguaje y tengo varias dudas, me he leido la GUIA DE APRENDIZAJE DE PYTHON (van Rossum) y he consultado en varias webs en espanol e ingles y no he encontrado algo claro. Voy por partes (todo esto en linux): 1) quisiera copiar un fichero de un sitio a otro, la unica solucion encontrada es abrir el origen y el destino y copiar todo de uno a otro (el que mas habla sobre esto es el enlace que habeis mandado de "how to think as Computer Scientist", de donde es esta solucion): def copyFile(oldFile, newFile): f1 = open(oldFile, "r") f2 = open(newFile, "w") while 1: text = f1.read(50) if text == "": break f2.write(text) f1.close() f2.close() return no me parece del todo bonita e imagino que podria hacerlo de alguna otra forma mas elegante, quizas hacer una llamada al sistema que haga la copia del fichero como tal? no se si es la mejor opcion, con un directorio completo seria igual? 1.1) dentro de esta opcion, para decirle que si ese fichero existe ya en destino que haga un backup del antiguo, creo que si deberia hacer una llamada a sistema rename, no? 1.2) para decir los directorios de origen y destino, simplemente pongo con comillas todo el path? "bin/origen.txt" "home/attila/destino.txt" asi? 2) para el mismo tema de ficheros, pero para el caso de tener que buscar un determinado texto en los ficheros para modificarlos, es decir, retocar ficheros de configuracion, no se como buscar una linea determinada, he intentado encontrar algo en la biblioteca de expresiones regulares, pero no me ha quedado claro como hacerlo: por ejemplo saber si en determinado fichero, nt.conf existe la linea que diga lo que sea, si existe veo que tiene y si no, aniado la linea que yo quiero. Veo que deberia abrir el fichero entero y meterlo en una variable y buscar a partir de ahi, pero tb. se dice que puede abrir el fichero para leer o escribir o hacer un append, pero lo normal es que yo quiera modificar una linea en medio, seria ents con "r+"? Bueno, no se si os han quedado claras mis dudas, si no, intentare explicarme mejor, espero que no sean demasiadas preguntas a la vez. Muchas gracias de antemano. Attila Saorin _______________________________________________________________ Do You Yahoo!? Yahoo! Messenger Comunicación instantánea gratis con tu gente. http://messenger.yahoo.es From zoso en demiurgo.org Tue May 21 12:57:13 2002 From: zoso en demiurgo.org (Esteban Manchado =?iso-8859-1?Q?Vel=E1zquez?=) Date: Tue, 21 May 2002 11:57:13 +0100 Subject: [Python-es] Dudas de principiante :) In-Reply-To: <20020521101437.52724.qmail@web20902.mail.yahoo.com> Message-ID: <5.1.0.14.0.20020521114222.00a2d730@www.demiurgo.org> At 12:14 21/05/02 +0200, you wrote: >[...] >1) quisiera copiar un fichero de un sitio a otro, la >unica solucion encontrada es abrir el origen y el >destino y copiar todo de uno a otro (el que mas habla >sobre esto es el enlace que habeis mandado de "how to >think as Computer Scientist", de donde es esta >solucion): >[...] >no me parece del todo bonita e imagino que podria >hacerlo de alguna otra forma mas elegante, quizas >hacer una llamada al sistema que haga la copia del >fichero como tal? no se si es la mejor opcion, con un >directorio completo seria igual? Depende de lo que quieras hacer, como todo. Supongo que lo puedes hacer así o quizás con algún paquete tipo File de Perl (lo siento, también soy novato en Python ;-P ). Acabo de encontrar un módulo llamado "shutil" que contiene una función de copia, no sé si esa es la que recomiendan los expertos. Parece bastante apropiado. >1.1) dentro de esta opcion, para decirle que si ese >fichero existe ya en destino que haga un backup del >antiguo, creo que si deberia hacer una llamada a >sistema rename, no? Pues supongo que sí, no creo que haya una función que haga *ambas* cosas. >1.2) para decir los directorios de origen y destino, >simplemente pongo con comillas todo el path? >"bin/origen.txt" "home/attila/destino.txt" asi? Tienes un ejemplo en http://pyspanishdoc.sourceforge.net/lib/shutil-example.html. Iba a decirte que sí, pero ver el ejemplo, me acaba de recordar que no deberías (en general) usar directamente los caracteres "/" en las rutas de los ficheros. Si te preocupa que funcione en Mac, Windows, etc., deberías usar "os.path.join('bin', 'origen.txt')". >2) para el mismo tema de ficheros, pero para el caso >de tener que buscar un determinado texto en los >ficheros para modificarlos, es decir, retocar ficheros >de configuracion, no se como buscar una linea >determinada, he intentado encontrar algo en la >biblioteca de expresiones regulares, pero no me ha >quedado claro como hacerlo: >por ejemplo saber si en determinado fichero, nt.conf >existe la linea que diga lo que sea, si existe veo que >tiene y si no, aniado la linea que yo quiero. Veo que >deberia abrir el fichero entero y meterlo en una >variable y buscar a partir de ahi, ¿? No creo que haga falta. No sé si Python tiene una manera mejor, pero yo leería el fichero, metiendo las líneas en uno temporal de salida, y añadiendo o cambiando las que quisiera mientras tanto. Al final, renombraría el temporal al fichero original. Tendrías que tener cuidado con los permisos del original, y podrías descartar el temporal si vieras que no ha sufrido ningún cambio. -- Esteban Manchado Velázquez - http://www.demiurgo.org No software patents in Europe! - eurolinux.org - proinnova.hispalinux.es Join Amnesty International - http://amnesty.org/actnow/join.htm From hernan en orgmf.com.ar Tue May 21 13:54:38 2002 From: hernan en orgmf.com.ar (Hernan Martinez Foffani) Date: Tue, 21 May 2002 13:54:38 +0200 Subject: Dudas de principiante :) In-Reply-To: <20020521101437.52724.qmail@web20902.mail.yahoo.com> References: <20020521101437.52724.qmail@web20902.mail.yahoo.com> Message-ID: > 1) quisiera copiar un fichero de un sitio a otro, la > unica solucion encontrada es abrir el origen y el > destino y copiar todo de uno a otro (el que mas habla > sobre esto es el enlace que habeis mandado de "how to > think as Computer Scientist", de donde es esta > solucion): > > def copyFile(oldFile, newFile): > .... etc... esta solucion no es portable. los archivos de lectura y escritura deberían abrirse como "rb" y "wb" respectivamente. > ... no me parece del todo bonita e imagino que podria > hacerlo de alguna otra forma mas elegante, quizas > hacer una llamada al sistema que haga la copia del > fichero como tal? ... import shutil shutil.copyfile(src, dst) y si querés experimentar one-liners ;-) def copyFile(oldFile, newFile): open(newFile, "wb").write(open(oldFile, "rb").read()) return ojo que esta versión lee todo el archivo en memoria antes de grabarlo. > ... no se si es la mejor opcion, con un > directorio completo seria igual? ??? directorio completo? > 1.1) dentro de esta opcion, para decirle que si ese > fichero existe ya en destino que haga un backup del > antiguo, creo que si deberia hacer una llamada a > sistema rename, no? import os os.rename(old, new) > 1.2) para decir los directorios de origen y destino, > simplemente pongo con comillas todo el path? > "bin/origen.txt" "home/attila/destino.txt" asi? si. pero no dejes de leer la documentación del módulo os.path > 2) para el mismo tema de ficheros, pero para el caso > de tener que buscar un determinado texto en los > ficheros para modificarlos, es decir, retocar ficheros > de configuracion, no se como buscar una linea > determinada, he intentado encontrar algo en la > biblioteca de expresiones regulares, pero no me ha > quedado claro como hacerlo: > > por ejemplo saber si en determinado fichero, nt.conf > existe la linea que diga lo que sea, si existe veo que > tiene y si no, aniado la linea que yo quiero. Veo que > deberia abrir el fichero entero y meterlo en una > variable y buscar a partir de ahi, .... depende de lo que quieras reemplazar no es necesario usar expresiones regulares. leido por ahí: hay quien ante un determinado problema piensa: --mmm... esto lo podría resolver usando expresiones regulares! pero no se da cuenta que ahora tiene DOS problemas! :-) a lo mejor te alcanza con busqueda y reemplazo simple en cadenas. >>> a = "modo=simple" >>> a.replace("simple","avanzado") 'modo=avanzado' >>> > .... pero tb. se dice > que puede abrir el fichero para leer o escribir o > hacer un append, pero lo normal es que yo quiera > modificar una linea en medio, seria ents con "r+"? no. lo del "r+" a vos no te sirve. solo te serviria si lo que vas a modificar es del mismo tamaño que original. por ejemplo, si en el archivo original nt.conf tenés: . . [seccion a] modo=simple procesos=monotarea . . y querés cambiar "simple" por "avanzado", usando "r+" el archivo final (en linux) te quedaría algo así: . . [seccion a] modo=avanzadorocesos=monotarea . . para archivos de configuración que se supone no son demasiado grandes y pueden ser manipulados en memoria, lo mas sencillo es usar sustituciones de cadenas de caracteres. > Bueno, no se si os han quedado claras mis dudas, si > no, intentare explicarme mejor, espero que no sean > demasiadas preguntas a la vez. > > Muchas gracias de antemano. de nada. ;-) -Hernan From chemacortes en wanadoo.es Tue May 21 09:30:09 2002 From: chemacortes en wanadoo.es (Chema Cortes) Date: Tue, 21 May 2002 7:30:09 -0000 Subject: Dudas de principiante :) Message-ID: <200205211201.g4LC1na07933@spisa.act.uji.es> Hola, Attila: Te respondo escuetamente, y por partes: 1) mírate el módulo 'shutil'. Tiene un ejemplo que copia ficheros de un directorio completo. 1.1) para hacer un rename usa 'os.rename' 1.2) la ruta se añade, como bien dices, al nombre del fichero. Es recomendable que no asumas una plataforma específica, y codifiques pensando más en general. Utiliza los métodos de 'os' y 'os.path' para contruir las rutas a los ficheros. 2) Mira el módulo 'ConfigParser' para manejar ficheros INI. Para insertar una nueva línea en medio de un fichero hay que reescribir todo el fichero. Espero que te sirva de aclaración. Saludos, -- Chema Cortes (chemacortes en wanadoo.es) | LinuxUser#142755 - SuSE Linux 8.0 ZARALINUX http://www.zaralinux.org | La ignorancia se apodera de quien PYTANDO http://pytando.sf.net | se contenta con lo que sabe --------- Original message -------- From: "Attila Saorin" To: "Lista de Pyhton" Subject: [Python-es] Dudas de principiante :) Date: 05-21-02 11:42 Saludos a todos, este es mi primer mensaje a la lista, soy novato en python, pero no programando. Tengo que escribir mi Proyecto Fin de Carrera en python, asi que es mi primer contacto con este lenguaje y tengo varias dudas, me he leido la GUIA DE APRENDIZAJE DE PYTHON (van Rossum) y he consultado en varias webs en espanol e ingles y no he encontrado algo claro. Voy por partes (todo esto en linux): 1) quisiera copiar un fichero de un sitio a otro, la unica solucion encontrada es abrir el origen y el destino y copiar todo de uno a otro (el que mas habla sobre esto es el enlace que habeis mandado de "how to think as Computer Scientist", de donde es esta solucion): def copyFile(oldFile, newFile): f1 = open(oldFile, "r") f2 = open(newFile, "w") while 1: text = f1.read(50) if text == "": break f2.write(text) f1.close() f2.close() return no me parece del todo bonita e imagino que podria hacerlo de alguna otra forma mas elegante, quizas hacer una llamada al sistema que haga la copia del fichero como tal? no se si es la mejor opcion, con un directorio completo seria igual? 1.1) dentro de esta opcion, para decirle que si ese fichero existe ya en destino que haga un backup del antiguo, creo que si deberia hacer una llamada a sistema rename, no? 1.2) para decir los directorios de origen y destino, simplemente pongo con comillas todo el path? "bin/origen.txt" "home/attila/destino.txt" asi? 2) para el mismo tema de ficheros, pero para el caso de tener que buscar un determinado texto en los ficheros para modificarlos, es decir, retocar ficheros de configuracion, no se como buscar una linea determinada, he intentado encontrar algo en la biblioteca de expresiones regulares, pero no me ha quedado claro como hacerlo: por ejemplo saber si en determinado fichero, nt.conf existe la linea que diga lo que sea, si existe veo que tiene y si no, aniado la linea que yo quiero. Veo que deberia abrir el fichero entero y meterlo en una variable y buscar a partir de ahi, pero tb. se dice que puede abrir el fichero para leer o escribir o hacer un append, pero lo normal es que yo quiera modificar una linea en medio, seria ents con "r+"? Bueno, no se si os han quedado claras mis dudas, si no, intentare explicarme mejor, espero que no sean demasiadas preguntas a la vez. Muchas gracias de antemano. Attila Saorin From mostroratas en yahoo.es Tue May 21 15:56:48 2002 From: mostroratas en yahoo.es (=?iso-8859-1?q?Attila=20Saorin?=) Date: Tue, 21 May 2002 15:56:48 +0200 (CEST) Subject: Dudas de principiante :) In-Reply-To: References: Message-ID: <20020521135648.9525.qmail@web20907.mail.yahoo.com> Joder que de cosas! gracias a todos por la ayuda. Esta claro que lo importante es saber donde buscar ;) mirare lo que me habeis dicho, no sabia que habia todo eso, a ver si sale :) Gracias de nuevo. Attila --- Hernan Martinez Foffani escribió: > > 1) quisiera copiar un fichero de un sitio a otro, la > > unica solucion encontrada es abrir el origen y el > > destino y copiar todo de uno a otro (el que mas habla > > sobre esto es el enlace que habeis mandado de "how to > > think as Computer Scientist", de donde es esta > > solucion): _______________________________________________________________ Do You Yahoo!? Yahoo! Messenger Comunicación instantánea gratis con tu gente. http://messenger.yahoo.es From kmilo en softhome.net Tue May 21 19:40:20 2002 From: kmilo en softhome.net (kmilo) Date: Tue, 21 May 2002 12:40:20 -0500 Subject: [Python-es] Dudas de principiante :) In-Reply-To: <20020521135648.9525.qmail@web20907.mail.yahoo.com> References: <20020521135648.9525.qmail@web20907.mail.yahoo.com> Message-ID: <20020521124020.20111db2.kmilo@softhome.net> ya que hablan tanto de archivos de configuracion seria bueno que miraras el codigo de iceme (un editor de menus para el icewm escrito en python) ya que lo este hace es precisamente escribir y leer archivos de configuracion http://iceme.sourceforge.net/ PDT: respecto a la cantidad de respuestas, acostumbrate somos una lista bastante dinamica. ! welcome board ¡ :-) On Tue, 21 May 2002 15:56:48 +0200 (CEST) Attila Saorin wrote: > Joder que de cosas! gracias a todos por la ayuda. Esta claro que lo importante es saber donde > buscar ;) mirare lo que me habeis dicho, no sabia que habia todo eso, a ver si sale :) > > Gracias de nuevo. > > Attila > > --- Hernan Martinez Foffani escribió: > > 1) quisiera copiar un fichero de > un sitio a otro, la > > > unica solucion encontrada es abrir el origen y el > > > destino y copiar todo de uno a otro (el que mas habla > > > sobre esto es el enlace que habeis mandado de "how to > > > think as Computer Scientist", de donde es esta > > > solucion): > > > _______________________________________________________________ > Do You Yahoo!? > Yahoo! Messenger > Comunicación instantánea gratis con tu gente. > http://messenger.yahoo.es > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo.py/python-es -- When I don't understand my code I don't complain about it, I code something and don't back to work with perl Kmilo Sended by Sylpheed in SuSe 7.3 Profesional Linux user number 269263. http://kmiloweb.netfirms.com/ From kmilo en softhome.net Tue May 21 23:37:03 2002 From: kmilo en softhome.net (kmilo) Date: Tue, 21 May 2002 16:37:03 -0500 Subject: valor de la variable In-Reply-To: References: Message-ID: <20020521163703.753badea.kmilo@softhome.net> OK, ya mire lo de la Database API-2.0 (ta bonito y es una muy buena idea) de modo que el modulo que debo usar ahora, es pgdb en ves de pg (pygresql) pero al llamarlo de consola paso esto: kmilo en linux:~> python Python 2.1.1 (#1, Sep 24 2001, 05:28:47) [GCC 2.95.3 20010315 (SuSE)] on linux2 Type "copyright", "credits" or "license" for more information. >>> import pgdb Traceback (most recent call last): File "", line 1, in ? File "/usr/lib/python2.1/site-packages/pgdb.py", line 65, in ? except ImportError: import DateTime ImportError: No module named DateTime >>> # al importarlo de nuevo la excepcion no es levantada >>> import pgdb >>> #al llamar el metodo connect >>> pgdb.connect() Traceback (most recent call last): File "", line 1, in ? AttributeError: 'pgdb' module has no attribute 'connect' pero en la cadena de documentacion del modulo dice: basic usage: pgdb.connect(connect_string) -> connection connect_string = 'host:database:user:password:opt:tty' All parts are optional. You may also pass host through password as keyword arguments. To pass a port, pass it in the host keyword parameter: pgdb.connect(host='localhost:5432') alguien tiene alguna idea para que esto funcione? On Mon, 20 May 2002 08:05:40 GMT rapto wrote: > Mira (en inglés) > http://python.org/topics/database/DatabaseAPI-2.0.html > > Hay un estándar de acceso a datos desde Python llamado DB API (está en > la versión 2). Si se utiliza uno cualquiera de estos módulos, las > llamadas necesarias para conectarse a la BD, ejecutar consultas y > recuperar resultados es siempre la misma, de tal modo que vale con > aprender una para dominarlas todas. Usando uno de estos módulos, la > dificultad para pasar de usar PostgreSQL a usar ODBC en Windows estaría > minimizada, ya que, ene teoría, valdría con cambiar el instante en que > se conecta uno a la base de datos. > > He aquí un ejemplo de uso (http://www.amk.ca/python/writing/DB-API.html) > >>>cursor = db.cursor(); > >>> # List all the seminars > >>> cursor.execute('select * from Seminars') > >>> cursor.fetchall() > [(4, 'Web Commerce', 300.0, 26), > (1, 'Python Programming', 200.0, 15), > (3, 'Socket Programming', 475.0, 7), > (2, 'Intro to Linux', 100.0, 32), > ] > > Este código funcionaría con cualquier módulo de acceso a datos > compatible DB API. > > Sigue preguntando, ya verás la factura ;-) > > ----- Mensaje Original ----- > Remitente: kmilo > Fecha: Domingo, Mayo 19, 2002 9:20 pm > Asunto: Re: [Python-es] valor de la variable > > > gracias por la ayuda marcos, pero la verdad no entendi nada, me lo > > puedes explicar de forma que alguien como yo lo entienda? > > > > > > que es un módulo de acceso a datos? > > > > On 19 May 2002 19:16:54 +0200 > > Marcos Sánchez Provencio wrote: > > > > > Sería mejor que te acostumbrases a utilizar un módulo de acceso > > a datos > > > compatible DB API. Así, el conocimiento te valdría para cualquier > > > módulos de acceso a datos (Oracle, PostgreSQL, ODBC...) > > > > > > Para PostgreSQL yo utilizo psycopg. > > > > > > Entre otras cosas, te permite no preocuparte de la conversión de las > > > comillas dentro de las cadenas, fechas, etc., mediante el uso de > > > parámetros SQL. > > > > > > El dom, 19-05-2002 a las 02:14, kmilo escribió: > > > > Gracias, al fin lo deje asi: > > > > > > > > -------------------------------------------------------- > > > > import pg > > > > import os > > > > > > > > codigo = int (raw_input("digite su codigo: ")) > > > > nombre = raw_input("digite su nombre: ") > > > > nombre = "'"+ nombre + "'" > > > > > > Más pitonesco (y marginalmente más rápido) > > > nombre = "'%s'" % nombre > > > > > > > edad = int (raw_input("digite su edad: ")) > > > > ciudad = raw_input("digite su ciudad: ") > > > > ciudad = "'"+ ciudad + "'" > > > > > > > > #creo la base de datos > > > > os.system ("createdb mydb") > > > > > > > > #conecto a la db > > > > mydb = pg.DB(dbname='mydb', host='localhost', user='kmilo') > > > > > > > > #crea la tabla estudiante > > > > if not( "estudiante" in mydb.get_tables()): > > > > mydb.query( """ > > > > CREATE TABLE estudiante ( > > > > codigo int, > > > > nombre varchar(80), > > > > edad int, > > > > cidudad varchar(80) > > > > ); > > > > """) > > > > > > > > #da valores a los campos > > > > mydb.query (" INSERT INTO estudiante VALUES (%d, %s, %d, %s)" > > %(codigo, nombre, edad, ciudad ) ) > > > OJO No funciona si hay comillas simples en nombre o ciudad. > > > > > > > > > > > #cierro la coneccion a la db > > > > mydb.close() > > > > > > > > --------------------------------------------------------- > > > > > > > > > > > > On Sun, 19 May 2002 01:44:46 +0200 > > > > "Hernan Martinez Foffani" wrote: > > > > > > > > > > como hago para que las variables que se encuentran entre > > una > > > > > > cadena, den su valor y no el nombre de la variable. > > > > > > > > > > > > el problema es con la metodo mydb.query ya que le debo > > pasar una > > > > > > cadena, y quiero que tome el valor de la variable codigo > > > > > > > > > > > > codigo = input("digite su codigo: ") > > > > > > .. > > > > > > mydb.query(" INSERT INTO estudiante VALUES ('codigo') ") > > > > > > > > > > usa el operador % de cadenas de caracteres. > > > > > ej: > > > > > > > > > > mydb.query("INSERT INTO estudiante VALUES ('%s')" % cadena ) > > > > > > > > > > en este caso en particular tener en cuenta: > > > > > - comillas embebidas en la variable cadena > > > > > - tambien podrias usar parametros de sql. > > > > > > > > > > > > > > > > > > > > _______________________________________________ > > > > > Python-es mailing list > > > > > Python-es en aditel.org > > > > > http://listas.aditel.org/listinfo.py/python-es > > > > > > > > > > > > -- > > > > When I don't understand my code > > > > I don't complain about it, > > > > I code something and don't back > > > > to work with perl > > > > > > > > Kmilo > > > > > > > > Sended by Sylpheed in SuSe 7.3 Profesional > > > > Linux user number 269263. > > > > http://kmiloweb.netfirms.com/ > > > > > > > > _______________________________________________ > > > > Python-es mailing list > > > > Python-es en aditel.org > > > > http://listas.aditel.org/listinfo.py/python-es > > > > > > > > > _______________________________________________ > > > Python-es mailing list > > > Python-es en aditel.org > > > http://listas.aditel.org/listinfo.py/python-es > > > > > > -- > > When I don't understand my code > > I don't complain about it, > > I code something and don't back > > to work with perl > > > > Kmilo > > > > Sended by Sylpheed in SuSe 7.3 Profesional > > Linux user number 269263. > > http://kmiloweb.netfirms.com/ > > > > _______________________________________________ > > Python-es mailing list > > Python-es en aditel.org > > http://listas.aditel.org/listinfo.py/python-es > > > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo.py/python-es -- When I don't understand my code I don't complain about it, I code something and don't back to work with perl Kmilo Sended by Sylpheed in SuSe 7.3 Profesional Linux user number 269263. http://kmiloweb.netfirms.com/ From antoniojezu en hotmail.com Wed May 22 00:56:33 2002 From: antoniojezu en hotmail.com (JzXto) Date: Wed, 22 May 2002 00:56:33 +0200 Subject: valor de la variable References: <20020521163703.753badea.kmilo@softhome.net> Message-ID: > OK, ya mire lo de la Database API-2.0 (ta bonito y es una muy buena idea) > > de modo que el modulo que debo usar ahora, es pgdb en ves de pg (pygresql) pero al llamarlo de consola paso esto: > > kmilo en linux:~> python > Python 2.1.1 (#1, Sep 24 2001, 05:28:47) > [GCC 2.95.3 20010315 (SuSE)] on linux2 > Type "copyright", "credits" or "license" for more information. > >>> import pgdb > Traceback (most recent call last): > File "", line 1, in ? > File "/usr/lib/python2.1/site-packages/pgdb.py", line 65, in ? > except ImportError: import DateTime > ImportError: No module named DateTime > >>> # al importarlo de nuevo la excepcion no es levantada > >>> import pgdb > >>> #al llamar el metodo connect > >>> pgdb.connect() > Traceback (most recent call last): > File "", line 1, in ? > AttributeError: 'pgdb' module has no attribute 'connect' > > pero en la cadena de documentacion del modulo dice: > > basic usage: > > pgdb.connect(connect_string) -> connection > connect_string = 'host:database:user:password:opt:tty' > All parts are optional. You may also pass host through > password as keyword arguments. To pass a port, pass it in > the host keyword parameter: > pgdb.connect(host='localhost:5432') > > alguien tiene alguna idea para que esto funcione? En mi vida he utilizado un módulo de bd, pero he visto este error antes. Lo de DateTime ni idea, pero lo del connect prueba con pgdb.pgdb.connect o haciendo from pgdb import pgdb o * y realizando la llamada tal como la tienes. Por probar... Zalu2. ================================== "La única manera de predecir el futuro,... es crearlo" ================================== From chemacortes en wanadoo.es Wed May 22 05:31:24 2002 From: chemacortes en wanadoo.es (Chema Cortes) Date: Wed, 22 May 2002 3:31:24 -0000 Subject: [Python-es] valor de la variable Message-ID: <200205220743.g4M7hHa18161@spisa.act.uji.es> Hola, kmilo: El problema que tienes es que te falta el módulo mxDateTime. Bájatelo desde http://www.egenix.com/files/python/mxDateTime.html Yo estoy probando el pyPgSQL (http://pypgsql.sourceforge.net), sobre todo porque no tengo compilador C para compilarme el pydb. ¿Alguien ha comparado estos módulos y otros para aconsejar uno? Saludos, -- Chema Cortes (chemacortes en wanadoo.es) | LinuxUser#142755 - SuSE Linux 8.0 ZARALINUX http://www.zaralinux.org | La ignorancia se apodera de quien PYTANDO http://pytando.sf.net | se contenta con lo que sabe From rapto en arrakis.es Wed May 22 10:56:48 2002 From: rapto en arrakis.es (rapto) Date: Wed, 22 May 2002 08:56:48 GMT Subject: valor de la variable Message-ID: Habría que mirar también qué es exactamente pgdb. Igual no es un módulo, sino un paquete, o no está sacado de donde se debía. ----- Mensaje Original ----- Remitente: "JzXto" Fecha: Miércoles, Mayo 22, 2002 0:56 am Asunto: Re: [Python-es] valor de la variable > > > > OK, ya mire lo de la Database API-2.0 (ta bonito y es una muy > buena idea) > > > > de modo que el modulo que debo usar ahora, es pgdb en ves de pg > (pygresql)pero al llamarlo de consola paso esto: > > > > kmilo en linux:~> python > > Python 2.1.1 (#1, Sep 24 2001, 05:28:47) > > [GCC 2.95.3 20010315 (SuSE)] on linux2 > > Type "copyright", "credits" or "license" for more information. > > >>> import pgdb > > Traceback (most recent call last): > > File "", line 1, in ? > > File "/usr/lib/python2.1/site-packages/pgdb.py", line 65, in ? > > except ImportError: import DateTime > > ImportError: No module named DateTime > > >>> # al importarlo de nuevo la excepcion no es levantada > > >>> import pgdb > > >>> #al llamar el metodo connect > > >>> pgdb.connect() > > Traceback (most recent call last): > > File "", line 1, in ? > > AttributeError: 'pgdb' module has no attribute 'connect' > > > > pero en la cadena de documentacion del modulo dice: > > > > basic usage: > > > > pgdb.connect(connect_string) -> connection > > connect_string = > 'host:database:user:password:opt:tty'> All parts > are optional. You may also pass host through > > password as keyword arguments. To pass a port, > pass it in > > the host keyword parameter: > > pgdb.connect(host='localhost:5432') > > > > alguien tiene alguna idea para que esto funcione? > > En mi vida he utilizado un módulo de bd, pero he visto este error > antes. Lo > de DateTime ni idea, pero lo del connect prueba con > pgdb.pgdb.connect o > haciendo from pgdb import pgdb o * y realizando la llamada tal > como la > tienes. Por probar... > > Zalu2. > ================================== > "La única manera de predecir el futuro,... es crearlo" > ================================== > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo.py/python-es > From miquel en llover.org Wed May 22 11:02:41 2002 From: miquel en llover.org (Miquel Llover) Date: Wed, 22 May 2002 11:02:41 +0200 Subject: Lectura columnas de valores de un fichero Message-ID: <5.1.0.14.0.20020522105349.009f93b0@pop3.terra.es> Hola, Tengo que leer valores en columnas de un fichero de texto. Cada valor ocupa 4 caracteres y hay entre 3-8 valores en cada columna (hay unas 10.000 filas). Lo he probado haciendo f.read(4) (evitando los saltos de línea) y me tarda un montón. Hay algun modo mejor de hacerlo? Seria mejor hacer f.readline() y después buscar los valores dentro de la string? Hay alguna forma fácil de hacerlo? Se podria aplicar un parser XML aqui (aunque no hay ninguna etiqueta en el fichero)? Estoy empezando mi proyecto final de carrera con Python y PyQT, y aunque todo es nuevo para mi, la verdad es que me esta gustando bastante. Gracias de antemano, ------------------------------------------------ Miquel Llover ------------------------------------------------ From jaime en iaa.es Wed May 22 12:52:32 2002 From: jaime en iaa.es (Jaime Perea) Date: Wed, 22 May 2002 12:52:32 +0200 Subject: Lectura columnas de valores de un fichero In-Reply-To: <5.1.0.14.0.20020522105349.009f93b0@pop3.terra.es> References: <5.1.0.14.0.20020522105349.009f93b0@pop3.terra.es> Message-ID: <200205221053.MAA18501@iaa13u.iaa.csic.es> El Miércoles 22 Mayo 2002 11:02, Miquel Llover escribió: > Hola, > > Tengo que leer valores en columnas de un fichero de texto. Cada valor ocupa > 4 caracteres y hay entre 3-8 valores en cada columna (hay unas 10.000 > filas). Lo he probado haciendo f.read(4) (evitando los saltos de línea) y > me tarda un montón. Hay algun modo mejor de hacerlo? Seria mejor hacer > f.readline() y después buscar los valores dentro de la string? Hay alguna > forma fácil de > hacerlo? Se podria aplicar un parser XML aqui (aunque no hay ninguna > etiqueta en el fichero)? > > Estoy empezando mi proyecto final de carrera con Python y PyQT, y aunque > todo es nuevo para mi, la verdad es que me esta gustando bastante. > > Gracias de antemano, > > ------------------------------------------------ > Miquel Llover > > ------------------------------------------------ > > Hola: Prueba from string import * rec = split(f.read(),'\n') con lo que obtienes una lista rec[0],... en la que cada elemento es un record de tu fichero. Después extraer un pedazo de rec[k] es muy fácil. -- Jaime D. Perea Duarte. jaime en iaa.es Linux registered user #10472 Dep. Astrofisica Extragalactica. Instituto de Astrofisica de Andalucia (CSIC) Apdo. 3004, 18080 Granada, Spain. From julian.albo.garcia en xunta.es Wed May 22 13:13:39 2002 From: julian.albo.garcia en xunta.es (julian.albo.garcia en xunta.es) Date: Wed, 22 May 2002 13:13:39 +0200 Subject: [Python-es] Lectura columnas de valores de un fichero Message-ID: > rec = split(f.read(),'\n') > con lo que obtienes una lista rec[0],... en la que cada elemento es un > record de tu fichero. Después extraer un pedazo de rec[k] es muy fácil. ¿No es mas eficiente rec= f.readlines () ? Salu2 From chemacortes en wanadoo.es Wed May 22 16:20:01 2002 From: chemacortes en wanadoo.es (Chema Cortes) Date: Wed, 22 May 2002 16:20:01 +0200 Subject: Lectura columnas de valores de un fichero Message-ID: > Hola, > > Tengo que leer valores en columnas de un fichero de texto. Cada valor ocupa > 4 caracteres y hay entre 3-8 valores en cada columna (hay unas 10.000 > filas). Lo he probado haciendo f.read(4) (evitando los saltos de línea) y > me tarda un montón. Hay algun modo mejor de hacerlo? Seria mejor hacer > f.readline() y después buscar los valores dentro de la string? Para ficheros tan grandes, es mejor leer bloques grandes y luego procesarlos en memoria. Lo ideal sería leer todo el fichero con f.read(), pero es mejor no abusar de los recursos cuando se tiene un fichero tan grande. Utiliza f.readline o f.readlines pasando como argumento la cantidad de bytes máxima para leer. Una vez que tengas una línea, bastará que emplees el rebanado de secuencias. Por ejemplo: lineas=f.readlines(100000) col=[ linea[0:4] for linea in lineas ] Así se obtendría una lista con la primera columna de 4 caracteres. (La lectura del fichero se limita a bloques de 100Kb de memoria). > Hay alguna > forma fácil de > hacerlo? Se podria aplicar un parser XML aqui (aunque no hay ninguna > etiqueta en el fichero)? Los parser de XML no están pensados para esto. Además existen dos API: DOM y SAX. Para ficheros grandes, el parse que hay que usar es el SAX (procesado secuencial), que es un "wrapper" de la utilidad 'expat'. Para esto, mejor utilizar el comando 'cut' o el awk. Creo que con el f.readlines no tendrías mayor problema. Si no aciertas con ello, concreta más el problema para que te podamos dar una solución más específica. > Estoy empezando mi proyecto final de carrera con Python y PyQT, y aunque > todo es nuevo para mi, la verdad es que me esta gustando bastante. Pues ánimo, y ya nos contarás. Saludos, -- Chema Cortes (chemacortes en wanadoo.es) | LinuxUser#142755 - SuSE Linux 8.0 ZARALINUX http://www.zaralinux.org | La ignorancia se apodera de quien PYTANDO http://pytando.sf.net | se contenta con lo que sabe _____________________________________________________________________ No olvides nada. Recuerda los cumpleaños, tus citas, tus cenas románticas y todo lo que quieras usando la Agenda personal de Wanadoo.es, desde cualquier lugar conectado a Internet. Visítala en http://www.wanadoo.es/agenda From rapto en arrakis.es Wed May 22 16:56:10 2002 From: rapto en arrakis.es (rapto) Date: Wed, 22 May 2002 14:56:10 GMT Subject: Lectura columnas de valores de un fichero Message-ID: <29284fb0.4fb02928@page.melange.net> Mira también xreadlines http://www.python.org/doc/current/lib/module-xreadlines.html Nuevo en la versión 2.1 Si el fichero es grande (me imagino que sí, porque dices que va lento) es más eficaz y menos duro con la memoria. ----- Mensaje Original ----- Remitente: julian.albo.garcia en xunta.es Fecha: Miércoles, Mayo 22, 2002 1:13 pm Asunto: Re: [Python-es] Lectura columnas de valores de un fichero > > > > rec = split(f.read(),'\n') > > > con lo que obtienes una lista rec[0],... en la que cada elemento > es un > > record de tu fichero. Después extraer un pedazo de rec[k] es muy > fácil. > ¿No es mas eficiente rec= f.readlines () ? > > Salu2 > > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo.py/python-es > From breakek en hotmail.com Tue May 21 18:33:55 2002 From: breakek en hotmail.com (Eugenio Gonzalez) Date: Tue, 21 May 2002 11:33:55 -0500 Subject: Hola soy nuevo quiero comunicarme Message-ID: De la manera mas atenta pido a Manuel Durán Aguete si me puede contactar a mi correo breakek en hotmail.com gracias ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From rkt en ifrance.com Thu May 23 14:18:49 2002 From: rkt en ifrance.com (Alfredo) Date: Thu, 23 May 2002 14:18:49 +0200 Subject: [Python-es] Duda y primer mensaje a la lista Message-ID: <3CECDE29.6080809@ifrance.com> Hola a todos, soy recién empezado en python, anoche mismo me puse por primera vez a intentar programar algo. Mi duda es la siguiente: Para ejecutar un programa en consola, ¿cómo indicaríamos que cojiera en una variable la(s) palabra(s) siguiente(s)? Ejemplo: python programa PARAMETROS Muchísimas gracias de antemano, un saludo a todos. Alfredo - rkt en ifrance.com ______________________________________________________________________________ ifrance.com, l'email gratuit le plus complet de l'Internet ! vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP... http://www.ifrance.com/_reloc/email.emailif From zoso en demiurgo.org Thu May 23 14:37:36 2002 From: zoso en demiurgo.org (Esteban Manchado =?iso-8859-1?Q?Vel=E1zquez?=) Date: Thu, 23 May 2002 13:37:36 +0100 Subject: Duda y primer mensaje a la lista In-Reply-To: <3CECDE29.6080809@ifrance.com> References: <3CECDE29.6080809@ifrance.com> Message-ID: <5.1.0.14.0.20020523133645.00a4bec0@www.demiurgo.org> At 14:18 23/05/02 +0200, you wrote: >Hola a todos, soy recién empezado en python, anoche mismo me puse por >primera vez a intentar programar algo. >Mi duda es la siguiente: >Para ejecutar un programa en consola, ¿cómo indicaríamos que cojiera en >una variable la(s) palabra(s) siguiente(s)? Ejemplo: python programa PARAMETROS La variable sys.argv es una lista con los parámetros. Tienes un ejemplo de uso en http://starship.python.net/crew/hinsen/MMTK/Manual/Examples/Trajectories/view_trajectory.py.html -- Esteban Manchado Velázquez - http://www.demiurgo.org No software patents in Europe! - freepatents.org - proinnova.hispalinux.es Join Amnesty International - http://amnesty.org/actnow/join.htm From rkt en ifrance.com Thu May 23 14:49:45 2002 From: rkt en ifrance.com (Alfredo) Date: Thu, 23 May 2002 14:49:45 +0200 Subject: Duda y primer mensaje a la lista References: <5.1.0.14.0.20020523133645.00a4bec0@www.demiurgo.org> Message-ID: <3CECE569.1090608@ifrance.com> Esteban Manchado Velázquez wrote: > At 14:18 23/05/02 +0200, you wrote: > >> Hola a todos, soy recién empezado en python, anoche mismo me puse por >> primera vez a intentar programar algo. >> Mi duda es la siguiente: >> Para ejecutar un programa en consola, ¿cómo indicaríamos que cojiera >> en una variable la(s) palabra(s) siguiente(s)? Ejemplo: python >> programa PARAMETROS > > > La variable sys.argv es una lista con los parámetros. Tienes un > ejemplo de uso en > > > http://starship.python.net/crew/hinsen/MMTK/Manual/Examples/Trajectories/view_trajectory.py.html > > > -- > Esteban Manchado Velázquez - http://www.demiurgo.org > No software patents in Europe! - freepatents.org - proinnova.hispalinux.es > Join Amnesty International - http://amnesty.org/actnow/join.htm > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo.py/python-es > Muchísimas gracias, ahora mismo me lo miro :) Una genial lista, por cierto! Siempre he visto una gran ayuda por parte de todos. Alfredo - rkt en ifrance.com ______________________________________________________________________________ ifrance.com, l'email gratuit le plus complet de l'Internet ! vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP... http://www.ifrance.com/_reloc/email.emailif From rapto en arrakis.es Thu May 23 14:57:20 2002 From: rapto en arrakis.es (rapto) Date: Thu, 23 May 2002 12:57:20 GMT Subject: Duda y primer mensaje a la lista Message-ID: <7e27cca7.cca77e27@page.melange.net> ----- Mensaje Original ----- Remitente: Alfredo Fecha: Jueves, Mayo 23, 2002 2:49 pm Asunto: Re: [Python-es] Duda y primer mensaje a la lista > Esteban Manchado Velázquez wrote: [...] > > > Muchísimas gracias, ahora mismo me lo miro :) > Una genial lista, por cierto! Siempre he visto una gran ayuda por > parte > de todos. > > Alfredo - rkt en ifrance.com > Yo tengo la teoría de que a Python llegan los menos presumidos, por eso somos tan amables. Al fin y al cabo, ¿quién puede presumir de saber Python? Es demasiado fácil. Aplíquese esta historia al Perl, al Oracle... Un poco de polémica nunca sienta mal. Es que estoy leyendo a Sabater (Las razones del antimilitarismo y otras razones), debe ser por eso que estoy intelectualmente juguetón. From hernan en orgmf.com.ar Thu May 23 16:29:20 2002 From: hernan en orgmf.com.ar (Hernan Martinez Foffani) Date: Thu, 23 May 2002 16:29:20 +0200 Subject: Duda y primer mensaje a la lista In-Reply-To: <7e27cca7.cca77e27@page.melange.net> References: <7e27cca7.cca77e27@page.melange.net> Message-ID: rapto: > Yo tengo la teoría de que a Python llegan los menos presumidos, por eso > somos tan amables. Al fin y al cabo, ¿quién puede presumir de saber > Python? Es demasiado fácil. ¿los menos presumidos? no lo habia pensado pero es posible. mi idea era que debido a la poca (en terminos relativos a otros lenguajes) difusion de python los fans tratan de ofrecer una imagen de comunidad integradora. creo que tambien ayuda a que python no está "atornillado" en el ambito academico. o al menos su uso academico no esta afectado por elitismo. ojo que yo creo que se *puede* presumir de saber python. sacando el hecho que parecería un comportamiento ridiculo, hay ciertas partes del lenguaje que son complejas y requieren un estudio profundo. > Un poco de polémica nunca sienta mal. Es que estoy leyendo a Sabater > (Las razones del antimilitarismo y otras razones), debe ser por eso que > estoy intelectualmente juguetón. je.. todo bien.. :-) -Hernan From rkt en ifrance.com Thu May 23 18:28:02 2002 From: rkt en ifrance.com (Alfredo) Date: Thu, 23 May 2002 18:28:02 +0200 Subject: Primer programa (gran chorrada) con problemas Message-ID: <3CED1892.4060306@ifrance.com> Hola de nuevo a todo el mundo, os adjunto mi primer programa en python. El programa no hace nada más que decirte si un móvil pertenece a Movistar, Vodafone o Amena. Es una grandísima chorrada y de código muy simple, pero tal vez a algún novato como yo le sirva el código para algo :). El programa en sí funciona, podeis probarlo con: python mvlcheck.py 666555444 (o el móvil que querais) Una vez hayais bajado el programa y visto el código, aquí va la duda: ¿Por qué no funciona el " else: print """ texto """ " que tengo puesto? Por supuesto se aceptan sugerencias y críticas, es mi primer programa y todos los comentarios son buenos. Gracias de antemano Alfredo - rkt en ifrance.com ______________________________________________________________________________ ifrance.com, l'email gratuit le plus complet de l'Internet ! vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP... http://www.ifrance.com/_reloc/email.emailif From rkt en ifrance.com Thu May 23 18:31:43 2002 From: rkt en ifrance.com (Alfredo) Date: Thu, 23 May 2002 18:31:43 +0200 Subject: Ostia, el programa :) XD Message-ID: <3CED196F.40107@ifrance.com> Que fallo XD ------------ próxima parte ------------ An embedded and charset-unspecified text was scrubbed... Name: mvlcheck.py URL: From hernan en orgmf.com.ar Thu May 23 19:55:33 2002 From: hernan en orgmf.com.ar (Hernan Martinez Foffani) Date: Thu, 23 May 2002 19:55:33 +0200 Subject: Primer programa (gran chorrada) con problemas In-Reply-To: <3CED1892.4060306@ifrance.com> References: <3CED1892.4060306@ifrance.com> Message-ID: > Una vez hayais bajado el programa y visto el código, aquí va la duda: > ¿Por qué no funciona el " else: print """ texto """ " que tengo puesto? si llamas al programa con menos argumentos sys.argv[1] no es nulo (None), directamente no existe ese ítem. podés hacer: if len(sys.argv) == 2: ... etc ... además las 3 primeras comillas del print deberías ponerlas en la misma linea que el print. o sea, print """ No hombre ... etc ... una sentencia print sin argumentos muestra una linea en blanco. y no es error de sintaxis tener un string "suelto" en el codigo fuente. como sugerencia de estilo te diría: - que numero sea un parametro de mvlchk() y no una variable global - antes del if sys.argv.. argrega el control name == "__main__", de esa forma podés usar el mismo fuente como programa independiente o dentro del interprete de comandos python interactivo. - no dejes de leer la documentacion sobre los diccionarios. podrías reescribir la funcion mvlchk en un par de lineas de codigo. -Hernan From rkt en ifrance.com Thu May 23 20:13:27 2002 From: rkt en ifrance.com (Alfredo) Date: Thu, 23 May 2002 20:13:27 +0200 Subject: Primer programa (gran chorrada) con problemas References: Message-ID: <3CED3147.8090507@ifrance.com> Hernan Martinez Foffani wrote: >>Una vez hayais bajado el programa y visto el código, aquí va la duda: >>¿Por qué no funciona el " else: print """ texto """ " que tengo puesto? > > > si llamas al programa con menos argumentos sys.argv[1] no es nulo (None), > directamente no existe ese ítem. > podés hacer: > > if len(sys.argv) == 2: > ... etc ... Sí, ya lo hice y funciona perfectamente. Lo tendré en cuenta. > además las 3 primeras comillas del print deberías ponerlas en la misma > linea que el print. o sea, > > print """ > No hombre ... etc ... También lo hice, no había pensado en ello. > una sentencia print sin argumentos muestra una linea en blanco. > y no es error de sintaxis tener un string "suelto" en el codigo fuente. > > > como sugerencia de estilo te diría: > - que numero sea un parametro de mvlchk() y no una variable global Ya lo cambié pero, ¿cambiaría en algo la función del programa? ¿qué ventajas tiene así? > - antes del if sys.argv.. argrega el control name == "__main__", de > esa forma podés usar el mismo fuente como programa independiente o > dentro del interprete de comandos python interactivo. Esto también lo agregué aunque tampoco lo entendí. ¿Podrías explicarlo un poco más detallado? > - no dejes de leer la documentacion sobre los diccionarios. podrías > reescribir la funcion mvlchk en un par de lineas de codigo. Ahora mismito me pongo a leer todo lo que pueda sobre diccionarios :). Gracias! Alfredo - rkt en ifrance.com ______________________________________________________________________________ ifrance.com, l'email gratuit le plus complet de l'Internet ! vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP... http://www.ifrance.com/_reloc/email.emailif From hernan en orgmf.com.ar Thu May 23 20:32:42 2002 From: hernan en orgmf.com.ar (Hernan Martinez Foffani) Date: Thu, 23 May 2002 20:32:42 +0200 Subject: Primer programa (gran chorrada) con problemas In-Reply-To: <3CED3147.8090507@ifrance.com> References: <3CED3147.8090507@ifrance.com> Message-ID: > > como sugerencia de estilo te diría: > > - que numero sea un parametro de mvlchk() y no una variable global > > Ya lo cambié pero, ¿cambiaría en algo la función del programa? ¿qué > ventajas tiene así? bueno, como dije es una "sugerencia de estilo". :-) > > - antes del if sys.argv.. argrega el control name == "__main__", de > > esa forma podés usar el mismo fuente como programa independiente o > > dentro del interprete de comandos python interactivo. > > Esto también lo agregué aunque tampoco lo entendí. ¿Podrías explicarlo > un poco más detallado? la idea es que podrías llamar a tu programa: $ python mvlchk.py 5555050505 o dentro del interprete: >>> import mvlchk >>> mvlchk("6520505050") 'Amena' >>> es muy comodo mientras estás desarrollando, ya que podés modificar y probar sin salir de python. (especialmente si usás IDLE o similares) (¿ves el uso de parametros para la funcion mvlchk?) -Hernan From rkt en ifrance.com Thu May 23 21:54:19 2002 From: rkt en ifrance.com (Alfredo) Date: Thu, 23 May 2002 21:54:19 +0200 Subject: Primer programa (gran chorrada) con problemas References: Message-ID: <3CED48EB.3020406@ifrance.com> Hernan Martinez Foffani wrote: > > bueno, como dije es una "sugerencia de estilo". :-) Sí, ya entiendo, mucho más ordenado :) > > la idea es que podrías llamar a tu programa: > $ python mvlchk.py 5555050505 > o dentro del interprete: > >>>>import mvlchk >>>>mvlchk("6520505050") >>> > 'Amena' Ajá, ya entendí, no me había quedado claro antes pero ahora sí. > es muy comodo mientras estás desarrollando, ya que podés modificar y > probar sin salir de python. (especialmente si usás IDLE o similares) > (¿ves el uso de parametros para la funcion mvlchk?) > > -Hernan Como ya puse en mi anterior mail, ahora me miraré lo de los diccionarios (no tuve tiempo todavía). Gracias de nuevo Hernan, tu ayuda me está siendo muy muy útil :))))) Alfredo - rkt en ifrance.com Ire modificando el programa y mirando lo de hacerlo más corto y volveré a mandarlo a la lista. ______________________________________________________________________________ ifrance.com, l'email gratuit le plus complet de l'Internet ! vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP... http://www.ifrance.com/_reloc/email.emailif From rkt en ifrance.com Fri May 24 04:45:54 2002 From: rkt en ifrance.com (Alfredo) Date: Fri, 24 May 2002 04:45:54 +0200 Subject: De nuevo =?ISO-8859-1?Q?env=EDo_el_programa_con_algunos_?= =?ISO-8859-1?Q?cambios_y_nuevas_dudas?= Message-ID: <3CEDA962.3050407@ifrance.com> Hola a todos. Adjunto el programa que he envié anteriormente, ahora con algunos cambios. Hernan (me dirijo a él porque es el que me estaba ayudando), como podrás ver en el código, ahora he usado los diccionarios, como me dijiste pero no he sabido como abrebiar el código más de lo que está. También comentaste que lo podías poner en dos líneas, en resumen: ¿Alguien sabría como abrebiarlo? Aparte, esta línea funciona: if len(numero) != 9: print "El número debe tener al menos 9 carácteres" Pero si ejecuto mvlcheck 666 por ejemplo, da error, si excedo los 9 carácteres también da error en lugar de hacer el print. ¿Por qué? ¿Cómo arreglarlo? En un principio creo que está todo, lo siento si me expresé mal pero ya son muchas horas despierto y en breve me voy a la cama. Como siempre, se aceptan sugerencias. Gracias a todos y un saludo: Alfredo - rkt en ifrance.com ------------ próxima parte ------------ An embedded and charset-unspecified text was scrubbed... Name: mvlcheck.py URL: From miquel en llover.org Fri May 24 10:36:27 2002 From: miquel en llover.org (Miquel Llover) Date: Fri, 24 May 2002 10:36:27 +0200 Subject: =?iso-8859-1?Q?Re:_[Python-es]_De_nuevo_env=EDo_el_programa_?= con algunos cambios y nuevas dudas In-Reply-To: <3CEDA962.3050407@ifrance.com> References: <3CEDA962.3050407@ifrance.com> Message-ID: <5.1.0.14.0.20020524102042.00a49a90@pop3.terra.es> At 04:45 24/05/02, you wrote: >Hola a todos. Adjunto el programa que he envié anteriormente, ahora con >algunos cambios. >Hernan (me dirijo a él porque es el que me estaba ayudando), como podrás >ver en el código, ahora he usado los diccionarios, como me dijiste pero no >he sabido como abrebiar el código más de lo que está. También comentaste >que lo podías poner en dos líneas, en resumen: ¿Alguien sabría como abrebiarlo? >Aparte, esta línea funciona: > > if len(numero) != 9: print "El número debe tener al menos 9 carácteres" > >Pero si ejecuto mvlcheck 666 por ejemplo, da error, si excedo los 9 >carácteres también da error en lugar de hacer el print. ¿Por qué? ¿Cómo >arreglarlo? > >En un principio creo que está todo, lo siento si me expresé mal pero ya >son muchas horas despierto y en breve me voy a la cama. >Como siempre, se aceptan sugerencias. Gracias a todos y un saludo: > >Alfredo - rkt en ifrance.com > > >#!/usr/bin/env python > ># Programa que devuelve la compañía del número de tlf. móvil que introduzcamos ># Sé que es una tontería y el código sencillo pero a algún novato (como >yo) le servirá. ># Los prefijos los tenía de hace tiempo, la lista NO está actualizada ># Muchísimas gracias a la lista de python de Aditel por la ayuda prestada :) ># Alfredo (rkt en ifrance.com) > >import sys, string > >name = "__main__" Diria que no tienes que asignarle nada a "name". __name__ es un atributo que adquiere el valor del módulo donde se encuentra. Si tu modulo se llama mvlchk.py y lo llamas de la forma "$ python mvlchk.py", el atributo __name__ tendrá el valor "__main__". Al fina del todo de tu módulo mvlchk puedes poner un trozo de código de forma que si se ha llamado directamente, te ejecute una prueba (if __name__ = "__main__": ...). Si el modulo se invoca desde otro (otro programa que utilice el módulo mvlchk), dentro de "mvlchk", __name__ tendra como valor el nombre del propio módulo (no __main__) de forma que no se ejecutará tu trozo de código para pruebas. Me explico fatal, pero resumiendo: si llamas directamente a "x.py", las referencias a "__name__" dentro de "x.py" tendran como valor "__main__". Si llamas a "y.py" que a su vez llama a "x.py", las referencias a "__name__" dentro de "x.py" tendran un valor distinto de "__main__" ya que "x.py" no ha sido llamado directamente. Parece fácil, pero para explicarlo... Saludos! >company = { "Movistar" : "606 608 609 616 619 620 626 629 630 636 639 646 >649 650 659 660 669 676 679 680 686 689 690 696 699", > "Vodafone" : "600 607 610 617 627 666 667 670 677 678 687", > "Amena" : "651 652 653 654 655 656 657 658" } > >def mvlchk(): > numero = sys.argv[1] > if len(numero) != 9: print "El número debe tener al menos 9 carácteres" > else: prefijo = numero[:-6] > if prefijo in string.split(company["Movistar"]): > print "El número introducido pertenece a Movistar" > elif prefijo in string.split(company["Vodafone"]): > print "El número introducido pertenece a Vodafone" > elif prefijo in string.split(company["Amena"]): > print "El número introducido pertenece a Amena" > else: > print "Los carácteres introducidos no son números o es un número > no válido" > >if len(sys.argv) == 2: > mvlchk() >else: > print """ > No hombre, se usa así: > mvlcheck NUMERO > - > Ejemplo: mvlcheck 666555444 > """ >_______________________________________________ >Python-es mailing list >Python-es en aditel.org >http://listas.aditel.org/listinfo.py/python-es ------------------------------------------------ Miquel Llover ------------------------------------------------ From chemacortes en wanadoo.es Fri May 24 06:26:41 2002 From: chemacortes en wanadoo.es (Chema Cortes) Date: Fri, 24 May 2002 4:26:41 -0000 Subject: =?iso-8859-1?Q?RE=3A_=5BPython-es=5D_De_nuevo_=09env=EDo_el_programa_con_algunos__=09cambios_y_nuevas_dudas?= Message-ID: <200205240839.g4O8dDa10240@spisa.act.uji.es> Hola, Alfredo: En tu código, la función mvlchk() tienes dos bloques if. El primero comprueba que la longitud del número sea la correcta, pero no hay nada que evite ejecutar el segundo if. A parte de esto, el uso del __main__ está mal hecho. La idea es que chequees el nombre del módulo (variable __name__). Cuando __name__ sea "__main__" te estará indicando que el código ha sido llamado directamente desde la línea de comandos (o sea, que el módulo no ha sido "importado" desde otro módulo). En cuanto a lo de usar diccionarios...en fin, cada cual tiene sus gustos. Te pongo cómo arreglaría tu código. Es algo confuso, pero paciencia que al final se entiende. Fíjate dónde he colocado el "import sys", sólo necesario cuando se llama al módulo desde la línea de comandos. Un detalle más: he puesto un subrayado en el nombre del diccionario. Esto hace que esta variable particular de nuestro módulo quede oculta cuando lo importas. No tiene demasiada relevancia, casi es un "capricho estético" :-) Saludos, -- Chema Cortes (chemacortes en wanadoo.es) | LinuxUser#142755 - SuSE Linux 8.0 ZARALINUX http://www.zaralinux.org | La ignorancia se apodera de quien PYTANDO http://pytando.sf.net | se contenta con lo que sabe --------- Original message -------- From: "Alfredo" To: "python-es en aditel.org" Subject: [Python-es] De nuevo envío el programa con algunos cambios y nuevas dudas Date: 05-24-02 03:47 Hola a todos. Adjunto el programa que he envié anteriormente, ahora con algunos cambios. Hernan (me dirijo a él porque es el que me estaba ayudando), como podrás ver en el código, ahora he usado los diccionarios, como me dijiste pero no he sabido como abrebiar el código más de lo que está. También comentaste que lo podías poner en dos líneas, en resumen: ¿Alguien sabría como abrebiarlo? Aparte, esta línea funciona: if len(numero) != 9: print "El número debe tener al menos 9 carácteres" Pero si ejecuto mvlcheck 666 por ejemplo, da error, si excedo los 9 carácteres también da error en lugar de hacer el print. ¿Por qué? ¿Cómo arreglarlo? En un principio creo que está todo, lo siento si me expresé mal pero ya son muchas horas despierto y en breve me voy a la cama. Como siempre, se aceptan sugerencias. Gracias a todos y un saludo: Alfredo - rkt en ifrance.com ------------ próxima parte ------------ An embedded and charset-unspecified text was scrubbed... Name: mvlcheck2.py URL: From hernan en orgmf.com.ar Fri May 24 11:24:17 2002 From: hernan en orgmf.com.ar (Hernan Martinez Foffani) Date: Fri, 24 May 2002 11:24:17 +0200 Subject: =?us-ascii?Q?RE:_=5BPython-es=5D_De_nuevoenvio_el_programa_con_algunos_ca?= =?us-ascii?Q?mbios_y_nuevas_dudas?= In-Reply-To: <3CEDA962.3050407@ifrance.com> References: <3CEDA962.3050407@ifrance.com> Message-ID: > Hernan (me dirijo a el porque es el que me estaba ayudando), como podras > ver en el codigo, ahora he usado los diccionarios, como me dijiste pero > no he sabido como abrebiar el codigo mas de lo que esta. Tambien > comentaste que lo podias poner en dos lineas, en resumen: ?Alguien > sabria como abrebiarlo? primero una aclaracion. dije que se podria resumir en un "par de lineas" que en argentino no equivale exactamente a dos, puede ser un poquito mas. (mis disculpas por el localismo) :-D aclaro que no se trata de una competencia por menos lineas de codigo, eh? solo era una invitacion a que pruebes nuevas caracteristicas de python. prueba cambiando la estructura de datos, usando como indice de busqueda el dato ingresado. por ejemplo: d_codigos = { 606: "Amena", 607: "Movistar", 608: "Amena", ... etc ... } no hace falta tipear todo el diccionario asi, puedes crearlo una vez al comienzo del programa usando la lista de codigos que ya tienes. > Aparte, esta linea funciona: > > if len(numero) != 9: print "El numero debe tener al menos 9 caracteres" > > Pero si ejecuto mvlcheck 666 por ejemplo, da error, si excedo los 9 > caracteres tambien da error en lugar de hacer el print. ?Por que? ?Como > arreglarlo? como ya Chema lo modifico en su version faltaba la asignacion de argv[1] a numero. insisto con mi recomendacion de uar parametros de funciones. ej: def mvlchk(numero): en este caso el error lo hubieras detectado facilmente. cuando tengas que depurar programas grandes con muchas variables globales lo recordaras. ;-) con respecto a name == "__main__" lee con atencion los mensajes de Chema y Miquel. Saludos, -Hernan From gari en eibar.org Fri May 24 11:31:52 2002 From: gari en eibar.org (Garikoitz Araolaza) Date: Fri, 24 May 2002 11:31:52 +0200 Subject: Timeout en urllib Message-ID: <5.0.2.1.0.20020524111526.00acfec0@212.46.120.81> Hola: Viendo el "buen rollo" que hay en esta lista, me atrevo a lanzar un problemilla que estoy teniendo, para ver si alguien me puede echar una mano. Estoy utilizando la librería urllib en una aplicación para Zope que recoge una página en internet y después la proceso en local para presentarla en otro formato. (lo que se dice un parser) Para ello utilizo: f = urllib.urlopen(url) El problema surge de vez en cuando, cuando la página a la que accede no está disponible (caída del servidor, congestión en la red...) o tarda mucho en descargar. Ya os podéis imaginar. Zope llega al límite de MAX_THREADS y se bloquea. No hay forma de desbloquearlo si no se rearranca la máquina por línea de comandos He estado probando con un módulo que he encontrado por ahí (botlib) para comprobar la conexión antes de lanzar el urlopen, pero Zope se vuelve muy inestable y se cae (todavía no sé por qué) cada 4 minutos más o menos. Lo que me sorprende es que ninguna función de urllib tenga un timeout. ¿Hay alguna forma de solucionar esto? es decir, añadir un Timeout para que urlopen no se quede bloqueado para siempre jamás? Gracias de antemano. Gari _________________________________________________________ Aurki Euskara hutsezko bilatzailea http://www.aurki.com Zure laguntza behar dugu. Egin zaitez editore! From rkt en ifrance.com Fri May 24 11:38:51 2002 From: rkt en ifrance.com (Alfredo) Date: Fri, 24 May 2002 11:38:51 +0200 Subject: De nuevo gracias Message-ID: <3CEE0A2B.8010001@ifrance.com> Acabo de echar un vistazo al código que adjuntó Chema, hay alguna cosa que no entiendo pero bueno, ahora lo miraré más a fondo y probaré a ver que pasa :). Gracias también a Miquel y Hernan por sus ideas y explicaciones! Hay que ver... ¿Qué haría yo sin vosotros? XD Alfredo - rkt en ifrance.com ______________________________________________________________________________ ifrance.com, l'email gratuit le plus complet de l'Internet ! vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP... http://www.ifrance.com/_reloc/email.emailif From hernan en orgmf.com.ar Fri May 24 11:42:58 2002 From: hernan en orgmf.com.ar (Hernan Martinez Foffani) Date: Fri, 24 May 2002 11:42:58 +0200 Subject: Timeout en urllib In-Reply-To: <5.0.2.1.0.20020524111526.00acfec0@212.46.120.81> References: <5.0.2.1.0.20020524111526.00acfec0@212.46.120.81> Message-ID: hay una libreria de sockets con timeout. tengo entendido que es bastante transparente. pero no se si se puede aplicar a urllib. sospecho que aunque se pudiera quizás tendrías algun conflicto con los sockets de zope. http://www.timo-tasi.org/python/timeoutsocket.py From mostroratas en yahoo.es Fri May 24 11:51:43 2002 From: mostroratas en yahoo.es (=?iso-8859-1?q?Attila=20Saorin?=) Date: Fri, 24 May 2002 11:51:43 +0200 (CEST) Subject: Dudilla con el main Message-ID: <20020524095143.1349.qmail@web20909.mail.yahoo.com> Buenas a todos de nuevo ;) Ya resolvi mis problemas del otro dia con lo de copiar un fichero, comprobar si ya estaba y renombrarlo en ese caso, como veo que os gusta ver codigo ;D, os lo adjunto para que le echeis un vistazo y si teneis algo que comentar, pues ya sabeis, creo que lo entendereis bien, aunque la doc este en ingles, es muy sencillo. Mi duda es, despues de leer los mensajes sobre el codigo de Alfredo, ?donde aniadir la susodicha linea del main en mi codigo? es decir, para llamarlo desde dentro de python, si llamo con: $ python copiar.py no hay problema (dentro del codigo al final tengo unas pruebas) pero claro, si hago el import dentro del python, me dice que la funcion copy, no esta definida, entiendo bien porque, pero lo que no veo es donde comprobar que estoy dentro del entorno. __name__ == "__main__" import shutil, os.path, os def preserveOld (source): "This function is for rename the source with a .old" os.rename(source, "%s.old" % source) def fileExistBefore (source): "This function looks if the file exists before" return (os.path.isfile(source)) def dirExistBefore(source): "This function looks if the directory exists before" return (os.path.isdir(source)) def copy (source, destiny, datePreserve=1): "The function that really makes the copy of the file " if (os.path.isfile(source)): print "es un fichero" if (fileExistBefore (destiny)): preserveOld(destiny) if datePreserve: print 'hay q conservar la fecha' shutil.copy2(source, destiny) else: print 'no hace conservar la fecha' shutil.copy(source, destiny) else: print "es un dir" if (dirExistBefore(destiny)): preserveOld(destiny) shutil.copytree(source, destiny) #copy("/home/attila/python/pruebas/pila.py", "/home/attila/python/pila.py") esta ultima linea es un ejemplo de uso. He puesto varios prints para ver que hacia en las pruebas. Otra cosilla, para la doc, ?seguis esta regla de despues de la def de una funcion escribir una linea para saber que hace y luego si se quiere extenderos mas despues? Gracias. Attila _______________________________________________________________ Copa del Mundo de la FIFA 2002 Disfruta en vídeo de los mejores momentos desde tu ordenador. http://fifaworldcup.yahoo.com/fc/es/ From oscarm en iai.csic.es Fri May 24 12:31:28 2002 From: oscarm en iai.csic.es (oscarm) Date: Fri, 24 May 2002 12:31:28 +0200 Subject: [Python-es] compilando modulos nuevos Message-ID: <5.1.0.14.0.20020524121058.009ebec0@mercurio.iai.csic.es> Hola a todos Estoy intentando crear un modulo para acceder (en windows) desde python a un hardware. Mi intención es generar un pequeño conjunto de instrucciones que me ayuden a probar/diagnosticar/experimentar el hardware en modo consola. Había leido un poco sobre pyhton, por lo que pense puesto que es un lenguaje potente y esta pensado para ser embebido podria ser interesante "jugar" con él un poco. Las rutinas que acceden al HW estan en c y trato de compilarlas para crear una extension en python. He leido casi toda la documentación que he podido encontrar por ahi (aprovecho para felicitar a la gente que esta traduciendo la documentación original al castellano). Pero no consigo encontrar el archivo compile.py que se meciona en la "receta" de la documentacion. Cada vez que intento entrar en http://starship.python.net:9673/crew/da me da calabazas. Alguien tiene este archivo y me lo podria enviar ? Gracias, oscar. From gari en eibar.org Fri May 24 12:38:54 2002 From: gari en eibar.org (Garikoitz Araolaza) Date: Fri, 24 May 2002 12:38:54 +0200 Subject: Timeout en urllib In-Reply-To: References: <5.0.2.1.0.20020524111526.00acfec0@212.46.120.81> Message-ID: <5.0.2.1.0.20020524123702.00ac0130@212.46.120.81> Hernan Martinez >hay una libreria de sockets con timeout. tengo entendido que es >bastante transparente. pero no se si se puede aplicar a urllib. >sospecho que aunque se pudiera quizás tendrías algun conflicto con >los sockets de zope. > >http://www.timo-tasi.org/python/timeoutsocket.py Muchas gracias!! Creo que es mi solución, y por ahora no parece que choque con Zope. :-) Gari _________________________________________________________ Aurki Euskara hutsezko bilatzailea http://www.aurki.com Zure laguntza behar dugu. Egin zaitez editore! From morillas en posta.unizar.es Fri May 24 14:43:59 2002 From: morillas en posta.unizar.es (luis miguel) Date: Fri, 24 May 2002 14:43:59 +0200 Subject: Dudilla con el main In-Reply-To: <20020524095143.1349.qmail@web20909.mail.yahoo.com>; from mostroratas@yahoo.es on vie, may 24, 2002 at 11:51:43 +0200 References: <20020524095143.1349.qmail@web20909.mail.yahoo.com> Message-ID: <20020524144359.A1386@marmota> Asunto: [Python-es] Dudilla con el main Fecha: vie, may 24, 2002 at 11:51:43 +0200 Citando a Attila Saorin (mostroratas en yahoo.es): > Buenas a todos de nuevo ;) > > Ya resolvi mis problemas del otro dia con lo de copiar un fichero, comprobar si ya estaba y > renombrarlo en ese caso, como veo que os gusta ver codigo ;D, os lo adjunto para que le echeis un > vistazo y si teneis algo que comentar, pues ya sabeis, creo que lo entendereis bien, aunque la doc > este en ingles, es muy sencillo. > > Mi duda es, despues de leer los mensajes sobre el codigo de Alfredo, ?donde aniadir la susodicha > linea del main en mi codigo? es decir, para llamarlo desde dentro de python, si llamo con: > $ python copiar.py no hay problema (dentro del codigo al final tengo unas pruebas) > pero claro, si hago el import dentro del python, me dice que la funcion copy, no esta definida, > entiendo bien porque, pero lo que no veo es donde comprobar que estoy dentro del entorno. > > la llamada se pone antes de la llamada a la funcion que activa el programa. Tienes un ejemplo claro en el mensaje de Chema: if __name__=="__main__": import sys if len(sys.argv) == 3: copy (sys.argv[1], sys.argv[2]) #o como se utilice en tu caso. else: print MENSAJE_DE_ERROR From hernan en orgmf.com.ar Fri May 24 12:46:51 2002 From: hernan en orgmf.com.ar (Hernan Martinez Foffani) Date: Fri, 24 May 2002 12:46:51 +0200 Subject: [Python-es] Dudilla con el main In-Reply-To: <20020524095143.1349.qmail@web20909.mail.yahoo.com> Message-ID: > Mi duda es, despues de leer los mensajes sobre el codigo de > Alfredo, ?donde aniadir la susodicha > linea del main en mi codigo? es decir, para llamarlo desde dentro > de python, si llamo con: > $ python copiar.py no hay problema (dentro del codigo al final > tengo unas pruebas) > pero claro, si hago el import dentro del python, me dice que la > funcion copy, no esta definida, > entiendo bien porque, pero lo que no veo es donde comprobar que > estoy dentro del entorno. > > __name__ == "__main__" esta linea no hace falta. para saber si estás dentro del entorno (supongo que te referís al interprete interactivo de comandos python) harías: if __name__ == "__main__" : # aqui codigo a ejecutarse exclusivamente cuando el script # se invoca desde el sistema operativo. else : # aqui codigo a ejecutarse exclusivamente cuando el script # se importa desde el entorno interactivo de python. esta condición se suele agregar al final del fuente. desde el interprete harías: >>> import copiar >>> copiar.copy("archivo1", "archivo2") >>> > Otra cosilla, para la doc, ?seguis esta regla de despues de la > def de una funcion escribir una > linea para saber que hace y luego si se quiere extenderos mas despues? la regla es una conveniencia. el 'docstring' puede ocupar mas de una linea. el tooltips de IDLE (desconozco que hacen otros entornos graficos) solo muestra la primera. para ver todo el docstring: >>> help(fun) Help on function fun in module __main__: fun() bla.. bla.. bla.. bla.. ...etc... -Hernan From hernan en orgmf.com.ar Fri May 24 13:05:26 2002 From: hernan en orgmf.com.ar (Hernan Martinez Foffani) Date: Fri, 24 May 2002 13:05:26 +0200 Subject: compilando modulos nuevos In-Reply-To: <5.1.0.14.0.20020524121058.009ebec0@mercurio.iai.csic.es> References: <5.1.0.14.0.20020524121058.009ebec0@mercurio.iai.csic.es> Message-ID: > .... > Las rutinas que acceden al HW estan en c y trato de > compilarlas para > crear una extension en python. He leido casi toda la documentación que he > podido encontrar por ahi (aprovecho para felicitar a la gente que esta > traduciendo la documentación original al castellano). Pero no consigo > encontrar el archivo compile.py que se meciona en la "receta" de la > documentacion. > Cada vez que intento entrar en http://starship.python.net:9673/crew/da > me da calabazas. Alguien tiene este archivo y me lo podria enviar ? http://www.enme.ucalgary.ca/~nascheme/python/compile.py ni idea si te puede llegar a servir o no... -Hernan From antonio.beamud en agora-2000.com Fri May 24 09:22:31 2002 From: antonio.beamud en agora-2000.com (Antonio Beamud Montero) Date: 24 May 2002 09:22:31 +0200 Subject: De nuevo =?ISO-8859-1?Q?env=EDo?= el programa con algunos cambios y nuevas dudas In-Reply-To: <3CEDA962.3050407@ifrance.com> References: <3CEDA962.3050407@ifrance.com> Message-ID: <1022224952.758.3.camel@praga> Yo también metería numero como parámetro de la función mvlcheck, por que así luego la puedes usar como una libreria y no solo por linea de comandos... Salu2 El vie, 24-05-2002 a las 04:45, Alfredo escribió: > Hola a todos. Adjunto el programa que he envié anteriormente, ahora con > algunos cambios. > Hernan (me dirijo a él porque es el que me estaba ayudando), como podrás > ver en el código, ahora he usado los diccionarios, como me dijiste pero > no he sabido como abrebiar el código más de lo que está. También > comentaste que lo podías poner en dos líneas, en resumen: ¿Alguien > sabría como abrebiarlo? > Aparte, esta línea funciona: > > if len(numero) != 9: print "El número debe tener al menos 9 carácteres" > > Pero si ejecuto mvlcheck 666 por ejemplo, da error, si excedo los 9 > carácteres también da error en lugar de hacer el print. ¿Por qué? ¿Cómo > arreglarlo? > > En un principio creo que está todo, lo siento si me expresé mal pero ya > son muchas horas despierto y en breve me voy a la cama. > Como siempre, se aceptan sugerencias. Gracias a todos y un saludo: > > Alfredo - rkt en ifrance.com > ---- > > #!/usr/bin/env python > > # Programa que devuelve la compañía del número de tlf. móvil que introduzcamos > # Sé que es una tontería y el código sencillo pero a algún novato (como yo) le servirá. > # Los prefijos los tenía de hace tiempo, la lista NO está actualizada > # Muchísimas gracias a la lista de python de Aditel por la ayuda prestada :) > # Alfredo (rkt en ifrance.com) > > import sys, string > > name = "__main__" > company = { "Movistar" : "606 608 609 616 619 620 626 629 630 636 639 646 649 650 659 660 669 676 679 680 686 689 690 696 699", > "Vodafone" : "600 607 610 617 627 666 667 670 677 678 687", > "Amena" : "651 652 653 654 655 656 657 658" } > > def mvlchk(): > numero = sys.argv[1] > if len(numero) != 9: print "El número debe tener al menos 9 carácteres" > else: prefijo = numero[:-6] > if prefijo in string.split(company["Movistar"]): > print "El número introducido pertenece a Movistar" > elif prefijo in string.split(company["Vodafone"]): > print "El número introducido pertenece a Vodafone" > elif prefijo in string.split(company["Amena"]): > print "El número introducido pertenece a Amena" > else: > print "Los carácteres introducidos no son números o es un número no válido" > > if len(sys.argv) == 2: > mvlchk() > else: > print """ > No hombre, se usa así: > mvlcheck NUMERO > - > Ejemplo: mvlcheck 666555444 > """ > ---- > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo.py/python-es -- Microsoft merges technologoies: Windows CE + Windows ME + Windows NT = Windows CEMENT ---- Antonio Beamud Montero Agora Systems S.A. http://www.agoratechnologies.com From jileon en parcan.es Fri May 24 13:53:48 2002 From: jileon en parcan.es (jileon en parcan.es) Date: Fri, 24 May 2002 12:53:48 +0100 Subject: El programa de prefijo (otra vuelta de tuerca) Message-ID: <3CEE37DC.23496.646600E@localhost> Hola, he visto la pregunta de como hacer el programa de los prefijos más cortos usando dicionarios, y he hecho algunas modificaciones en ese sentido, además de "pythonizar" un poco más el programa, p.e. en vez de usar un mensaje de error, el programa ahora eleva una excepción, y alguna otra tontería. Espero que le sirva a alguien. Un saludo a todos. ------------------------------------------------------- #!/usr/bin/env python # Programa que devuelve la compañía del número de tlf. móvil que # introduzcamos. Sé que es una tontería y el código sencillo pero a algún # novato (como yo) le servirá. Los prefijos los tenía de hace tiempo, la # lista NO está actualizada. Muchísimas gracias a la lista de python de # Aditel por la ayuda prestada :) Alfredo (rkt en ifrance.com) import sys, string companies = { "Movistar" : string.split("606 608 609 616 619 620 626 629 630 636 639 646 649 650 659 660 669 676 679 680 686 689 690 696 699"), "Vodafone" : string.split("600 607 610 617 627 666 667 670 677 678 687"), "Amena" : string.split("651 652 653 654 655 656 657 658") } def mvlchk(numero): if len(numero) != 9: raise TypeError("El número debe tener al menos 9 carácteres") prefijo = numero[0:3] for company in companies.keys(): if prefijo in companies[company]: print "El número introducido pertenece a %s" % company break else: print "Los carácteres introducidos no son números o es un número no válido" if __name__ == '__main__': if len(sys.argv) == 2: mvlchk(sys.argv[1]) else: print """ No hombre, se usa así: mvlcheck NUMERO - Ejemplo: mvlcheck 666555444 """ From rkt en ifrance.com Fri May 24 14:27:52 2002 From: rkt en ifrance.com (Alfredo) Date: Fri, 24 May 2002 14:27:52 +0200 Subject: El programa de prefijo (otra vuelta de tuerca) References: <3CEE37DC.23496.646600E@localhost> Message-ID: <3CEE31C8.1060106@ifrance.com> jileon en parcan.es wrote: > Hola, he visto la pregunta de como hacer el programa de los > prefijos más cortos usando dicionarios, y he hecho algunas > modificaciones en ese sentido, además de "pythonizar" un poco > más el programa, p.e. en vez de usar un mensaje de error, el > programa ahora eleva una excepción, y alguna otra tontería. > Espero que le sirva a alguien. Un saludo a todos. > Sí, por supuesto que sirve, muchas gracias a todo el mundo por la ayuda prestada, ahora mismo voy a ponerme a probar :))) Alfredo - rkt en ifrance.com ______________________________________________________________________________ ifrance.com, l'email gratuit le plus complet de l'Internet ! vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP... http://www.ifrance.com/_reloc/email.emailif From rkt en ifrance.com Fri May 24 14:51:07 2002 From: rkt en ifrance.com (Alfredo) Date: Fri, 24 May 2002 14:51:07 +0200 Subject: Y seguimos con las dudas Message-ID: <3CEE373B.9040101@ifrance.com> Veamos, comparando el código de Chema y el otro que llegó: Chema: def mvlchk(numero): if len(numero) != 9: print "El número debe tener al menos 9 carácteres" else: prefijo=numero[:3] compfound="" for comp,prefs in _company.items(): if prefijo in prefs.split(): compfound=comp break if compfound: print "El número introducido pertenece a %s" % compfound else: print "Los carácteres introducidos no son números o es un número no válido" jileon en parcan.es: def mvlchk(numero): if len(numero) != 9: raise TypeError("El numero debe tener al menos 9 caracteres") prefijo = numero[0:3] for company in companies.keys(): if prefijo in companies[company]: print "El numero introducido pertenece a %s" % company break else: print "Los caracteres introducidos no son numeros o es un numero no valido" El _company.items y el companies.keys ¿harían lo mismo? ¿qué hace cada uno exactamente? print "El numero introducido pertenece a %s" % company ¿Qué es %s? ¿Por qué le sigue % company? Además, en los dos códigos también se ve un break, ¿por qué? Y cambiando un poco de tema, si con el if __name__=="__main__": puedo ejecutar el programa desde línea de comandos... ¿qué hacer para poder usarlo como módulo para otro programa? Sé que son muchas preguntas, si no podeis/quereis responderlas todas podeis remitirme a documentación. Gracias de nuevo. Alfredo - rkt en ifrance.com ______________________________________________________________________________ ifrance.com, l'email gratuit le plus complet de l'Internet ! vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP... http://www.ifrance.com/_reloc/email.emailif From manuel.duran en quantumgap.com Fri May 24 14:43:18 2002 From: manuel.duran en quantumgap.com (Manuel =?ISO-8859-1?Q?Dur=E1n?= Aguete) Date: 24 May 2002 14:43:18 +0200 Subject: El programa de prefijo (otra vuelta de tuerca) In-Reply-To: <3CEE37DC.23496.646600E@localhost> References: <3CEE37DC.23496.646600E@localhost> Message-ID: <1022244198.16023.13.camel@dt1010b.quantum.int> Hola, Como recomendacion yo le daria la vuelta al diccionario, por ejemplo: companies = { "PREFIJO1": Operador, ....... } de este modo te evitarias el bucle "for company in companies.keys()" y lo podrias sacar directamente. Saludos. El vie, 24-05-2002 a las 13:53, jileon en parcan.es escribió: > Hola, he visto la pregunta de como hacer el programa de los > prefijos más cortos usando dicionarios, y he hecho algunas > modificaciones en ese sentido, además de "pythonizar" un poco > más el programa, p.e. en vez de usar un mensaje de error, el > programa ahora eleva una excepción, y alguna otra tontería. > Espero que le sirva a alguien. Un saludo a todos. > > ------------------------------------------------------- > #!/usr/bin/env python > > # Programa que devuelve la compañía del número de tlf. móvil que > # introduzcamos. Sé que es una tontería y el código sencillo > pero a algún > # novato (como yo) le servirá. Los prefijos los tenía de hace > tiempo, la > # lista NO está actualizada. Muchísimas gracias a la lista de > python de > # Aditel por la ayuda prestada :) Alfredo (rkt en ifrance.com) > > import sys, string > > companies = { "Movistar" : string.split("606 608 609 616 619 620 > 626 629 630 636 639 646 649 650 659 660 669 676 679 680 686 689 > 690 696 699"), > "Vodafone" : string.split("600 607 610 617 627 666 667 670 > 677 678 687"), > "Amena" : string.split("651 652 653 654 655 656 657 658") > } > > def mvlchk(numero): > if len(numero) != 9: > raise TypeError("El número debe tener al menos 9 > carácteres") > prefijo = numero[0:3] > for company in companies.keys(): > if prefijo in companies[company]: > print "El número introducido pertenece a %s" % > company > break > else: > print "Los carácteres introducidos no son números o > es un número no válido" > > if __name__ == '__main__': > if len(sys.argv) == 2: > mvlchk(sys.argv[1]) > else: > print """ > No hombre, se usa así: > mvlcheck NUMERO > - > Ejemplo: mvlcheck 666555444 > """ > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo.py/python-es > From hernan en orgmf.com.ar Fri May 24 15:24:31 2002 From: hernan en orgmf.com.ar (Hernan Martinez Foffani) Date: Fri, 24 May 2002 15:24:31 +0200 Subject: Y seguimos con las dudas In-Reply-To: <3CEE373B.9040101@ifrance.com> References: <3CEE373B.9040101@ifrance.com> Message-ID: > El _company.items y el companies.keys ¿harían lo mismo? ¿qué hace cada > uno exactamente? .items() y .keys() son metodos de la clase dict. items() devuelve una lista cuyos elementos son los items del diccionario. cada uno es una tupla indice/valor. keys() devuelve una lista cuyos elementos son los indices del diccionario. ejemplo: >>> a = {2:"caca", 3:"pepe"} >>> a {2: 'caca', 3: 'pepe'} >>> a.items() [(2, 'caca'), (3, 'pepe')] >>> a.keys() [2, 3] >>> > print "El numero introducido pertenece a %s" % company > > ¿Qué es %s? ¿Por qué le sigue % company? el % es un operador donde si su primer operando (lo que está a su izquierda) es una cadena de caracteres retorna otra cadena igual a la primera pero con los parametros de sustitucion tomados del segundo operando uno a uno como elementos de una tupla. uf... es mas facil usarlo que explicarlo. jajaja. el %s es adonde se ubicaria el contenido de la variable company. la 's' de %s es porque company es un string. uso: cadena_a_sustituir % tupla_de_parametros ejemplo: >>> "hoy es %s %d del mes de %s" % ("viernes", 24, "mayo") 'hoy es viernes 24 del mes de mayo' >>> ademas de %s tienes %d, %f y otros para enteros, flotantes, etc. es algo que Python heredó del lenguaje C. > Además, en los dos códigos también se ve un break, ¿por qué? ?!? > Y cambiando un poco de tema, si con el if __name__=="__main__": puedo > ejecutar el programa desde línea de comandos... ¿qué hacer para poder > usarlo como módulo para otro programa? justamente el if __name__=="__main__": te permite no solo ejecutarlo desde el sistema operativo sino tambien usarlo como modulo. harias: import mvlchk mvlchk.mvlchk(numero) From gari en eibar.org Fri May 24 15:25:35 2002 From: gari en eibar.org (Garikoitz Araolaza) Date: Fri, 24 May 2002 15:25:35 +0200 Subject: El prefijo...(OFF-TOPIC) In-Reply-To: <1022244198.16023.13.camel@dt1010b.quantum.int> References: <3CEE37DC.23496.646600E@localhost> <3CEE37DC.23496.646600E@localhost> Message-ID: <5.0.2.1.0.20020524152249.00a8a550@212.46.120.81> Espero no fastidiarle la ilusión a nadie, y ya sé que el programa se está haciendo para aprender Python, pero por si alguno se le ocurre una aplicación práctica... ¿Sabéis que te puedes cambiar de operadora cambiando el número, con lo que ese programa no sirve de mucho en la vida real, verdad? ;-D Gari _________________________________________________________ Aurki Euskara hutsezko bilatzailea http://www.aurki.com Zure laguntza behar dugu. Egin zaitez editore! From morillas en posta.unizar.es Fri May 24 17:30:31 2002 From: morillas en posta.unizar.es (luis miguel) Date: Fri, 24 May 2002 17:30:31 +0200 Subject: Y seguimos con las dudas In-Reply-To: <3CEE373B.9040101@ifrance.com>; from rkt@ifrance.com on vie, may 24, 2002 at 02:51:07 +0200 References: <3CEE373B.9040101@ifrance.com> Message-ID: <20020524173031.A708@marmota> Asunto: [Python-es] Y seguimos con las dudas Fecha: vie, may 24, 2002 at 02:51:07 +0200 Citando a Alfredo (rkt en ifrance.com): > Veamos, comparando el código de Chema y el otro que llegó: > Chema: > > El _company.items y el companies.keys ¿harían lo mismo? ¿qué hace cada > uno exactamente? mira {}.items.__doc__ {}.keys.__doc__ > > print "El numero introducido pertenece a %s" % company > > ¿Qué es %s? ¿Por qué le sigue % company? echa un vistazo a un manual de python. No es difícil. Son instrucciones de sustitución en una cadena de caracteres. lm From mostroratas en yahoo.es Fri May 24 15:31:31 2002 From: mostroratas en yahoo.es (=?iso-8859-1?q?Attila=20Saorin?=) Date: Fri, 24 May 2002 15:31:31 +0200 (CEST) Subject: [Python-es] Y seguimos con las dudas In-Reply-To: <3CEE373B.9040101@ifrance.com> Message-ID: <20020524133131.55902.qmail@web20908.mail.yahoo.com> A ver, yo te voy a contestar lo que se, que no es mucho, pero por si acaso te sirve... --- Alfredo escribió: > Veamos, comparando el código de Chema y el otro que > El _company.items y el companies.keys ¿harían lo mismo? ¿qué hace cada > uno exactamente? Esto no estoy seguro, dejo a algun erudito ;) no vaya a ser que me equivoque. > print "El numero introducido pertenece a %s" % company > > ¿Qué es %s? ¿Por qué le sigue % company? a ver, esto es, si conoces C, lo mismo, quiere decir que vas a imprimir una variable, pero que el valor de dicha variabla lo pondras despues, y segun el tipo de lo que vas a imprimir pones algo despues del %, en este caso %s, es que vas a imprimir un string, podrias utilizar, %d, %c, segun el tipo que quieres imprimir, d-decimal, c-char, y asi los tipos que hay. el "% company% es, como te he explicado antes la o las variables que se insertaran en los campos que has dejado senialados con el %, podrias tener varios en el string, de la forma: print "El cuadrado de %d es: %d" % (x,x*x) que te imprimiria, si x=2, pues: El cuadrado de 2 es: 4 > Además, en los dos códigos también se ve un break, ¿por qué? el break es para que una vez encontrado el prefijo en uno de tus diccionarios, salga del bucle, ya que al estar dentro de un bucle for, sin el break, aun habiendo encontrado el prefijo y habertelo sacado por pantalla, seguiria iterando, con lo que es una tonteria seguir buscando algo que ya has encontrado, no? :) > Y cambiando un poco de tema, si con el if __name__=="__main__": puedo > ejecutar el programa desde línea de comandos... ¿qué hacer para poder > usarlo como módulo para otro programa? en principo con hacer un import desde el otro programa ya deberias poder. > Sé que son muchas preguntas, si no podeis/quereis responderlas todas > podeis remitirme a documentación. Gracias de nuevo. No se si conoces el libro: Guia de aprendizaje de Python, para estas cosas basicas esta muy bien, con ejemplos y asi luego lees mas cosas, yo me he leido entero y se las cosas por el, lo puedes ver on-line: http://lucas.hispalinux.es/Tutoriales/Python/Tutorial-Python/ o bajartelo en: en link anterior, subiendo un nivel, en varios formatos o en esta web hay varios enlaces a pdfs: http://usuarios.lycos.es/arturosa/documentacion.html > Alfredo - rkt en ifrance.com Attila _______________________________________________________________ Copa del Mundo de la FIFA 2002 Disfruta en vídeo de los mejores momentos desde tu ordenador. http://fifaworldcup.yahoo.com/fc/es/ From rkt en ifrance.com Fri May 24 15:38:48 2002 From: rkt en ifrance.com (Alfredo) Date: Fri, 24 May 2002 15:38:48 +0200 Subject: [Python-es] El programa de prefijo (otra vuelta de tuerca) References: <3CEE37DC.23496.646600E@localhost> <1022244198.16023.13.camel@dt1010b.quantum.int> Message-ID: <3CEE4268.6050308@ifrance.com> Manuel Durán Aguete wrote: > Hola, > > Como recomendacion yo le daria la vuelta al diccionario, > por ejemplo: companies = { "PREFIJO1": Operador, ....... } de este modo > te evitarias el bucle "for company in companies.keys()" y lo podrias > sacar directamente. > No entiendo como dices, ¿te refieres a ir poniendo "606": "Movistar" con TODOS los prefijos? ¿Podrías detallar un poco más? Gracias Alfredo - rkt en ifrance.com ______________________________________________________________________________ ifrance.com, l'email gratuit le plus complet de l'Internet ! vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP... http://www.ifrance.com/_reloc/email.emailif From rkt en ifrance.com Fri May 24 15:42:14 2002 From: rkt en ifrance.com (Alfredo) Date: Fri, 24 May 2002 15:42:14 +0200 Subject: Y seguimos con las dudas References: <3CEE373B.9040101@ifrance.com> <20020524173031.A708@marmota> Message-ID: <3CEE4336.4080108@ifrance.com> Acabo de leer las respuestas a mis dudas, vamos por partes. Hernan, con el break me refería a esto: for comp,prefs in _company.items(): if prefijo in prefs.split(): compfound=comp break Eso en el código de Chema, en el otro código también había uno. El break, ¿cortaría el if? ¿Tiene más usos aparte de bucles while? Gari, ¿te refieres a cambiar de operadora sin cambiar de número? No, no sabía que podía hacerse, de toda maneras es sólo para aprender y parece que está dando resultado. Luis Miguel, gracias a ti también, en cuanto tenga unos minutos libres me pongo a leer esa doc :) Por lo demás, saludos Alfredo - rkt en ifrance.com PD: He tardado en escribir a la lista pero... mis dudas parecen eternas XDD ______________________________________________________________________________ ifrance.com, l'email gratuit le plus complet de l'Internet ! vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP... http://www.ifrance.com/_reloc/email.emailif From mostroratas en yahoo.es Fri May 24 15:43:31 2002 From: mostroratas en yahoo.es (=?iso-8859-1?q?Attila=20Saorin?=) Date: Fri, 24 May 2002 15:43:31 +0200 (CEST) Subject: Dudilla con el main In-Reply-To: <20020524144359.A1386@marmota> References: <20020524144359.A1386@marmota> Message-ID: <20020524134331.98018.qmail@web20902.mail.yahoo.com> --- luis miguel escribió: > > la llamada se pone antes de la llamada a la funcion que activa el programa. > Tienes un ejemplo claro en el mensaje de Chema: > > if __name__=="__main__": > import sys > if len(sys.argv) == 3: > copy (sys.argv[1], sys.argv[2]) #o como se utilice en tu caso. > else: > print MENSAJE_DE_ERROR Vale, enteindo la idea, pero yo me enfrento con un problema con respecto al if, el numero de argumentos que le paso a mi funcion es variable, por eso tiene valores predefinidos, que si no se los paso mi programa cogera por defecto, asi que tendria que comprobrar distintos valores de argumentos para saber si esta bien, lo que me complica por si meten cosas que no deberia y el numero de argumentos esta bien. La otra cosa es que, debido a mi falta de habito, una vez dentro de python, tecleaba: copy (A,B) en vez de hacer: copiar.copy(A,B) como me ha dicho alguien, y asi, poniendo el main al ppio., va perfecto tanto desde dentro de python como llamando a la ejecucion del fichero. Gracias. Attila _______________________________________________________________ Copa del Mundo de la FIFA 2002 Disfruta en vídeo de los mejores momentos desde tu ordenador. http://fifaworldcup.yahoo.com/fc/es/ From hernan en orgmf.com.ar Fri May 24 15:45:09 2002 From: hernan en orgmf.com.ar (Hernan Martinez Foffani) Date: Fri, 24 May 2002 15:45:09 +0200 Subject: [Python-es] Y seguimos con las dudas In-Reply-To: <3CEE373B.9040101@ifrance.com> Message-ID: cambiando la estructura de datos, podría quedar algo así: import string _m = string.split("606 608 609 616 619 620 \ 626 629 630 636 639 646 649 650 659 660 669 676 679 680 686 689 \ 690 696 699") _v = string.split("600 607 610 617 627 666 667 670 677 678 687") _a = string.split("651 652 653 654 655 656 657 658") _companies = dict(zip(_a, ["Amena"]*len(_a)) + zip(_v, ["Vodafone"]*len(_v)) + zip(_m, ["Movistar"]*len(_m)) ) def mvlchk(numero): try: return _companies[numero] except KeyError: return "pues nada" From hernan en orgmf.com.ar Fri May 24 15:45:11 2002 From: hernan en orgmf.com.ar (Hernan Martinez Foffani) Date: Fri, 24 May 2002 15:45:11 +0200 Subject: El programa de prefijo (otra vuelta de tuerca) In-Reply-To: <3CEE4268.6050308@ifrance.com> References: <3CEE4268.6050308@ifrance.com> Message-ID: > No entiendo como dices, ¿te refieres a ir poniendo "606": "Movistar" con > TODOS los prefijos? ¿Podrías detallar un poco más? Gracias Sí. A eso nos referíamos Manuel y yo. ver codigo ejemplo en otro mail. -Hernan From mostroratas en yahoo.es Fri May 24 15:49:23 2002 From: mostroratas en yahoo.es (=?iso-8859-1?q?Attila=20Saorin?=) Date: Fri, 24 May 2002 15:49:23 +0200 (CEST) Subject: Y seguimos con las dudas In-Reply-To: <3CEE4336.4080108@ifrance.com> References: <3CEE4336.4080108@ifrance.com> Message-ID: <20020524134923.59684.qmail@web20908.mail.yahoo.com> --- Alfredo escribió: > Acabo de leer las respuestas a mis dudas, vamos por partes. > Hernan, con el break me refería a esto: > > for comp,prefs in _company.items(): > if prefijo in prefs.split(): > compfound=comp > break > > Eso en el código de Chema, en el otro código también había uno. El > break, ¿cortaría el if? ¿Tiene más usos aparte de bucles while? El if solo hace la comprobacion de la condicion, asi que el break no va a cortar al if, si no al for, que como va iterando por todo el diccionario, con el break salta y no sigue. > Gari, ¿te refieres a cambiar de operadora sin cambiar de número? No, no > sabía que podía hacerse, de toda maneras es sólo para aprender y parece > que está dando resultado. Si, si, por ley estan obligados y dejar que alguien que tenia un movil Movistar se pase a Amena pudiendo mantener el numero, Amena lo hacia gratis y Movistar y Vodafone no les molaba, pero vamos, que es por ley y puede hacerse y se hace :) Saludos. Attila _______________________________________________________________ Copa del Mundo de la FIFA 2002 Disfruta en vídeo de los mejores momentos desde tu ordenador. http://fifaworldcup.yahoo.com/fc/es/ From mostroratas en yahoo.es Fri May 24 15:55:29 2002 From: mostroratas en yahoo.es (=?iso-8859-1?q?Attila=20Saorin?=) Date: Fri, 24 May 2002 15:55:29 +0200 (CEST) Subject: [Python-es] Y seguimos con las dudas In-Reply-To: Message-ID: <20020524135529.63923.qmail@web20907.mail.yahoo.com> A mi no se me habria ocurrido ese tipo de datos, un poco rebuscado si se quiere, y creo que hace que el codigo sea mas dificil de leer, no? sobre todo para gente novata o que no conoce el lenguaje, en cambio con el inicial se ve mas claro, yo voto por la claridad, la opcion: ['Mo..':'606','607'...] me parece la mejor. Attila --- Hernan Martinez Foffani escribió: > cambiando la estructura de datos, podría quedar algo así: > > import string > > _m = string.split("606 608 609 616 619 620 \ > 626 629 630 636 639 646 649 650 659 660 669 676 679 680 686 689 \ > 690 696 699") > _v = string.split("600 607 610 617 627 666 667 670 677 678 687") > _a = string.split("651 652 653 654 655 656 657 658") > > > _companies = dict(zip(_a, ["Amena"]*len(_a)) + > zip(_v, ["Vodafone"]*len(_v)) + > zip(_m, ["Movistar"]*len(_m)) ) > > def mvlchk(numero): > try: > return _companies[numero] > except KeyError: > return "pues nada" > > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo.py/python-es _______________________________________________________________ Copa del Mundo de la FIFA 2002 Disfruta en vídeo de los mejores momentos desde tu ordenador. http://fifaworldcup.yahoo.com/fc/es/ From hernan en orgmf.com.ar Fri May 24 16:14:09 2002 From: hernan en orgmf.com.ar (Hernan Martinez Foffani) Date: Fri, 24 May 2002 16:14:09 +0200 Subject: [Python-es] Dudilla con el main In-Reply-To: <20020524134331.98018.qmail@web20902.mail.yahoo.com> Message-ID: > La otra cosa es que, debido a mi falta de habito, una vez dentro > de python, tecleaba: copy (A,B) > en vez de hacer: copiar.copy(A,B) como me ha dicho alguien, y > asi, poniendo el main al ppio., va > perfecto tanto desde dentro de python como llamando a la > ejecucion del fichero. siempre puedes hacer: >>> from copiar import copy >>> y luego directamente: >>> copy(A,B) >>> (ojo con los conflictos de nombre) -Hernan From hernan en orgmf.com.ar Fri May 24 16:16:15 2002 From: hernan en orgmf.com.ar (Hernan Martinez Foffani) Date: Fri, 24 May 2002 16:16:15 +0200 Subject: Y seguimos con las dudas In-Reply-To: <20020524135529.63923.qmail@web20907.mail.yahoo.com> References: <20020524135529.63923.qmail@web20907.mail.yahoo.com> Message-ID: > A mi no se me habria ocurrido ese tipo de datos, un poco > rebuscado si se quiere, y creo que hace > que el codigo sea mas dificil de leer, no? sobre todo para gente > novata o que no conoce el > lenguaje, en cambio con el inicial se ve mas claro, yo voto por > la claridad, la opcion: > ['Mo..':'606','607'...] me parece la mejor. mmmm... la idea detras de esa estructura es usar como indice del diccionario el dato por el que se hace las busquedas. no lo llamaria rebuscado, es un concepto bastante general. claro que se podría haber escrito _companies = { '606': 'Movistar', '607, 'Movistar', ... } y evitarse el dict(zip(...etc...)) pero habia que tipear mucho y le quitaría a Alfredo código con el que entretenerse :-) -Hernan From rkt en ifrance.com Fri May 24 16:38:16 2002 From: rkt en ifrance.com (Alfredo) Date: Fri, 24 May 2002 16:38:16 +0200 Subject: Y seguimos con las dudas References: Message-ID: <3CEE5058.2050500@ifrance.com> Hernan Martinez Foffani wrote: > cambiando la estructura de datos, podría quedar algo así: > > import string > > _m = string.split("606 608 609 616 619 620 \ > 626 629 630 636 639 646 649 650 659 660 669 676 679 680 686 689 \ > 690 696 699") > _v = string.split("600 607 610 617 627 666 667 670 677 678 687") > _a = string.split("651 652 653 654 655 656 657 658") > > > _companies = dict(zip(_a, ["Amena"]*len(_a)) + > zip(_v, ["Vodafone"]*len(_v)) + > zip(_m, ["Movistar"]*len(_m)) ) > > def mvlchk(numero): > try: > return _companies[numero] > except KeyError: > return "pues nada" > > De momento no sé que hace ese código, ahora si que estoy realmente perdido, ¿dónde encontrar documentación sobre "zip" y lo demás que pusiste? ¿Qué hace exactamente el código que pusiste? (la explicación, ahora lo probaré yo mismo) Una vez más miles de gracias a todos los que habeis contestado, estais sirviendo de gran ayuda :) Alfredo "La máquina de preguntar" - rkt en ifrance.com ______________________________________________________________________________ ifrance.com, l'email gratuit le plus complet de l'Internet ! vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP... http://www.ifrance.com/_reloc/email.emailif From hernan en orgmf.com.ar Fri May 24 17:09:47 2002 From: hernan en orgmf.com.ar (Hernan Martinez Foffani) Date: Fri, 24 May 2002 17:09:47 +0200 Subject: Y seguimos con las dudas In-Reply-To: <3CEE5058.2050500@ifrance.com> References: <3CEE5058.2050500@ifrance.com> Message-ID: > De momento no sé que hace ese código, ahora si que estoy realmente > perdido, ¿dónde encontrar documentación sobre "zip" y lo demás que > pusiste? ¿Qué hace exactamente el código que pusiste? (la explicación, > ahora lo probaré yo mismo) no es tan dificil. analiza con tranquilidad el código de adentro hacia afuera. - qué tienen _a, _v, _m - qué hace _a * len(_a) - que hace zip() (es un builtin, capitulo 2 de la Lib Ref.) - que hace el operador + con la salida de cada zip - qué hace dict() (otro builtin) -Hernan From manuel.duran en quantumgap.com Fri May 24 17:47:31 2002 From: manuel.duran en quantumgap.com (Manuel =?ISO-8859-1?Q?Dur=E1n?= Aguete) Date: 24 May 2002 17:47:31 +0200 Subject: El programa de prefijo (otra vuelta de tuerca) In-Reply-To: <3CEE4268.6050308@ifrance.com> References: <3CEE37DC.23496.646600E@localhost> <1022244198.16023.13.camel@dt1010b.quantum.int> <3CEE4268.6050308@ifrance.com> Message-ID: <1022255252.16023.25.camel@dt1010b.quantum.int> Hola, Exacto, de este modo pasarias de un bucle nxm donde (n es el numero de operador y m el numero de prefijos) a simplemente una busqueda por diccionario que son bastante rápidas puesto que se suelen implentar internamente con claves hash. Yo, que vengo del mundo perl, allí el diccionario (hash) es toda una institución :-DDDD. De todos modos todavia soy bastante novato en el mundo python, me gustaria tener tiempo para verlo más, pero ya se sabe... Saludos. > > No entiendo como dices, ¿te refieres a ir poniendo "606": "Movistar" con > TODOS los prefijos? ¿Podrías detallar un poco más? Gracias > > Alfredo - rkt en ifrance.com > > > ______________________________________________________________________________ > ifrance.com, l'email gratuit le plus complet de l'Internet ! > vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP... > http://www.ifrance.com/_reloc/email.emailif > > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo.py/python-es > From rkt en ifrance.com Fri May 24 19:23:35 2002 From: rkt en ifrance.com (Alfredo) Date: Fri, 24 May 2002 19:23:35 +0200 Subject: Y seguimos con las dudas References: Message-ID: <3CEE7717.1040000@ifrance.com> Hernan Martinez Foffani wrote: > no es tan dificil. > analiza con tranquilidad el código de adentro hacia afuera. > - qué tienen _a, _v, _m > - qué hace _a * len(_a) > - que hace zip() (es un builtin, capitulo 2 de la Lib Ref.) > - que hace el operador + con la salida de cada zip > - qué hace dict() (otro builtin) > > -Hernan He estado mirando muy por encima para esta noche ponerme algo de zip() pero de dict() no encontré nada en la Lib Ref. :( ¿Dónde encontrar más información sobre módulos, libs, etc en ESPAÑOL? ¿Dónde encontrar detallado por ejemplo todas las posibilidades de string.loquesea? (A ser posible en español también :P) Como siempre, Mr. Questions Alfredo - rkt en ifrance.com XD Gracias y siento mi pesadez :) ______________________________________________________________________________ ifrance.com, l'email gratuit le plus complet de l'Internet ! vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP... http://www.ifrance.com/_reloc/email.emailif From rapto en arrakis.es Fri May 24 22:41:34 2002 From: rapto en arrakis.es (Marcos =?ISO-8859-1?Q?S=E1nchez?= Provencio) Date: 24 May 2002 22:41:34 +0200 Subject: Y seguimos con las dudas In-Reply-To: <20020524133131.55902.qmail@web20908.mail.yahoo.com> References: <20020524133131.55902.qmail@web20908.mail.yahoo.com> Message-ID: <1022272895.2043.2.camel@renata.macondo.pri> El vie, 24-05-2002 a las 15:31, Attila Saorin escribió: >[...] > No se si conoces el libro: Guia de aprendizaje de Python, para estas cosas basicas esta muy bien, > con ejemplos y asi luego lees mas cosas, yo me he leido entero y se las cosas por el, lo puedes > ver on-line: http://lucas.hispalinux.es/Tutoriales/Python/Tutorial-Python/ > o bajartelo en: en link anterior, subiendo un nivel, en varios formatos o en esta web hay varios > enlaces a pdfs: http://usuarios.lycos.es/arturosa/documentacion.html > > > Alfredo - rkt en ifrance.com > > Os recuerdo que la versión más actual (y, como siempre, una petición de voluntarios) está en http://pyspanishdoc.sourceforge.net From rkt en ifrance.com Fri May 24 23:02:52 2002 From: rkt en ifrance.com (Alfredo) Date: Fri, 24 May 2002 23:02:52 +0200 Subject: Y seguimos con las dudas References: <20020524133131.55902.qmail@web20908.mail.yahoo.com> <1022272895.2043.2.camel@renata.macondo.pri> Message-ID: <3CEEAA7C.40304@ifrance.com> Marcos Sánchez Provencio wrote: > Os recuerdo que la versión más actual (y, como siempre, una petición de > voluntarios) está en > > http://pyspanishdoc.sourceforge.net > Si, pero el problema es este: Documentación de Python Release 2.0 16 de octubre de 2000 Y mucha documentación sigue en inglés, por ejemplo la documentación de las librerías está traducida a mitad pero bueno, algo es algo :). Gracias Alfredo - rkt en ifrance.com ______________________________________________________________________________ ifrance.com, l'email gratuit le plus complet de l'Internet ! vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP... http://www.ifrance.com/_reloc/email.emailif From rkt en ifrance.com Sat May 25 00:26:42 2002 From: rkt en ifrance.com (Alfredo) Date: Sat, 25 May 2002 00:26:42 +0200 Subject: Y seguimos con las dudas References: Message-ID: <3CEEBE22.2040100@ifrance.com> Ahora que tengo un rato libre, estoy ojeando el código y probando. > > no es tan dificil. > analiza con tranquilidad el código de adentro hacia afuera. > - qué tienen _a, _v, _m Cada una contiene una cadena con todos los prefijos > - qué hace _a * len(_a) Devuelve el contenido de _a multiplicado por el número de "items" dentro de _a > - que hace zip() (es un builtin, capitulo 2 de la Lib Ref.) > - que hace el operador + con la salida de cada zip > - qué hace dict() (otro builtin) Lo acabo de leer en la documentación, pero no me quedó muy claro, ahora releo e intento traducirlo. > > -Hernan > Alfredo - rkt en ifrance.com Con lo POCO que he probado python la verdad es que me está gustando y mucho. Saludos a la lista :) ______________________________________________________________________________ ifrance.com, l'email gratuit le plus complet de l'Internet ! vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP... http://www.ifrance.com/_reloc/email.emailif From rkt en ifrance.com Sat May 25 01:04:29 2002 From: rkt en ifrance.com (Alfredo) Date: Sat, 25 May 2002 01:04:29 +0200 Subject: Y seguimos con las dudas References: Message-ID: <3CEEC6FD.6030302@ifrance.com> Ahora que tengo un rato libre, estoy ojeando el código y probando. > > no es tan dificil. > analiza con tranquilidad el código de adentro hacia afuera. > - qué tienen _a, _v, _m Cada una contiene una cadena con todos los prefijos > - qué hace _a * len(_a) Devuelve el contenido de _a multiplicado por el número de "items" dentro de _a > - que hace zip() (es un builtin, capitulo 2 de la Lib Ref.) > - que hace el operador + con la salida de cada zip > - qué hace dict() (otro builtin) Lo acabo de leer en la documentación, pero no me quedó muy claro, ahora releo e intento traducirlo. > > -Hernan > Alfredo - rkt en ifrance.com Con lo POCO que he probado python la verdad es que me está gustando y mucho. Saludos a la lista :) ______________________________________________________________________________ ifrance.com, l'email gratuit le plus complet de l'Internet ! vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP... http://www.ifrance.com/_reloc/email.emailif From kmilo en softhome.net Fri May 24 21:39:25 2002 From: kmilo en softhome.net (kmilo) Date: Fri, 24 May 2002 14:39:25 -0500 Subject: Duda y primer mensaje a la lista In-Reply-To: <7e27cca7.cca77e27@page.melange.net> References: <7e27cca7.cca77e27@page.melange.net> Message-ID: <20020524143925.572c9186.kmilo@softhome.net> 1) una sintaxis sencilla, la cual hace que despues de escribir unas cuantas lineas de codigo, no salgas a la calle con el ceño fruncido 1) Un interprete abierto ganador del premio FSF (Free Software Foundation) 2) el ejemplo de la PSF (python Software Foundation) 3) un grupo de gente alrededor del mundo trabajando por extender su interprete, con el fin de tener un lenguaje mas poderoso, sin ningun interes economico ! mi experiencia con el Free software y similares, es que nadie sabe mas que el otro, simplemente ha tenido mas experiencia ¡ y entre esta experiencia, se encuentra la de ayudar a los demas a si como a el se le a ayudado On Thu, 23 May 2002 12:57:20 GMT rapto wrote: > > > ----- Mensaje Original ----- > Remitente: Alfredo > Fecha: Jueves, Mayo 23, 2002 2:49 pm > Asunto: Re: [Python-es] Duda y primer mensaje a la lista > > > Esteban Manchado Velázquez wrote: > [...] > > > > > > Muchísimas gracias, ahora mismo me lo miro :) > > Una genial lista, por cierto! Siempre he visto una gran ayuda por > > parte > > de todos. > > > > Alfredo - rkt en ifrance.com > > > Yo tengo la teoría de que a Python llegan los menos presumidos, por eso > somos tan amables. Al fin y al cabo, ¿quién puede presumir de saber > Python? Es demasiado fácil. > > Aplíquese esta historia al Perl, al Oracle... > > Un poco de polémica nunca sienta mal. Es que estoy leyendo a Sabater > (Las razones del antimilitarismo y otras razones), debe ser por eso que > estoy intelectualmente juguetón. > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo.py/python-es -- -- ( ¬)> / \ Linux, Rock, Python ahh y si vuelvo a comprar, comics. V ) > > Sended by Sylpheed in SuSe 7.3 Profesional Linux user number 269263. http://kmiloweb.netfirms.com/ From kmilo en softhome.net Fri May 24 21:39:58 2002 From: kmilo en softhome.net (kmilo) Date: Fri, 24 May 2002 14:39:58 -0500 Subject: Ostia, el programa :) XD In-Reply-To: <3CED196F.40107@ifrance.com> References: <3CED196F.40107@ifrance.com> Message-ID: <20020524143958.1b96ab8d.kmilo@softhome.net> en vez de comentar lo que hace el modulo, ponle entre triples comilla y asi queda como la cadena de documentacion del modulo """ Programa que devuelve la compañía del número de tlf. móvil que introduzcamos Sé que es una tontería y el código sencillo pero a algún novato (como yo) le servirá. Los prefijos los tenía de hace tiempo, la lista NO está actualizada Muchísimas gracias a la lista de python de Aditel por la ayuda prestada :) Alfredo (rkt en ifrance.com) """ la cual puedes acceder como mvlcheck.__doc__ para que se usa? #!/usr/bin/env python en vez de #!/usr/bin/python ! Bienvenido Alfredo ¡ On Thu, 23 May 2002 18:31:43 +0200 Alfredo wrote: > -- -- ( ¬)> / \ Linux, Rock, Python ahh y si vuelvo a comprar, comics. V ) > > Sended by Sylpheed in SuSe 7.3 Profesional Linux user number 269263. http://kmiloweb.netfirms.com/ From rkt en ifrance.com Sat May 25 02:06:05 2002 From: rkt en ifrance.com (Alfredo) Date: Sat, 25 May 2002 02:06:05 +0200 Subject: Ostia, el programa :) XD References: <3CED196F.40107@ifrance.com> <20020524143958.1b96ab8d.kmilo@softhome.net> Message-ID: <3CEED56D.4030809@ifrance.com> kmilo wrote: > en vez de comentar lo que hace el modulo, ponle entre triples comilla y a= > si queda como la cadena de documentacion del modulo > > """ Programa que devuelve la compa=F1=EDa del n=FAmero de tlf. m=F3vil qu= > e introduzcamos > S=E9 que es una tonter=EDa y el c=F3digo sencillo pero a alg=FAn novato (= > como yo) le servir=E1. > Los prefijos los ten=EDa de hace tiempo, la lista NO est=E1 actualizada > Much=EDsimas gracias a la lista de python de Aditel por la ayuda prestada= > :) > Alfredo (rkt en ifrance.com) > """ > > la cual puedes acceder como=20 > mvlcheck.__doc__ > Ok, muchas gracias, lo tendré en cuenta :) > para que se usa? > > #!/usr/bin/env python > > en vez de > > #!/usr/bin/python > Esa misma duda tengo yo! > > ! Bienvenido Alfredo =A1 > > Alfredo - rkt en ifrance.com ______________________________________________________________________________ ifrance.com, l'email gratuit le plus complet de l'Internet ! vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP... http://www.ifrance.com/_reloc/email.emailif From rapto en arrakis.es Sat May 25 10:42:25 2002 From: rapto en arrakis.es (Marcos =?ISO-8859-1?Q?S=E1nchez?= Provencio) Date: 25 May 2002 10:42:25 +0200 Subject: Y seguimos con las dudas In-Reply-To: <3CEEAA7C.40304@ifrance.com> References: <20020524133131.55902.qmail@web20908.mail.yahoo.com> References: <20020524133131.55902.qmail@web20908.mail.yahoo.com> <1022272895.2043.2.camel@renata.macondo.pri> <3CEEAA7C.40304@ifrance.com> Message-ID: <1022316145.1151.4.camel@renata.macondo.pri> El vie, 24-05-2002 a las 23:02, Alfredo escribió: > Marcos Sánchez Provencio wrote: > > Os recuerdo que la versión más actual (y, como siempre, una petición de > > voluntarios) está en > > > > http://pyspanishdoc.sourceforge.net > > > > Si, pero el problema es este: > > Documentación de Python > > Release 2.0 > 16 de octubre de 2000 > > Y mucha documentación sigue en inglés, por ejemplo la documentación de > las librerías está traducida a mitad pero bueno, algo es algo :). > Gracias > De nada, se hace lo que se puede. Mira, hoy mismo voy a traducir otro módulo. Lo de la versión 2.0 no es demasiado problemático, Python no cambia tan rápido. De todos modos me refería a que en todas partes dan publicidad al tutorial de la 1.5.2 (incluido el que publicaron en papel en d-linux, que a veces deberían buscar un poquito más las últimas versiones), cuando hay traducido mucho más, de la versión 2.0 encima. Chao From rapto en arrakis.es Sat May 25 12:24:34 2002 From: rapto en arrakis.es (Marcos =?ISO-8859-1?Q?S=E1nchez?= Provencio) Date: 25 May 2002 12:24:34 +0200 Subject: Y seguimos con las dudas In-Reply-To: <3CEEAA7C.40304@ifrance.com> References: <20020524133131.55902.qmail@web20908.mail.yahoo.com> References: <20020524133131.55902.qmail@web20908.mail.yahoo.com> <1022272895.2043.2.camel@renata.macondo.pri> <3CEEAA7C.40304@ifrance.com> Message-ID: <1022322275.2520.6.camel@renata.macondo.pri> El vie, 24-05-2002 a las 23:02, Alfredo escribió: > Marcos Sánchez Provencio wrote: > > Os recuerdo que la versión más actual (y, como siempre, una petición de > > voluntarios) está en > > > > http://pyspanishdoc.sourceforge.net > > > > Si, pero el problema es este: > > Documentación de Python > > Release 2.0 > 16 de octubre de 2000 > > Y mucha documentación sigue en inglés, por ejemplo la documentación de > las librerías está traducida a mitad pero bueno, algo es algo :). > Gracias > Ya están traducida la sección lib hasta la 3.16 - marshal. Sólo está disponible en HTML interactivo (y en el CVS). From rkt en ifrance.com Sat May 25 13:11:54 2002 From: rkt en ifrance.com (Alfredo) Date: Sat, 25 May 2002 13:11:54 +0200 Subject: Y seguimos con las dudas References: <20020524133131.55902.qmail@web20908.mail.yahoo.com> References: <20020524133131.55902.qmail@web20908.mail.yahoo.com> <1022272895.2043.2.camel@renata.macondo.pri> <3CEEAA7C.40304@ifrance.com> <1022322275.2520.6.camel@renata.macondo.pri> Message-ID: <3CEF717A.8000201@ifrance.com> Marcos Sánchez Provencio wrote: > El vie, 24-05-2002 a las 23:02, Alfredo escribió: > >>Marcos Sánchez Provencio wrote: >> >>>Os recuerdo que la versión más actual (y, como siempre, una petición de >>>voluntarios) está en >>> >>>http://pyspanishdoc.sourceforge.net >>> >> >>Si, pero el problema es este: >> >>Documentación de Python >> >>Release 2.0 >>16 de octubre de 2000 >> >>Y mucha documentación sigue en inglés, por ejemplo la documentación de >>las librerías está traducida a mitad pero bueno, algo es algo :). >>Gracias >> > > Ya están traducida la sección lib hasta la 3.16 - marshal. Sólo está > disponible en HTML interactivo (y en el CVS). > No me di cuenta de que eras el mismo que mantenía la web, gracias por continuar la traducción, si te interesa podría intentar traducir algo también... por poco que sea :) Supongo que en la misma url, ¿no? Gracias y saludos a toda la lista! Alfredo - rkt en ifrance.com ______________________________________________________________________________ ifrance.com, l'email gratuit le plus complet de l'Internet ! vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP... http://www.ifrance.com/_reloc/email.emailif From rapto en arrakis.es Sat May 25 13:11:04 2002 From: rapto en arrakis.es (Marcos =?ISO-8859-1?Q?S=E1nchez?= Provencio) Date: 25 May 2002 13:11:04 +0200 Subject: Y seguimos con las dudas In-Reply-To: <20020524135529.63923.qmail@web20907.mail.yahoo.com> References: <20020524135529.63923.qmail@web20907.mail.yahoo.com> Message-ID: <1022325064.2099.10.camel@renata.macondo.pri> Pues ahí va mi versión. Creo que es sencilla de entender para principiantes. ------------ próxima parte ------------ A non-text attachment was scrubbed... Name: xx.py Type: text/x-python Size: 496 bytes Desc: no disponible URL: From rkt en ifrance.com Sat May 25 13:30:20 2002 From: rkt en ifrance.com (Alfredo) Date: Sat, 25 May 2002 13:30:20 +0200 Subject: Y seguimos con las dudas References: <20020524133131.55902.qmail@web20908.mail.yahoo.com> References: <20020524133131.55902.qmail@web20908.mail.yahoo.com> <1022272895.2043.2.camel@renata.macondo.pri> <3CEEAA7C.40304@ifrance.com> <1022322275.2520.6.camel@renata.macondo.pri> Message-ID: <3CEF75CC.5090404@ifrance.com> Marcos Sánchez Provencio wrote: > El vie, 24-05-2002 a las 23:02, Alfredo escribió: > >>Marcos Sánchez Provencio wrote: >> >>>Os recuerdo que la versión más actual (y, como siempre, una petición de >>>voluntarios) está en >>> >>>http://pyspanishdoc.sourceforge.net >>> >> >>Si, pero el problema es este: >> >>Documentación de Python >> >>Release 2.0 >>16 de octubre de 2000 >> >>Y mucha documentación sigue en inglés, por ejemplo la documentación de >>las librerías está traducida a mitad pero bueno, algo es algo :). >>Gracias >> > > Ya están traducida la sección lib hasta la 3.16 - marshal. Sólo está > disponible en HTML interactivo (y en el CVS). > No me di cuenta de que eras el mismo que mantenía la web, gracias por continuar la traducción, si te interesa podría intentar traducir algo también... por poco que sea :) Supongo que en la misma url, ¿no? Gracias y saludos a toda la lista! Alfredo - rkt en ifrance.com ______________________________________________________________________________ ifrance.com, l'email gratuit le plus complet de l'Internet ! vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP... http://www.ifrance.com/_reloc/email.emailif From rapto en arrakis.es Sat May 25 13:31:34 2002 From: rapto en arrakis.es (Marcos =?ISO-8859-1?Q?S=E1nchez?= Provencio) Date: 25 May 2002 13:31:34 +0200 Subject: =?ISO-8859-1?Q?Traducci=F3n?= de la Subject: =?ISO-8859-1?Q?Traducci=F3n?= de la =?ISO-8859-1?Q?documentaci=F3n?= [was Re: Y seguimos con las dudas] In-Reply-To: <3CEF717A.8000201@ifrance.com> References: References: <20020524133131.55902.qmail@web20908.mail.yahoo.com> References: <20020524133131.55902.qmail@web20908.mail.yahoo.com> <1022272895.2043.2.camel@renata.macondo.pri> <3CEEAA7C.40304@ifrance.com> <1022322275.2520.6.camel@renata.macondo.pri> <3CEF717A.8000201@ifrance.com> Message-ID: <1022326295.2099.17.camel@renata.macondo.pri> Va con copia a todos, que cualquiera puede ayudar. El que quiera la experiencia completa de ser uno de los desarrolladores de software libre que cambiaremos el mundo algún día: * Te das de alta en sourceforge. * Me lo cuentas y te doy de alta en el proyecto. * Te sacas el fichero que quieres traducir del CVS. * Lo traduces y lo vuelves a meter al CVS. El que quiera, simplemente, ayudar: * Me dice qué es lo que quiere traducir * Le mando el fichero .tex * Me lo manda traducido. * Yo me ocupo del CVS, que tiene su intríngulis. Que conste que yo agradezco igual cualquiera de los dos modos. El sáb, 25-05-2002 a las 13:11, Alfredo escribió: > Marcos Sánchez Provencio wrote: > > El vie, 24-05-2002 a las 23:02, Alfredo escribió: > > > >>Marcos Sánchez Provencio wrote: > >> > >>>Os recuerdo que la versión más actual (y, como siempre, una petición de > >>>voluntarios) está en > >>> > >>>http://pyspanishdoc.sourceforge.net > >>> > >> > >>Si, pero el problema es este: > >> > >>Documentación de Python > >> > >>Release 2.0 > >>16 de octubre de 2000 > >> > >>Y mucha documentación sigue en inglés, por ejemplo la documentación de > >>las librerías está traducida a mitad pero bueno, algo es algo :). > >>Gracias > >> > > > > Ya están traducida la sección lib hasta la 3.16 - marshal. Sólo está > > disponible en HTML interactivo (y en el CVS). > > > > No me di cuenta de que eras el mismo que mantenía la web, gracias por > continuar la traducción, si te interesa podría intentar traducir algo > también... por poco que sea :) > > Supongo que en la misma url, ¿no? > > Gracias y saludos a toda la lista! > From rkt en ifrance.com Sat May 25 13:37:07 2002 From: rkt en ifrance.com (Alfredo) Date: Sat, 25 May 2002 13:37:07 +0200 Subject: Y seguimos con las dudas References: <20020524135529.63923.qmail@web20907.mail.yahoo.com> <1022325064.2099.10.camel@renata.macondo.pri> Message-ID: <3CEF7763.5090702@ifrance.com> Marcos Sánchez Provencio wrote: > Pues ahí va mi versión. Creo que es sencilla de entender para > principiantes. > > > > > ------------------------------------------------------------------------ > > prefijos={} > > for pref in '''606 608 609 616 619 620 626 629 630 636 639 646 649 650 659 > 660 669 676 679 680 686 689 690 696 699'''.split(): > prefijos[pref]='Movistar' > > for pref in "600 607 610 617 627 666 667 670 677 678 687".split(): > prefijos[pref]='Vodafone' > > for pref in "651 652 653 654 655 656 657 658".split(): > prefijos[pref]='Amena' > > def mvlchk(numero): > pref=numero[:3] > try: > return prefijos[pref] > except KeyError: > return "pues nada" > > > Sí, efectivamente es bastante sencillo, tomo nota de más maneras de hacerlo :)). Ya sé que es básico pero, ¿podrías explicar en qué consiste el for? ¿"setea la variable pref dándole el valor de detrás del in? Sólo quiero aclarar mis ideas :) Gracias. Alfredo - rkt en ifrance.com ______________________________________________________________________________ ifrance.com, l'email gratuit le plus complet de l'Internet ! vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP... http://www.ifrance.com/_reloc/email.emailif From rapto en arrakis.es Sat May 25 13:56:29 2002 From: rapto en arrakis.es (Marcos =?ISO-8859-1?Q?S=E1nchez?= Provencio) Date: 25 May 2002 13:56:29 +0200 Subject: Y seguimos con las dudas In-Reply-To: <3CEF7763.5090702@ifrance.com> References: <20020524135529.63923.qmail@web20907.mail.yahoo.com> <1022325064.2099.10.camel@renata.macondo.pri> <3CEF7763.5090702@ifrance.com> Message-ID: <1022327790.2099.36.camel@renata.macondo.pri> El sáb, 25-05-2002 a las 13:37, Alfredo escribió: > Marcos Sánchez Provencio wrote: > > Pues ahí va mi versión. Creo que es sencilla de entender para > > principiantes. > > > > > > > > > > ------------------------------------------------------------------------ > > > > prefijos={} > > > > for pref in '''606 608 609 616 619 620 626 629 630 636 639 646 649 650 659 > > 660 669 676 679 680 686 689 690 696 699'''.split(): > > prefijos[pref]='Movistar' > > > > for pref in "600 607 610 617 627 666 667 670 677 678 687".split(): > > prefijos[pref]='Vodafone' > > > > for pref in "651 652 653 654 655 656 657 658".split(): > > prefijos[pref]='Amena' > > > > def mvlchk(numero): > > pref=numero[:3] > > try: > > return prefijos[pref] > > except KeyError: > > return "pues nada" > > > > > > > > Sí, efectivamente es bastante sencillo, tomo nota de más maneras de > hacerlo :)). > Ya sé que es básico pero, ¿podrías explicar en qué consiste el for? > ¿"setea la variable pref dándole el valor de detrás del in? > Sólo quiero aclarar mis ideas :) "651 652 653 654 655 656 657 658".split() es ['651', '652', '653', '654', '655', '656', '657', '658'] sólo que más rápido de escribir. El bucle for recorre la lista asignando a la variable índice cada uno de los elementos de la lista, en orden, y ejecutando el código contenido (marcado por su nivel de sangrado o indentación). La variable pref va valiendo, sucesivamente, '651', '652', etc. Para cada valor se ejecuta prefijos[pref]='Amena' que en este caso equivale a: prefijos['651']='Amena' prefijos['652']='Amena' ... Al final queda que el diccionario prefijos vale: {'600': 'Vodafone', '606': 'Movistar', '607': 'Vodafone', '608': 'Movistar', '609': 'Movistar', '610': 'Vodafone', '616': 'Movistar', '617': 'Vodafone', '619': 'Movistar', '620': 'Movistar', '626': 'Movistar', '627': 'Vodafone', '629': 'Movistar', '630': 'Movistar', '636': 'Movistar', '639': 'Movistar', '646': 'Movistar', '649': 'Movistar', '650': 'Movistar', '651': 'Amena', '652': 'Amena', '653': 'Amena', '654': 'Amena', '655': 'Amena', '656': 'Amena', '657': 'Amena', '658': 'Amena', '659': 'Movistar', '660': 'Movistar', '666': 'Vodafone', '667': 'Vodafone', '669': 'Movistar', '670': 'Vodafone', '676': 'Movistar', '677': 'Vodafone', '678': 'Vodafone', '679': 'Movistar', '680': 'Movistar', '686': 'Movistar', '687': 'Vodafone', '689': 'Movistar', '690': 'Movistar', '696': 'Movistar', '699': 'Movistar'} y con este diccionario es inmediato sacar la compañía a partir del prefijo. From rkt en ifrance.com Sat May 25 14:17:29 2002 From: rkt en ifrance.com (Alfredo) Date: Sat, 25 May 2002 14:17:29 +0200 Subject: Y seguimos con las dudas References: <20020524135529.63923.qmail@web20907.mail.yahoo.com> <1022325064.2099.10.camel@renata.macondo.pri> <3CEF7763.5090702@ifrance.com> <1022327790.2099.36.camel@renata.macondo.pri> Message-ID: <3CEF80D9.4090908@ifrance.com> > > "651 652 653 654 655 656 657 658".split() es > ['651', '652', '653', '654', '655', '656', '657', '658'] > sólo que más rápido de escribir. El bucle for recorre la lista asignando > a la variable índice cada uno de los elementos de la lista, en orden, y > ejecutando el código contenido (marcado por su nivel de sangrado o > indentación). La variable pref va valiendo, sucesivamente, '651', '652', > etc. Para cada valor se ejecuta > > prefijos[pref]='Amena' > > que en este caso equivale a: > prefijos['651']='Amena' > prefijos['652']='Amena' > ... > > Al final queda que el diccionario prefijos vale: > {'600': 'Vodafone', > '606': 'Movistar', > '607': 'Vodafone', > '608': 'Movistar', > '609': 'Movistar', > '610': 'Vodafone', > '616': 'Movistar', > '617': 'Vodafone', > '619': 'Movistar', > '620': 'Movistar', > '626': 'Movistar', > '627': 'Vodafone', > '629': 'Movistar', > '630': 'Movistar', > '636': 'Movistar', > '639': 'Movistar', > '646': 'Movistar', > '649': 'Movistar', > '650': 'Movistar', > '651': 'Amena', > '652': 'Amena', > '653': 'Amena', > '654': 'Amena', > '655': 'Amena', > '656': 'Amena', > '657': 'Amena', > '658': 'Amena', > '659': 'Movistar', > '660': 'Movistar', > '666': 'Vodafone', > '667': 'Vodafone', > '669': 'Movistar', > '670': 'Vodafone', > '676': 'Movistar', > '677': 'Vodafone', > '678': 'Vodafone', > '679': 'Movistar', > '680': 'Movistar', > '686': 'Movistar', > '687': 'Vodafone', > '689': 'Movistar', > '690': 'Movistar', > '696': 'Movistar', > '699': 'Movistar'} > > y con este diccionario es inmediato sacar la compañía a partir del > prefijo. > Dios, que pedazo de explicación!! Ahora lo tengo mucho más claro. Gracias, si fuerais profesores volvía a los estudios... :) Alfredo - rkt en ifrance.com ______________________________________________________________________________ ifrance.com, l'email gratuit le plus complet de l'Internet ! vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP... http://www.ifrance.com/_reloc/email.emailif From hernan en orgmf.com.ar Sat May 25 14:25:44 2002 From: hernan en orgmf.com.ar (Hernan Martinez Foffani) Date: Sat, 25 May 2002 14:25:44 +0200 Subject: Y seguimos con las dudas In-Reply-To: <3CEF7763.5090702@ifrance.com> References: <3CEF7763.5090702@ifrance.com> Message-ID: > > ... > > for pref in "600 607 610 617 627 666 667 670 677 678 687".split(): > > prefijos[pref]='Vodafone' > > Ya sé que es básico pero, ¿podrías explicar en qué consiste el for? > ¿"setea la variable pref dándole el valor de detrás del in? sí. el 'for' en python es diferente al de otros lenguajes. ejemplo: for variable in lista_o_secuencia: print variable por cada ciclo del for, variable referencia a cada elemento de la lista. -Hernan From hernan en orgmf.com.ar Sat May 25 13:02:08 2002 From: hernan en orgmf.com.ar (Hernan Martinez Foffani) Date: Sat, 25 May 2002 13:02:08 +0200 Subject: Y seguimos con las dudas Message-ID: > He estado mirando muy por encima para esta noche ponerme algo de zip() > pero de dict() no encontré nada en la Lib Ref. :( uy! de nuevo tengo que pedir disculpas. asumi que estamos usando python 2.2. zip(secuencia1, [secuencia2, ...etc...]) nuevo en la version 2.0. devuelve una lista de tuplas. cada i-esima tupla esta formada por el i-esimo elemento de las secuencias recibidas por parametro. ejemplo: >>> zip([3,2,1],["a","b","c"]) [(3, 'a'), (2, 'b'), (1, 'c')] >>> dict([secuencia]) nuevo en la la version 2.2 esta funcion varias formas de llamada. para nuestro caso, si se le pasa como argumento una lista de tuplas de 2 elementos por tupla, devuelve un diccionario cuyas claves son los primeros elementos de la tupla y los valores los segundos. ejemplo: >>> dict([(3, 'a'), (2, 'b'), (1, 'c')]) {1: 'c', 2: 'b', 3: 'a'} >>> > ¿Dónde encontrar más información sobre módulos, libs, etc en ESPAÑOL? > ¿Dónde encontrar detallado por ejemplo todas las posibilidades de > string.loquesea? (A ser posible en español también :P) aparte de las referencias que otros dieron, si no encuentras documentacion de modulos que te satisfaga, siempre te queda la posibilidad de inspeccionar los modulos vos mismo. ejemplo: >>> import string >>> help(string) ... bla ... bla ... el help() esta muy hecho porque construye documentacion leeyendo el codigo. aplicado a una de las versiones de mvlcheck que se publicaron: >>> import mvlcheck3 >>> help(mvlcheck3) Help on module mvlcheck3: NAME mvlcheck3 FILE c:\documents and settings\hernan.condor\mis documentos\python\mvlcheck3.py DESCRIPTION # Programa que devuelve la compañía del número de tlf. móvil que introduzcamos ... etc .... # Alfredo (rkt en ifrance.com) FUNCTIONS mvlchk(numero) DATA __file__ = r'C:\Documents and Settings\hernan.CONDOR\Mis documentos\Py... __name__ = 'mvlcheck3' _company = {'Amena': '651 652 653 654 655 656 657 658', 'Movistar': '6... >>> A partir de la version 2.2 se puede usar help(..) sobre los constructores. help(dict), help(list), help(str), help(int), etc. Algo que uso mucho en el prompt de python es dir(objeto). es muy comodo y a veces no necesitamos tanta informacion como la que da help() ejemplo: >>> dir(mvlcheck3) ['__builtins__', '__doc__', '__file__', '__name__', '_company', 'mvlchk'] >>> -Hernan From dquintas en telecable.es Sat May 25 16:12:47 2002 From: dquintas en telecable.es (David) Date: 25 May 2002 16:12:47 +0200 Subject: Ostia, el programa :) XD In-Reply-To: <3CEED56D.4030809@ifrance.com> References: <3CED196F.40107@ifrance.com> References: <3CED196F.40107@ifrance.com> <20020524143958.1b96ab8d.kmilo@softhome.net> <3CEED56D.4030809@ifrance.com> Message-ID: <1022335968.11514.5.camel@debian> El sáb, 25-05-2002 a las 02:06, Alfredo escribió: > Ok, muchas gracias, lo tendré en cuenta :) > > > para que se usa? > > > > #!/usr/bin/env python > > > > en vez de > > > > #!/usr/bin/python > > > > Esa misma duda tengo yo! > y si mi interprete de python no esta en /usr/bin ? env, entre otras cosas (man env) se utiliza para abstraerse de la ruta concreta en el sistema en cada caso. saludetes. From rkt en ifrance.com Sat May 25 16:33:53 2002 From: rkt en ifrance.com (Alfredo) Date: Sat, 25 May 2002 16:33:53 +0200 Subject: Ostia, el programa :) XD References: <3CED196F.40107@ifrance.com> References: <3CED196F.40107@ifrance.com> <20020524143958.1b96ab8d.kmilo@softhome.net> <3CEED56D.4030809@ifrance.com> <1022335968.11514.5.camel@debian> Message-ID: <3CEFA0D1.4020602@ifrance.com> David wrote: > El sáb, 25-05-2002 a las 02:06, Alfredo escribió: > > >>Ok, muchas gracias, lo tendré en cuenta :) >> >> >>>para que se usa? >>> >>>#!/usr/bin/env python >>> >>>en vez de >>> >>>#!/usr/bin/python >>> >> >>Esa misma duda tengo yo! >> > > > y si mi interprete de python no esta en /usr/bin ? > env, entre otras cosas (man env) se utiliza para abstraerse de la ruta > concreta en el sistema en cada caso. > > saludetes. > > > Ok, muchas gracias, lo tendré en cuenta. Saludos Alfredo - rkt en ifrance.com ______________________________________________________________________________ ifrance.com, l'email gratuit le plus complet de l'Internet ! vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP... http://www.ifrance.com/_reloc/email.emailif From tjavier en usuarios.retecal.es Sat May 25 17:05:10 2002 From: tjavier en usuarios.retecal.es (=?ISO-8859-1?Q?Tom=E1s?= Javier Robles Prado) Date: Sat, 25 May 2002 17:05:10 +0200 Subject: Introduccion a Python Message-ID: <1022339111.11133.12.camel@cable215a101.usuarios.retecal.es> Hola a todos Acabo de terminar y colgar en http://users.servicios.retecal.es/tjavier un documento de unas 15 páginas introductorio a Python, que incluye las características principales del lenguaje y una (muy) breve visión de la sintaxis. De momento sólo lo tengo disponible en *.pdf y pdf comprimido, a ver si tengo un rato y lo cuelgo en *.html. Si tienes alguna sugerencia házmelo saber. En otro orden de cosas, me gustaría que comentáseis algo sobre Zope. Estoy pensándolo en utilizarlo para mi web, pero no sé que servidores públicos (gratuitos) lo admiten y si está bien y tal. Gracias -- Un saludo, T. Javier Robles Prado Python para principiantes en http://users.servicios.retecal.es/tjavier Puedes encontrar mi clave pública en http://pgp.rediris.es:11371/pks/lookup?search=Robles+Prado&op=index ------------ próxima parte ------------ A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 232 bytes Desc: Esta parte del mensaje esta firmada digitalmente URL: From chemacortes en wanadoo.es Sat May 25 18:42:14 2002 From: chemacortes en wanadoo.es (Chema =?iso-8859-1?q?Cort=E9s?=) Date: Sat, 25 May 2002 18:42:14 +0200 Subject: Dudilla con el main In-Reply-To: <20020524134331.98018.qmail@web20902.mail.yahoo.com> References: <20020524134331.98018.qmail@web20902.mail.yahoo.com> Message-ID: <200205251842.14344.chemacortes@wanadoo.es> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 El Vie 24 May 2002 15:43, Attila Saorin escribió: > Vale, enteindo la idea, pero yo me enfrento con un problema con respecto al > if, el numero de argumentos que le paso a mi funcion es variable, por eso > tiene valores predefinidos, que si no se los paso mi programa cogera por > defecto, asi que tendria que comprobrar distintos valores de argumentos > para saber si esta bien, lo que me complica por si meten cosas que no > deberia y el numero de argumentos esta bien. Puede que te resulte más sencillo si utilizas el módulo 'getopt' Saludos, - -- Chema Cortes (chemacortes en wanadoo.es) | LinuxUser#142755 - SuSE Linux 8.0 ZARALINUX http://www.zaralinux.org | "La ignorancia se apodera de quien PYTANDO http://pytando.sf.net | se contenta con lo que sabe" PGPKEY: mailto:chemacortes en wanadoo.es?subject=__PGPKEY__ -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQE8777mHLTQrABk8H0RAvETAKD525qH4CnqhZ9IxnhAP3oYZns0mACgsiB6 M51oTbtKvRQ6eVkwi3t/vOM= =1pIP -----END PGP SIGNATURE----- From chemacortes en wanadoo.es Sat May 25 18:33:07 2002 From: chemacortes en wanadoo.es (Chema =?iso-8859-1?q?Cort=E9s?=) Date: Sat, 25 May 2002 18:33:07 +0200 Subject: [Python-es] compilando modulos nuevos In-Reply-To: <5.1.0.14.0.20020524121058.009ebec0@mercurio.iai.csic.es> References: <5.1.0.14.0.20020524121058.009ebec0@mercurio.iai.csic.es> Message-ID: <200205251833.14570.chemacortes@wanadoo.es> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 El Vie 24 May 2002 12:31, oscarm escribió: > Las rutinas que acceden al HW estan en c y trato de compilarlas para > crear una extension en python. He leido casi toda la documentación que he > podido encontrar por ahi (aprovecho para felicitar a la gente que esta > traduciendo la documentación original al castellano). Pero no consigo > encontrar el archivo compile.py que se meciona en la "receta" de la > documentacion. No encuentro la referencia al archivo 'compile.py' en la documentación del python. Lo más parecido es py_compile.py Saludos, - -- Chema Cortes (chemacortes en wanadoo.es) | LinuxUser#142755 - SuSE Linux 8.0 ZARALINUX http://www.zaralinux.org | "La ignorancia se apodera de quien PYTANDO http://pytando.sf.net | se contenta con lo que sabe" PGPKEY: mailto:chemacortes en wanadoo.es?subject=__PGPKEY__ -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQE877zKHLTQrABk8H0RAnJNAKCAdlKKVqXcg8SX++V5y/V2oWkkTQCgsKmr tYVF5AFGgjsfvdrmYrU5EjQ= =RJFN -----END PGP SIGNATURE----- From chemacortes en wanadoo.es Sun May 26 15:08:20 2002 From: chemacortes en wanadoo.es (Chema =?iso-8859-15?q?Cort=E9s?=) Date: Sun, 26 May 2002 15:08:20 +0200 Subject: [Python-es] Introduccion a Python In-Reply-To: <1022339111.11133.12.camel@cable215a101.usuarios.retecal.es> References: <1022339111.11133.12.camel@cable215a101.usuarios.retecal.es> Message-ID: <200205261508.20788.chemacortes@wanadoo.es> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 El Sáb 25 May 2002 17:05, Tomás Javier Robles Prado escribió: > Acabo de terminar y colgar en http://users.servicios.retecal.es/tjavier > un documento de unas 15 páginas introductorio a Python, que incluye las > características principales del lenguaje y una (muy) breve visión de la > sintaxis. De momento sólo lo tengo disponible en *.pdf y pdf comprimido, > a ver si tengo un rato y lo cuelgo en *.html. Si tienes alguna > sugerencia házmelo saber. He mirado el documento, y tengo algunas sugerencias: Cuando hablas de las diferencias entre lenguajes interpretados y compilados, no te limites en diferenciarlo por si generan o no código compilado. Los ficheros .pyc sí que son ficheros compilados (código máquina "bytecode"). Lo que pasa es que están compilados para una máquina virtual (PVM, JVM, .Net,...), del mismo modo que hace el Java. Existen otros casos conocidos como los antiguos compiladores de Basic y Pascal de Microsoft basados en p-codes, y otros menos nombrados como Clipper ó Visual Basic. Implementando una máquina virtual hace más sencillo independizar los compiladores/intérpretes de la plataforma hardware; pero esto no quita que en un futuro alguien le dé por crear una CPU que interprete bytecode (por ejemplo, ya existe el "picojava", una cpu para bytecode java). Entonces, ¿en qué se diferencian interpretado y compilado? Limitándonos en lo que es la sintaxis del lenguaje, un lenguaje compilado requiere la definición explícita previa de todos los componentes que intervienen en el programa, mientras que el lenguaje interpretado estos componentes se van definiendo durante la ejecución del programa. No es imprescindible que el lenguaje compilado posea tipeado fuerte de datos, aunque es algo bastante frecuente. Un lenguaje de script es un nivel superior a los lenguajes interpretados. La característica de un lenguaje de script es que puede interactuar con los componentes instalados en un sistema, intermediando tanto en la ejecución como en la transferencia de datos entre aplicaciones. Esta fuerte interacción con el sistema da como consecuencia que un sistema de script... - - Se puede expandir mediante módulos ó "plugins". - - Se puede empotrar dentro de una aplicación. La intermediación mediante scripts se conoce como "middleware", aunque a este término se le han dado otras definiciones más limitadas a la programación web. En fin, no quiero alargarme más. Ya perdonaréis si he podido ser pedante, pero parece que hay demasiada confusión con estos términos, incluso en oposiciones como la última de Técnicos de Informática de la Universidad de Zaragoza, donde se afirmaba que "el navegador interpretaba el lenguaje Java". > En otro orden de cosas, me gustaría que comentáseis algo sobre Zope. > Estoy pensándolo en utilizarlo para mi web, pero no sé que servidores > públicos (gratuitos) lo admiten y si está bien y tal. No puedo decirte mucho, ya que yo también estoy empezando con el Zope. Si quieres un servidor gratuíto mira: http://www.freezope.org Saludos, - -- Chema Cortes (chemacortes en wanadoo.es) | LinuxUser#142755 - SuSE Linux 8.0 ZARALINUX http://www.zaralinux.org | "La ignorancia se apodera de quien PYTANDO http://pytando.sf.net | se contenta con lo que sabe" PGPKEY: mailto:chemacortes en wanadoo.es?subject=__PGPKEY__ -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQE88N5EHLTQrABk8H0RAubVAKDsZJ2kTYJPOoaGybIEgK0jBIBXFgCg7hn4 L3OYDgDR0ZLk8mF0dcjcNXk= =7Qo0 -----END PGP SIGNATURE----- From chemacortes en wanadoo.es Sun May 26 13:35:34 2002 From: chemacortes en wanadoo.es (Chema =?iso-8859-1?q?Cort=E9s?=) Date: Sun, 26 May 2002 13:35:34 +0200 Subject: Pydoc (Era Re: [Python-es] Y seguimos con las dudas) In-Reply-To: <20020524173031.A708@marmota> References: <3CEE373B.9040101@ifrance.com> <20020524173031.A708@marmota> Message-ID: <200205261335.45245.chemacortes@wanadoo.es> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 El Vie 24 May 2002 17:30, luis miguel escribió: > mira {}.items.__doc__ {}.keys.__doc__ Desde la versión 2.2 (o puede que ya desde la 2.1) la mejor forma de ver la documentación es utilizando la función help(), equivalente al comando 'pydoc' de línea de comandos. Por ejemplo, en lugar de ver el atributo __doc__ como ponías antes, es mejor así: >>> help(dict.items) >>> help(dict.keys) O ver directamente toda la documentación: >>> help(dict) Desde la línea de comandos sería: $ pydoc dict Entre las opciones del pydoc: Para buscar referencias a una palabra: $ pydoc -k api Guardar la información como html: $ pydoc -w os Visualizar la documentación en un browser (http://localhost:8000): $ pydoc -p 8000 Para los que no uséis línea de comando (eg: macos) pydoc puede sacar un sencillo interface gráfico que se puede ver con 'pydoc -g' El comando pydoc también funciona para cualquier módulo que hayamos instalado, o incluso para nuestros propios programas. Es la manera más fácil (y estandar) de crear la documentación sobre un programa que hayamos hecho ('pydoc -w miprograma'). Es aquí cuando se ve la importancia de poner las "cadenas de texto" para documentar cada módulo y función que hagamos. Espero que os sea más fácil encontrar la información a partir de ahora. Saludos, - -- Chema Cortes (chemacortes en wanadoo.es) | LinuxUser#142755 - SuSE Linux 8.0 ZARALINUX http://www.zaralinux.org | "La ignorancia se apodera de quien PYTANDO http://pytando.sf.net | se contenta con lo que sabe" PGPKEY: mailto:chemacortes en wanadoo.es?subject=__PGPKEY__ -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQE88MiQHLTQrABk8H0RAuInAJ4/VI0Pyr7hvknubIvqWOg7MBKZYQCfb9DF bwZIomuZKuD2VT0bxieXLuU= =1oan -----END PGP SIGNATURE----- From mostroratas en yahoo.es Mon May 27 11:30:45 2002 From: mostroratas en yahoo.es (=?iso-8859-1?q?Attila=20Saorin?=) Date: Mon, 27 May 2002 11:30:45 +0200 (CEST) Subject: [Python-es] Ostia, el programa :) XD In-Reply-To: <20020524143958.1b96ab8d.kmilo@softhome.net> Message-ID: <20020527093045.40716.qmail@web20904.mail.yahoo.com> Hola a todos, --- kmilo escribió: > en vez de comentar lo que hace el modulo, ponle entre triples comilla y asi queda como la cadena > de documentacion del modulo > > """ Programa que devuelve la compañía del número de tlf. móvil que introduzcamos > Sé que es una tontería y el código sencillo pero a algún novato (como yo) le servirá. > Los prefijos los tenía de hace tiempo, la lista NO está actualizada > Muchísimas gracias a la lista de python de Aditel por la ayuda prestada :) > Alfredo (rkt en ifrance.com) > """ > > la cual puedes acceder como > mvlcheck.__doc__ He estado buscando en la Guia del propio Van Rossum, porque me extraniaba, lo que dices sobre como comentar los modulos y no he encontrado nada que ponga que seria esa la forma adecuada. Es un estandar actual usarlo asi? ademas lo de 3 comillas me parecia mas raro aun. Me gustaria tener claro esto para documentar asi o no mis programas y modulos. Gracias. Attila _______________________________________________________________ Copa del Mundo de la FIFA 2002 Disfruta en vídeo de los mejores momentos desde tu ordenador. http://fifaworldcup.yahoo.com/fc/es/ From mostroratas en yahoo.es Mon May 27 11:33:57 2002 From: mostroratas en yahoo.es (=?iso-8859-1?q?Attila=20Saorin?=) Date: Mon, 27 May 2002 11:33:57 +0200 (CEST) Subject: [Python-es] Y seguimos con las dudas In-Reply-To: <1022322275.2520.6.camel@renata.macondo.pri> Message-ID: <20020527093357.97467.qmail@web20905.mail.yahoo.com> > Ya están traducida la sección lib hasta la 3.16 - marshal. Sólo está > disponible en HTML interactivo (y en el CVS). Yo quisiera que alguien me explicara por favor, aunque ya se que no es de Python, el funcionamiento y uso de CVS, veo que esta muy extendido, creo entender que es para el trabajo o desarrollo en grupo pero no estoy seguro. Si preferis mandarmelo individualmente al no ser de Python, igual me vale. Muchas gracias. Attila _______________________________________________________________ Copa del Mundo de la FIFA 2002 Disfruta en vídeo de los mejores momentos desde tu ordenador. http://fifaworldcup.yahoo.com/fc/es/ From mostroratas en yahoo.es Mon May 27 11:40:10 2002 From: mostroratas en yahoo.es (=?iso-8859-1?q?Attila=20Saorin?=) Date: Mon, 27 May 2002 11:40:10 +0200 (CEST) Subject: [Python-es] Y seguimos con las dudas In-Reply-To: Message-ID: <20020527094010.76655.qmail@web20909.mail.yahoo.com> > A partir de la version 2.2 se puede usar help(..) sobre los constructores. > help(dict), help(list), help(str), help(int), etc. Pues yo tengo una duda, no se si te refieres que a partir de la 2.2 se puede usar sobre constructores o en general, ya que yo uso la 2.1.2 en la Debian (imagino que eso da igual) y no puedo usar el help() Attila _______________________________________________________________ Copa del Mundo de la FIFA 2002 Disfruta en vídeo de los mejores momentos desde tu ordenador. http://fifaworldcup.yahoo.com/fc/es/ From mostroratas en yahoo.es Mon May 27 11:48:53 2002 From: mostroratas en yahoo.es (=?iso-8859-1?q?Attila=20Saorin?=) Date: Mon, 27 May 2002 11:48:53 +0200 (CEST) Subject: [Python-es] Introduccion a Python In-Reply-To: <200205261508.20788.chemacortes@wanadoo.es> Message-ID: <20020527094853.12924.qmail@web20902.mail.yahoo.com> --- Chema Cortés escribió: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > El Sáb 25 May 2002 17:05, Tomás Javier Robles Prado escribió: > > > Acabo de terminar y colgar en http://users.servicios.retecal.es/tjavier > > un documento de unas 15 páginas introductorio a Python, que incluye las > > características principales del lenguaje y una (muy) breve visión de la > > sintaxis. De momento sólo lo tengo disponible en *.pdf y pdf comprimido, > > a ver si tengo un rato y lo cuelgo en *.html. Si tienes alguna > > sugerencia házmelo saber. > > He mirado el documento, y tengo algunas sugerencias: > > Cuando hablas de las diferencias entre lenguajes interpretados y compilados, > no te limites en diferenciarlo por si generan o no código compilado. Los > ficheros .pyc sí que son ficheros compilados (código máquina "bytecode"). Lo > que pasa es que están compilados para una máquina virtual (PVM, JVM, > .Net,...), del mismo modo que hace el Java. Existen otros casos conocidos > como los antiguos compiladores de Basic y Pascal de Microsoft basados en > p-codes, y otros menos nombrados como Clipper ó Visual Basic. Implementando > una máquina virtual hace más sencillo independizar los > compiladores/intérpretes de la plataforma hardware; pero esto no quita que en > un futuro alguien le dé por crear una CPU que interprete bytecode (por > ejemplo, ya existe el "picojava", una cpu para bytecode java). > > Entonces, ¿en qué se diferencian interpretado y compilado? Limitándonos en lo > que es la sintaxis del lenguaje, un lenguaje compilado requiere la definición > explícita previa de todos los componentes que intervienen en el programa, > mientras que el lenguaje interpretado estos componentes se van definiendo > durante la ejecución del programa. No es imprescindible que el lenguaje > compilado posea tipeado fuerte de datos, aunque es algo bastante frecuente. > > Un lenguaje de script es un nivel superior a los lenguajes interpretados. La > característica de un lenguaje de script es que puede interactuar con los > componentes instalados en un sistema, intermediando tanto en la ejecución > como en la transferencia de datos entre aplicaciones. Esta fuerte interacción > con el sistema da como consecuencia que un sistema de script... > > - - Se puede expandir mediante módulos ó "plugins". > - - Se puede empotrar dentro de una aplicación. > > La intermediación mediante scripts se conoce como "middleware", aunque a este > término se le han dado otras definiciones más limitadas a la programación > web. > > > En fin, no quiero alargarme más. Ya perdonaréis si he podido ser pedante, pero > parece que hay demasiada confusión con estos términos, incluso en oposiciones > como la última de Técnicos de Informática de la Universidad de Zaragoza, > donde se afirmaba que "el navegador interpretaba el lenguaje Java". Yo ya he dicho que soy novato en python, pero como informatico (espero que algun dia) o programador o alguien que le interesa esto, me parecen muy adecuadas tus aclaraciones, creo que eso ayudara a todo el que lo lea. Siento no haber podido leer el texto, me lo he bajado y en cuanto tenga tiempo (ahora parece que no hay mucho) le echare una ojeada. Attila _______________________________________________________________ Copa del Mundo de la FIFA 2002 Disfruta en vídeo de los mejores momentos desde tu ordenador. http://fifaworldcup.yahoo.com/fc/es/ From rapto en arrakis.es Mon May 27 12:07:45 2002 From: rapto en arrakis.es (Marcos =?ISO-8859-1?Q?S=E1nchez?= Provencio) Date: 27 May 2002 12:07:45 +0200 Subject: [Python-es] Y seguimos con las dudas In-Reply-To: <20020527093357.97467.qmail@web20905.mail.yahoo.com> References: <20020527093357.97467.qmail@web20905.mail.yahoo.com> Message-ID: <1022494066.1490.22.camel@cynar> El lun, 27-05-2002 a las 11:33, Attila Saorin escribió: > > Ya están traducida la sección lib hasta la 3.16 - marshal. Sólo está > > disponible en HTML interactivo (y en el CVS). > > Yo quisiera que alguien me explicara por favor, aunque ya se que no es de Python, el > funcionamiento y uso de CVS, veo que esta muy extendido, creo entender que es para el trabajo o > desarrollo en grupo pero no estoy seguro. Si preferis mandarmelo individualmente al no ser de > Python, igual me vale. > Por si acaso, he aquí la dirección que da acceso al CVS de la doc. de Python. http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/pyspanishdoc/ Una guía de CVS http://cvsbook.red-bean.com/cvsbook.html Enlaces a descargables de lo mismo y a la traducción en curso http://cvsbook.red-bean.com/ From hernan en orgmf.com.ar Mon May 27 12:24:15 2002 From: hernan en orgmf.com.ar (Hernan Martinez Foffani) Date: Mon, 27 May 2002 12:24:15 +0200 Subject: Y seguimos con las dudas In-Reply-To: <20020527094010.76655.qmail@web20909.mail.yahoo.com> References: <20020527094010.76655.qmail@web20909.mail.yahoo.com> Message-ID: > > A partir de la version 2.2 se puede usar help(..) sobre los > > constructores. help(dict), help(list), help(str), help(int), etc. > > Pues yo tengo una duda, no se si te refieres que a partir de la > 2.2 se puede usar sobre constructores o en general, ..... a partir de la 2.2 comenzo con la unificacion entre tipos y clases. anteriormente eran dos entidades distintas. y desde la 2.2 el tipo es el constructor. ejemplo: >>> type(3) # el tipo de 3 es entero (no hay novedad aqui) >>> 3 .__class__ # y su clase es tambien entero! >>> a = int() # el constructor devuelve un entero >>> a 0 >>> int.__class__ # y la clase del constructor es del tipo "tipo" >>> lo que quise decir es que a partir de la 2.2 el tipo es un constructor de objetos de dicho tipo, y que podrias usar el help sobre tipos como lo harias con cualquier clase. > ....... ya que yo uso la 2.1.2 en la Debian (imagino que eso da igual) > y no puedo usar el help() mmm... ¿qué error te da? como lo explico Chema anteriormente también podrías hacer: help({}), help([]), etc. o sea el help sobre un objeto de ese tipo. eso funciona en todas las versiones desde la 1.5.2 que yo recuerde. -Hernan From chemacortes en wanadoo.es Mon May 27 12:35:50 2002 From: chemacortes en wanadoo.es (Chema Cortes) Date: Mon, 27 May 2002 12:35:50 +0200 Subject: Ostia, el programa :) XD Message-ID: > He estado buscando en la Guia del propio Van Rossum, porque me extraniaba, lo que dices sobre como > comentar los modulos y no he encontrado nada que ponga que seria esa la forma adecuada. Es un > estandar actual usarlo asi? ademas lo de 3 comillas me parecia mas raro aun. Me gustaria tener > claro esto para documentar asi o no mis programas y modulos. Se considera que cualquier cadena de caracteres que aparezca suelta al inicio de un módulo, función, etc. se asigna al atributo __doc__ , siendo parte de la documentación. Las cadenas de caracteres, en general, pueden tener comillas simples o triples. La ventaja de usar triples comillas es que puedes escribir varias líneas seguidas, algo muy habitual cuando documentas. Tanto es así que el usar triples comillas para las cadenas de documentación se considera "norma de estilo", aunque sólo necesites escribir una línea. Mira las normas de estilo de Guido: http://www.python.org/doc/essays/styleguide.html Saludos, -- Chema Cortes (chemacortes en wanadoo.es) | LinuxUser#142755 - SuSE Linux 8.0 ZARALINUX http://www.zaralinux.org | La ignorancia se apodera de quien PYTANDO http://pytando.sf.net | se contenta con lo que sabe _____________________________________________________________________ No olvides nada. Recuerda los cumpleaños, tus citas, tus cenas románticas y todo lo que quieras usando la Agenda personal de Wanadoo.es, desde cualquier lugar conectado a Internet. Visítala en http://www.wanadoo.es/agenda From hernan en orgmf.com.ar Mon May 27 12:38:41 2002 From: hernan en orgmf.com.ar (Hernan Martinez Foffani) Date: Mon, 27 May 2002 12:38:41 +0200 Subject: Comentarios en el codigo [era: Ostia, el programa :) XD] In-Reply-To: <20020527093045.40716.qmail@web20904.mail.yahoo.com> References: <20020527093045.40716.qmail@web20904.mail.yahoo.com> Message-ID: Attila: > kmilo escribió: > > en vez de comentar lo que hace el modulo, ponle entre > > triples comilla y asi queda como la cadena de documentacion > > del modulo ..... > > He estado buscando en la Guia del propio Van Rossum, porque me > extraniaba, lo que dices sobre como > comentar los modulos y no he encontrado nada que ponga que seria > esa la forma adecuada. Es un > estandar actual usarlo asi? ademas lo de 3 comillas me parecia > mas raro aun. Me gustaria tener > claro esto para documentar asi o no mis programas y modulos. la convención sobre el estilo está en el PEP(*) 8, secciones "Comments" y "Documentation Strings", donde se aconseja donde usar comentarios con # y donde docstrings. http://www.python.org/peps/pep-0008.html y la convencion especifica de las docstrings está en el PEP 257. incluye explicaciones sobre el uso de las triple comillas. http://www.python.org/peps/pep-0257.html (*) PEP == Python Enhancement Proposal) -Hernan From mostroratas en yahoo.es Mon May 27 12:44:30 2002 From: mostroratas en yahoo.es (=?iso-8859-1?q?Attila=20Saorin?=) Date: Mon, 27 May 2002 12:44:30 +0200 (CEST) Subject: Dudilla con el main In-Reply-To: <200205251842.14344.chemacortes@wanadoo.es> References: <200205251842.14344.chemacortes@wanadoo.es> Message-ID: <20020527104430.5755.qmail@web20905.mail.yahoo.com> --- Chema Cortés escribió: > -----BEGIN PGP SIGNED MESSAGE----- > Puede que te resulte más sencillo si utilizas el módulo 'getopt' He mirado el modulo, pero no me ha quedado muy claro su uso con los ejemplos, imagino que sera cosa de hacer pruebas, gracias de todas formas. Attila _______________________________________________________________ Copa del Mundo de la FIFA 2002 Disfruta en vídeo de los mejores momentos desde tu ordenador. http://fifaworldcup.yahoo.com/fc/es/ From miquel en llover.org Mon May 27 12:51:36 2002 From: miquel en llover.org (Miquel Llover) Date: Mon, 27 May 2002 12:51:36 +0200 Subject: [Python-es] =?iso-8859-1?Q?Asignaci=F3n_de_un_elemento_de_una_tupla?= Message-ID: <5.1.0.14.0.20020527124704.00a21cb0@pop3.terra.es> Buenas, Si creo una tupla del siguiente modo: >>> t = (None, None, None) puedo hacer: >>> t = (1, 2, 3) pero si sólo quiero asignar un elemento de la tupla no me permite hacer: >>> t[0] = 1 aunque si puedo poner: >>> print t[0] Como se puede asignar solo un elemento de una tupla? Qué es más rápido, una tupla o un diccionario? Gracias de antemano, ------------------------------------------------ Miquel Llover ------------------------------------------------ From rapto en arrakis.es Mon May 27 13:05:36 2002 From: rapto en arrakis.es (Marcos =?ISO-8859-1?Q?S=E1nchez?= Provencio) Date: 27 May 2002 13:05:36 +0200 Subject: =?ISO-8859-1?Q?Asignaci=F3n?= de un elemento de una tupla In-Reply-To: <5.1.0.14.0.20020527124704.00a21cb0@pop3.terra.es> References: <5.1.0.14.0.20020527124704.00a21cb0@pop3.terra.es> Message-ID: <1022497536.1490.31.camel@cynar> El lun, 27-05-2002 a las 12:51, Miquel Llover escribió: > Buenas, > > Si creo una tupla del siguiente modo: > > >>> t = (None, None, None) > > puedo hacer: > > >>> t = (1, 2, 3) ¡OJO! Estás creando una nueva tupla que no tiene nada que ver con la anterior. Sólo estás reutilizando el nombre de la variable. En vez de la primer asignación podrías usar t='Blas', o nada en absoluto, ya que el contenido de t se machaca con la nueva asignación. > > pero si sólo quiero asignar un elemento de la tupla no me permite hacer: > > >>> t[0] = 1 Cierto, no puedes cambiar una tupla (eso es una ventaja en ciertas ocasiones) > > aunque si puedo poner: > > >>> print t[0] Sí, tranquilamente. > > Como se puede asignar solo un elemento de una tupla? Qué es más rápido, una > tupla o un diccionario? No puedes. Si quieres algo modificable parecido a una tupla, usa una lista. La tupla y el diccionario son muy diferentes. ¿Más rápido haciendo qué? > > Gracias de antemano, De nadas. From manuel.duran en quantumgap.com Mon May 27 12:59:54 2002 From: manuel.duran en quantumgap.com (Manuel =?ISO-8859-1?Q?Dur=E1n?= Aguete) Date: 27 May 2002 12:59:54 +0200 Subject: Y seguimos con las dudas [OFF-TOPIC] In-Reply-To: <20020527093357.97467.qmail@web20905.mail.yahoo.com> References: <20020527093357.97467.qmail@web20905.mail.yahoo.com> Message-ID: <1022497194.7561.8.camel@dt1010b.quantum.int> Hola, Te recomiendo que le eches un vistazo al CVS BOOK http://cvsbook.red-bean.com/ explica claramente todo lo que tienes que saber de CVS para poder trabajar con el. Saludos. El lun, 27-05-2002 a las 11:33, Attila Saorin escribió: > > Ya están traducida la sección lib hasta la 3.16 - marshal. Sólo está > > disponible en HTML interactivo (y en el CVS). > > Yo quisiera que alguien me explicara por favor, aunque ya se que no es de Python, el > funcionamiento y uso de CVS, veo que esta muy extendido, creo entender que es para el trabajo o > desarrollo en grupo pero no estoy seguro. Si preferis mandarmelo individualmente al no ser de > Python, igual me vale. > > Muchas gracias. > > Attila > > _______________________________________________________________ > Copa del Mundo de la FIFA 2002 > Disfruta en vídeo de los mejores momentos desde tu ordenador. > http://fifaworldcup.yahoo.com/fc/es/ > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo.py/python-es > From mostroratas en yahoo.es Mon May 27 16:16:32 2002 From: mostroratas en yahoo.es (=?iso-8859-1?q?Attila=20Saorin?=) Date: Mon, 27 May 2002 16:16:32 +0200 (CEST) Subject: Y seguimos con las dudas In-Reply-To: References: Message-ID: <20020527141632.48225.qmail@web20902.mail.yahoo.com> --- Hernan Martinez Foffani escribió: > > > A partir de la version 2.2 se puede usar help(..) sobre los > mmm... ¿qué error te da? > como lo explico Chema anteriormente también podrías hacer: > help({}), help([]), etc. o sea el help sobre un objeto de ese tipo. > eso funciona en todas las versiones desde la 1.5.2 que yo recuerde. hago por ejemplo el: >>>import os >>>help(os) # o culaquier cosa y me pone: Traceback (most recent call last): File "", line 1, in ? NameError: name 'help' is not defined o es que esta en una libreriaa la que tengo que llamar antes? Attila _______________________________________________________________ Copa del Mundo de la FIFA 2002 Disfruta en vídeo de los mejores momentos desde tu ordenador. http://fifaworldcup.yahoo.com/fc/es/ From chemacortes en wanadoo.es Mon May 27 12:10:30 2002 From: chemacortes en wanadoo.es (Chema Cortes) Date: Mon, 27 May 2002 10:10:30 -0000 Subject: [Python-es] Dudilla con el main Message-ID: <200205271423.g4RENvA00961@spisa.act.uji.es> La contestación era para Luis Miguel, que decía que no le era suficiente comprobar el número de argumentos de entrada en su programa. El módulo 'getopt' está pensado para procesar las "opciones" en la línea de comandos. Por ejemplo, podíamos haber hecho que el código tuviera como argumentos: $ python mvchk.py -o Vodaphone 666606060 Y en el código: if __name__=="__main__": import sys,getopt opts=getopt.getopt(sys.argv[1:],"o:",["operadora="]) .... Siguiendo el ejemplo, tendríamos en opts: ([('-o', 'Vodaphone')], ['666606060']) Para saber si nos ha pasado bien el número de móvil: if len(opts[1])!=1 or not opts[1][0].isdigit(): Raise TypeError("No me has dado un número de móvil") numero=opts[1][0] if len(opts[0]>0: operadora=opts[0][1] chk=["no","si"][mvchk(numero)==operadora] print "El número %s %s es de %s" % (numero,chk,operadora) else: operadora=mvchk(numero) print "El número %s es de %s" % (numero,operadora) En fin, que cada cuál mejore el código a su antojo. NOTA1: Si os complica mucho el ver ["no","si"][mvchk(numero)==operadora], cambiar la línea por : if mvchk(numero)==operadora: chk="si" else: chk="no" (Era un modo de emular el operador ternario de C a?b:c) NOTA2: El mismo código también se puede invocar como: $ python mvchk.py --operadora=Vodaphone 666606060 Saludos, -- Chema Cortes (chemacortes en wanadoo.es) | LinuxUser#142755 - SuSE Linux 8.0 ZARALINUX http://www.zaralinux.org | La ignorancia se apodera de quien PYTANDO http://pytando.sf.net | se contenta con lo que sabe --------- Original message -------- From: "Attila Saorin" To: "python-es en aditel.org" Subject: Re: [Python-es] Dudilla con el main Date: 05-27-02 11:44 --- Chema Cortés escribió: > -----BEGIN PGP SIGNED MESSAGE----- > Puede que te resulte más sencillo si utilizas el módulo 'getopt' He mirado el modulo, pero no me ha quedado muy claro su uso con los ejemplos, imagino que sera cosa de hacer pruebas, gracias de todas formas. Attila From rapto en arrakis.es Mon May 27 16:32:02 2002 From: rapto en arrakis.es (Marcos =?ISO-8859-1?Q?S=E1nchez?= Provencio) Date: 27 May 2002 16:32:02 +0200 Subject: Y seguimos con las dudas In-Reply-To: <20020527141632.48225.qmail@web20902.mail.yahoo.com> References: <20020527141632.48225.qmail@web20902.mail.yahoo.com> Message-ID: <1022509922.6303.26.camel@cynar> El lun, 27-05-2002 a las 16:16, Attila Saorin escribió: > --- Hernan Martinez Foffani escribió: > > > A partir de la version 2.2 se > puede usar help(..) sobre los > > mmm... ¿qué error te da? > > como lo explico Chema anteriormente también podrías hacer: > > help({}), help([]), etc. o sea el help sobre un objeto de ese tipo. > > eso funciona en todas las versiones desde la 1.5.2 que yo recuerde. > > hago por ejemplo el: > >>>import os > >>>help(os) # o culaquier cosa > > y me pone: > Traceback (most recent call last): > File "", line 1, in ? > NameError: name 'help' is not defined > > o es que esta en una libreriaa la que tengo que llamar antes? > > Attila > A mí me funciona con la 2.2, pero no la 2.1. From chemacortes en wanadoo.es Mon May 27 12:21:26 2002 From: chemacortes en wanadoo.es (Chema Cortes) Date: Mon, 27 May 2002 10:21:26 -0000 Subject: Y seguimos con las dudas Message-ID: <200205271434.g4REYvA01188@spisa.act.uji.es> Es raro es que no tengas el 'help' configurado. Prueba con: >>> from pydoc import help >>> help(os) Si esto te funciona, es que te falta configurar el site.py Saludos, -- Chema Cortes (chemacortes en wanadoo.es) | LinuxUser#142755 - SuSE Linux 8.0 ZARALINUX http://www.zaralinux.org | La ignorancia se apodera de quien PYTANDO http://pytando.sf.net | se contenta con lo que sabe --------- Original message -------- From: "Attila Saorin" To: "python-es en aditel.org" Subject: RE: [Python-es] Y seguimos con las dudas Date: 05-27-02 15:17 --- Hernan Martinez Foffani escribió: > > > A partir de la version 2.2 se puede usar help(..) sobre los > mmm... ¿qué error te da? > como lo explico Chema anteriormente también podrías hacer: > help({}), help([]), etc. o sea el help sobre un objeto de ese tipo. > eso funciona en todas las versiones desde la 1.5.2 que yo recuerde. hago por ejemplo el: >>>import os >>>help(os) # o culaquier cosa y me pone: Traceback (most recent call last): File "", line 1, in ? NameError: name 'help' is not defined o es que esta en una libreriaa la que tengo que llamar antes? Attila From mostroratas en yahoo.es Mon May 27 16:47:52 2002 From: mostroratas en yahoo.es (=?iso-8859-1?q?Attila=20Saorin?=) Date: Mon, 27 May 2002 16:47:52 +0200 (CEST) Subject: Y seguimos con las dudas In-Reply-To: <200205271434.g4REYvA01188@spisa.act.uji.es> References: <200205271434.g4REYvA01188@spisa.act.uji.es> Message-ID: <20020527144752.40769.qmail@web20905.mail.yahoo.com> --- Chema Cortes escribió: > Es raro es que no tengas el 'help' configurado. Prueba con: > > >>> from pydoc import help > >>> help(os) > > Si esto te funciona, es que te falta configurar el site.py Bueno, con esto que me dices ya si va, ya me he leido los enlaces sobre como documentar, ahora solo falta hacerlo bien y siempre ;) Respecto al site.py. ?que es lo que tengo que configurar? Gracias. Attila _______________________________________________________________ Copa del Mundo de la FIFA 2002 Disfruta en vídeo de los mejores momentos desde tu ordenador. http://fifaworldcup.yahoo.com/fc/es/ From wilerbag en hotmail.com Mon May 27 17:25:19 2002 From: wilerbag en hotmail.com (william barto) Date: Mon, 27 May 2002 10:25:19 -0500 Subject: [Python-es] programa para formatear Message-ID: buenos dias pythones, alguno de ustedes de casualidad tienen un programa que me permita formatear un disquete, y visualizar su contenido. mil gracias _________________________________________________________________ Envíe y reciba su correo de Hotmail desde el móvil: http://mobile.msn.com From lgallardo en computacion.cs.cinvestav.mx Mon May 27 18:17:48 2002 From: lgallardo en computacion.cs.cinvestav.mx (Rodrigo Gallardo) Date: 27 May 2002 11:17:48 -0500 Subject: Introduccion a Python In-Reply-To: <200205261508.20788.chemacortes@wanadoo.es> References: <1022339111.11133.12.camel@cable215a101.usuarios.retecal.es> <200205261508.20788.chemacortes@wanadoo.es> Message-ID: >>>>> "Chema" == Chema =?iso-8859-15?q?Cort=E9s?= writes: Chema> Entonces, ¿en qué se diferencian interpretado y compilado? Chema> Limitándonos en lo que es la sintaxis del lenguaje, un Chema> lenguaje compilado requiere la definición explícita previa Chema> de todos los componentes que intervienen en el programa, Chema> mientras que el lenguaje interpretado estos componentes se Chema> van definiendo durante la ejecución del programa. No es Chema> imprescindible que el lenguaje compilado posea tipeado Chema> fuerte de datos, aunque es algo bastante frecuente. Interesante definición. Por cierto, lo de los tipos fuertes o no es completamente independiente de ser compilado o interpretado. Para muestra, C y FORTRAN tienen tipos debiles, mientras que Python y Smalltalk tienen tipos fuertes. Y antes de que alguien me brinque encima con eso de que Python tiene tipos fuertes, recuerden que tipos fuertes y tipos estaticos no son lo mismo. Tipos fuertes significa que cada valor tiene un tipo, y que no es posible aplicar operaciones de un tipo distinto. Así, en Python, no es posible ejecutar un entero. O concatenar dos funciones. Lo opuesto a esto son los tipos debiles como en Perl, donde es válido concatenar enteros, dividir cadenas, etc. Los tipos estaticos se refieren a la asociación de tipos con los _nombres_ de los objetos. En C, una vez que una variable se declara entera, no se puede redeclarar como apuntador. En Python, como el tipo es del objeto y no del nombre, la misma variable puede cargar a veces con un entero, y otras con una cadena. -- Rodrigo PGP key 1024D/ADC9BC28 2002-02-26 [expires 2004-02-26] Fingerprint: 7C81 E60C 442E 8FBC D975 2F49 0199 8318 ADC9 BC28 From mostroratas en yahoo.es Mon May 27 18:05:42 2002 From: mostroratas en yahoo.es (=?iso-8859-1?q?Attila=20Saorin?=) Date: Mon, 27 May 2002 18:05:42 +0200 (CEST) Subject: [Python-es] replace de cadena de caracteres In-Reply-To: Message-ID: <20020527160542.59601.qmail@web20908.mail.yahoo.com> --- Hernan Martinez Foffani escribió: > a lo mejor te alcanza con busqueda y reemplazo simple en > cadenas. > > >>> a = "modo=simple" > >>> a.replace("simple","avanzado") > 'modo=avanzado' > >>> > -Hernan Hola Hernan, ya he pasado a hacer pruebas con esto de la sustitucion de cadenas de caracteres, la cosa es que quisera saber si hay alguna forma de que la sustitucion se vea reflejada en la variable, en principio, con el ejemplo que te dije, no haria falta, porque si abro un fichero y busco una cadena de caracteres, lo que escribiria en el fichero final, seria el anterior habiendo cambiado eso, con lo que deberia estar, todavia no lo he probado, pero espero manana por decirte algo. La cosa es que en tu ejemplo, si despues de ejecutar eso, imprimo a: >>>a 'modo=simple' es decir, que la variable sigue con el mismo valor, es por ser una cadena de texto? como deciamos antes sobre el problema de modificar un diccionario? es decir que solo lo podria hacerlo si es una lista, no? A modo de curiosidad os queria preguntar, por que la diferencia de poner: >>>a 'modo=simple' y >>> print a modo simple es decir, porque uno me imprime las comillas y el otro no? yo creo que porque: a -> nos escribe lo que tiene. que al ser un string lo pone con las comillas print a -> imprimo el contenido de a, y por ello sin las comillas? Es que no lo tengo del todo claro. Attila _______________________________________________________________ Copa del Mundo de la FIFA 2002 Disfruta en vídeo de los mejores momentos desde tu ordenador. http://fifaworldcup.yahoo.com/fc/es/ From antoniojezu en hotmail.com Mon May 27 18:59:16 2002 From: antoniojezu en hotmail.com (JzXto) Date: Mon, 27 May 2002 18:59:16 +0200 Subject: [Python-es] programa para formatear References: Message-ID: Yo me parto cada vez que leo algo del William, X·D ...con todos mis respetos, por supuesto. > buenos dias pythones, alguno de ustedes de casualidad tienen un programa que > me permita formatear un disquete, y visualizar su contenido. > > mil gracias From arociana en terra.es Mon May 27 19:31:06 2002 From: arociana en terra.es (Antonio Carrasco) Date: Mon, 27 May 2002 19:31:06 +0200 Subject: replace de cadena de caracteres In-Reply-To: <20020527160542.59601.qmail@web20908.mail.yahoo.com> References: <20020527160542.59601.qmail@web20908.mail.yahoo.com> Message-ID: >>>>>>a >>>'modo=simple' << ·replace (str, old, new[, maxsplit]) Return a copy of string str with all occurrences of substring old replaced by new. If the optional argument maxsplit is given, the first maxsplit occurrences are replaced. >> (http://pyspanishdoc.sourceforge.net/lib/module-string.html) Viene en inglés, pero más o menos significa que te devuelve una copia de la cadena con las sustituciones hechas. Si le das el argumento opcional maxsplit, le dices cuantas sustituciones quieres que se hagan. python>>>a=a.replace('simple','avanzado') o puedes usar otra variable para guardar el valor: python>>>otraVariable=a.replace('simple','avanzado') >>> >>>es decir, que la variable sigue con el mismo valor, es por ser >>>una cadena de texto? La variable pasa como primer parámetro de la función y no la modifica. como deciamos >>>antes sobre el problema de modificar un diccionario? es decir >>>que solo lo podria hacerlo si es una >>>lista, no? >>> >>>A modo de curiosidad os queria preguntar, por que la diferencia de poner: >>>>>>a >>>'modo=simple' >>> >>>y >>> >>>>>> print a >>>modo simple >>> >>>es decir, porque uno me imprime las comillas y el otro no? yo >>>creo que porque: >>>a -> nos escribe lo que tiene. que al ser un string lo pone con >>>las comillas >>>print a -> imprimo el contenido de a, y por ello sin las comillas? Sí, más o menos eso... << La sentencia print escribe el valor de la expresión o expresiones dadas. Se diferencia de escribir simplemente la expresión (como hemos hecho antes en los ejemplos de la calculadora) en el modo en que gestiona las expresiones múltiples y las cadenas. Las cadenas se imprimen sin comillas y se inserta un espacio entre los elementos para queden las cosas colocadas: >>> i = 256*256 >>> print 'El valor de i es', i El valor de i es 65536 >> (http://pyspanishdoc.sourceforge.net/tut/node5.html) Zalu2. From wilerbag en hotmail.com Mon May 27 20:05:50 2002 From: wilerbag en hotmail.com (william barto) Date: Mon, 27 May 2002 13:05:50 -0500 Subject: programa para formatear Message-ID: no entinedo para que se crea una lista si no se puede preguntar nada, a y de todas formas gracias don antonio(tan inteligente) >From: "JzXto" >Reply-To: python-es en aditel.org >To: >Subject: Re: [Python-es] programa para formatear >Date: Mon, 27 May 2002 18:59:16 +0200 > >Yo me parto cada vez que leo algo del William, X·D >...con todos mis respetos, por supuesto. > > > buenos dias pythones, alguno de ustedes de casualidad tienen un programa >que > > me permita formatear un disquete, y visualizar su contenido. > > > > mil gracias > >_______________________________________________ >Python-es mailing list >Python-es en aditel.org >http://listas.aditel.org/listinfo.py/python-es _________________________________________________________________ Descargue GRATUITAMENTE MSN Explorer en http://explorer.yupimsn.com/intl.asp. From antoniojezu en hotmail.com Mon May 27 20:29:17 2002 From: antoniojezu en hotmail.com (JzXto) Date: Mon, 27 May 2002 20:29:17 +0200 Subject: programa para formatear References: Message-ID: > no entinedo para que se crea una lista si no se puede preguntar nada, a y de > todas formas gracias don antonio(tan inteligente) Dios me libre de la inteligencia, podría acabar con mi creatividad. Si tienes algo más que decir, fuera de la lista, por favor. > >Yo me parto cada vez que leo algo del William, X·D > >...con todos mis respetos, por supuesto. > > > buenos dias pythones, alguno de ustedes de casualidad tienen un programa > >que > > > me permita formatear un disquete, y visualizar su contenido. No has estado muy acertado en tus 2 últimas preguntas, y sintiéndolo mucho, en serio, que no es por joder ni nada, me hace gracia. Me encantaría ayudarte, pero con este tipo de preguntas no hay quién se entienda, la verdad. ¿A qué módulo de python te refieres exactamente?. Estaré encantado de responderte y ayudarte dentro de mis posibilidades, si me escribes, fuera(ya que no parece de python) o dentro de la lista explicándome más detalladamente tu problema. NOTA: Para mí formatear significa dar formato, (hasta windows te advierte de que los datos de unidad se perderán!) lo cual hace después de leer " ...y visualizar su contenido"´... ¿lo coges? From wilerbag en hotmail.com Mon May 27 20:36:33 2002 From: wilerbag en hotmail.com (william barto) Date: Mon, 27 May 2002 13:36:33 -0500 Subject: [Python-es] programa para formatear Message-ID: y acaso no puedo preguntar???? >From: "JzXto" >Reply-To: python-es en aditel.org >To: >Subject: Re: [Python-es] programa para formatear >Date: Mon, 27 May 2002 20:29:17 +0200 > > > no entinedo para que se crea una lista si no se puede preguntar nada, a >y >de > > todas formas gracias don antonio(tan inteligente) > >Dios me libre de la inteligencia, podría acabar con mi creatividad. Si >tienes algo más que decir, fuera de la lista, por favor. > > > >Yo me parto cada vez que leo algo del William, X·D > > >...con todos mis respetos, por supuesto. > > > > buenos dias pythones, alguno de ustedes de casualidad tienen un >programa > > >que > > > > me permita formatear un disquete, y visualizar su contenido. > >No has estado muy acertado en tus 2 últimas preguntas, y sintiéndolo mucho, >en serio, que no es por joder ni nada, me hace gracia. Me encantaría >ayudarte, pero con este tipo de preguntas no hay quién se entienda, la >verdad. ¿A qué módulo de python te refieres exactamente?. Estaré encantado >de responderte y ayudarte dentro de mis posibilidades, si me escribes, >fuera(ya que no parece de python) o dentro de la lista explicándome más >detalladamente tu problema. > >NOTA: Para mí formatear significa dar formato, (hasta windows te advierte >de >que los datos de unidad se perderán!) lo cual hace después de leer " ...y >visualizar su contenido"´... ¿lo coges? >_______________________________________________ >Python-es mailing list >Python-es en aditel.org >http://listas.aditel.org/listinfo.py/python-es _________________________________________________________________ Únase con MSN Hotmail al servicio de correo electrónico más grande del mundo. http://www.hotmail.com From tjavier en usuarios.retecal.es Mon May 27 21:45:16 2002 From: tjavier en usuarios.retecal.es (=?ISO-8859-1?Q?Tom=E1s?= Javier Robles Prado) Date: Mon, 27 May 2002 21:45:16 +0200 Subject: Gracias por las sugerencias. Version actualizada disponible Message-ID: <1022528716.1533.4.camel@cable215a101.usuarios.retecal.es> Hola a todos Pues eso, agradecer a Chema sus sugerencias, ya hay una nueva versión corregida. Me esperaba que me diérais más palos por la parte de Python como Orientado a Objetos pero en fin ;) El que quiera echar un ojo a la nueva versión ya sabe, http://users.servicios.retecal.es/tjavier/python/Un_poco_de_Python.html En cuanto a lo de Zope... esperaré a tener más tiempo para meterme en ello de lleno pero la cosa tiene buena pinta. Gracias -- Un saludo, T. Javier Robles Prado Python para principiantes en http://users.servicios.retecal.es/tjavier Puedes encontrar mi clave pública en http://pgp.rediris.es:11371/pks/lookup?search=Robles+Prado&op=index ------------ próxima parte ------------ A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 232 bytes Desc: Esta parte del mensaje esta firmada digitalmente URL: From chemacortes en wanadoo.es Tue May 28 10:20:00 2002 From: chemacortes en wanadoo.es (Chema Cortes) Date: Tue, 28 May 2002 10:20:00 +0200 Subject: replace de cadena de caracteres Message-ID: > A modo de curiosidad os queria preguntar, por que la diferencia de poner: > >>>a > 'modo=simple' > > y > > >>> print a > modo=simple > > es decir, porque uno me imprime las comillas y el otro no? Voy a ver si te lo explico. Todo objeto tiene dos métodos que se emplean para su "salida" por pantalla: __str__ (conversión a string del objeto) y __repr__ ("representación" en texto del objeto). Ambos métodos son invocados cuando usas las funciones str() y repr(). Suelen ser lo mismo en la mayoría de objetos, pero se deja abierta la puerta para que se diferencien, como en el caso siguiente: >>> a=unicode("ñ","latin1") >>> print str(a) ñ >>> print repr(a) u'\xf1' Aquí se ve claro que el str() "transforma" a string, mientras que el repr() intenta ser lo más fiel al original. Aclarado esto, queda por decir que toda salida en el shell interactivo de python la realiza el método sys.displayhook(value), y que su definición depende de si lo estás usando desde el shell de linux, desde pythonwin, ó desde el idle. Cada cual tiene su propio displayhook, y es el que "añade" las comillas que tanto te mosqueaban. Prueba lo siguente: def mihook(value): print value import sys sys.displayhook=mihook Ahora verás como coinciden: >>> a="Hola, mundo" >>> print a Hola, mundo >>> a Hola, mundo La diferencia de las comillas es casi irrelevante. Suele dar mayores problemas con los números reales: >>> 1-1e-15 0.999999999999999 >>> print 1-1e-15 1.0 Saludos, -- Chema Cortes (chemacortes en wanadoo.es) | LinuxUser#142755 - SuSE Linux 8.0 ZARALINUX http://www.zaralinux.org | La ignorancia se apodera de quien PYTANDO http://pytando.sf.net | se contenta con lo que sabe _____________________________________________________________________ No olvides nada. Recuerda los cumpleaños, tus citas, tus cenas románticas y todo lo que quieras usando la Agenda personal de Wanadoo.es, desde cualquier lugar conectado a Internet. Visítala en http://www.wanadoo.es/agenda From miquel en llover.org Tue May 28 13:07:37 2002 From: miquel en llover.org (Miquel Llover) Date: Tue, 28 May 2002 13:07:37 +0200 Subject: Estructura para una tabla? Message-ID: <5.1.0.14.0.20020528130311.00a19da0@pop3.terra.es> Buenas, Tengo que guardar una tabla en memoria (pongamos unos 15 registros con 4 campos) y después ordenarla según el valor de los campos o hacer búsquedas de ciertos valores. Que estructura me recomendais de forma que las consultas y ordenaciones sean bastante eficientes? Y si la tabla fuera mayor? Gracias por las ayudas, ------------------------------------------------ Miquel Llover ------------------------------------------------ From rapto en arrakis.es Tue May 28 13:47:44 2002 From: rapto en arrakis.es (Marcos =?ISO-8859-1?Q?S=E1nchez?= Provencio) Date: 28 May 2002 13:47:44 +0200 Subject: Estructura para una tabla? In-Reply-To: <5.1.0.14.0.20020528130311.00a19da0@pop3.terra.es> References: <5.1.0.14.0.20020528130311.00a19da0@pop3.terra.es> Message-ID: <1022586464.1466.28.camel@cynar> El mar, 28-05-2002 a las 13:07, Miquel Llover escribió: > Buenas, > > Tengo que guardar una tabla en memoria (pongamos unos 15 registros con 4 > campos) y después ordenarla según el valor de los campos o hacer búsquedas > de ciertos valores. Que estructura me recomendais de forma que las > consultas y ordenaciones sean bastante eficientes? Y si la tabla fuera mayor? > Vale con poner una lista de diccionarios, si quieres acceder por nombre (campo código, campo descripción, campo fecha...), o una lista de listas, si quieres acceder por posición (campo 0, campo 1, campo 2...). Para ordenar, te hace falta una función de comparación a medida y llamar a sort con dicha función. Si la cosa se enreda, pásalo a algo con SQL. From hernan en orgmf.com.ar Tue May 28 13:50:56 2002 From: hernan en orgmf.com.ar (Hernan Martinez Foffani) Date: Tue, 28 May 2002 13:50:56 +0200 Subject: Estructura para una tabla? In-Reply-To: <5.1.0.14.0.20020528130311.00a19da0@pop3.terra.es> References: <5.1.0.14.0.20020528130311.00a19da0@pop3.terra.es> Message-ID: > Tengo que guardar una tabla en memoria (pongamos unos 15 registros con 4 > campos) y después ordenarla según el valor de los campos o hacer > búsquedas > de ciertos valores. Que estructura me recomendais de forma que las > consultas y ordenaciones sean bastante eficientes? Y si la tabla > fuera mayor? Algo sencillo es usar una lista de tuplas, usando una tupla por registro. >>> l = [('a',3), ('b',1)] >>> l [('a', 3), ('b', 1)] >>> para ordenar por las diferentes columnas, usas el metodo sort de las listas pasandole como parametro una funcion de comparacion especifica. >>> def c1(x, y): ''' ordena por la columna 2 de las tuplas''' if x[1] < y[1]: return -1 elif x[1] == y[1]: return 0 else: return 1 >>> >>> l.sort(c1) >>> l [('b', 1), ('a', 3)] >>> tendrías que hacer una funcion de comparacion para cada columna o mejor aun, una funcion que "cree" las otras que necesites. con python 2.2 en adelante también podrías derivar el tipo list en uno propio, para que te quede algo así: >>> l.sortbyfield(1) >>> l [('b', 1), ('a', 3)] >>> con una estructura de datos así, las busquedas de valores son lineales. tienes que recorrer toda la lista. -Hernan From hernan en orgmf.com.ar Tue May 28 14:10:54 2002 From: hernan en orgmf.com.ar (Hernan Martinez Foffani) Date: Tue, 28 May 2002 14:10:54 +0200 Subject: replace de cadena de caracteres In-Reply-To: References: Message-ID: > >>> a=unicode("ñ","latin1") > >>> print str(a) > ñ > >>> print repr(a) > u'\xf1' > > Aquí se ve claro que el str() "transforma" a string, mientras que > el repr() intenta ser lo más fiel al original. tal cual. y dicho de otra forma: la idea es que str() muestre al objeto en forma bonita, y que repr() trate de respetar en lo posible la regla: x == eval(repr(x)) From mostroratas en yahoo.es Tue May 28 14:46:02 2002 From: mostroratas en yahoo.es (=?iso-8859-1?q?Attila=20Saorin?=) Date: Tue, 28 May 2002 14:46:02 +0200 (CEST) Subject: replace de cadena de caracteres In-Reply-To: References: Message-ID: <20020528124602.45442.qmail@web20910.mail.yahoo.com> --- Chema Cortes escribió: > > A modo de curiosidad os queria preguntar, por que la diferencia de poner: > def mihook(value): > print value > > import sys > sys.displayhook=mihook > > Ahora verás como coinciden: > > >>> a="Hola, mundo" > >>> print a > Hola, mundo > >>> a > Hola, mundo Ok, todo perfectamente claro y comprobado que funciona. Graciassss Attila _______________________________________________________________ Copa del Mundo de la FIFA 2002 Disfruta en vídeo de los mejores momentos desde tu ordenador. http://fifaworldcup.yahoo.com/fc/es/ From miquel en llover.org Wed May 29 00:15:02 2002 From: miquel en llover.org (Miquel Llover) Date: Wed, 29 May 2002 00:15:02 +0200 Subject: [Python-es] Estructura para una tabla? In-Reply-To: References: <5.1.0.14.0.20020528130311.00a19da0@pop3.terra.es> Message-ID: <5.1.0.14.0.20020528234852.00a20800@pop3.terra.es> Buenas Lo estoy intentando con una lista de diccionarios (tal y como propone Marcos). Como puedo crear un método de mi clase "lista_pedidos" que me devuelva una lista ordanada por uno de los campos? He intentado lo siguiente (siguiendo la idea de Hernan), pero no se si voy bien (de hecho, me dice que no encuentra "c1")... class lista_pedidos: def __init__(self): self.l = [] def append(self, nc, pieza, cant, fecha): # construyo un diccionario (tengo otra clase llamada "pedido") c = pedido(nc, pieza, cant, fecha) # lo meto en la lista self.l.append(c) # ...aqui van más métodos... # def c1(a, b): # Aqui "pieza" me devuelve el numero de pieza del pedido if a.pieza() < b.pieza(): return -1 elif a.pieza() == b.pieza(): return 0 else: return 1 def ordena_pieza(self): # Aqui es donde me tendría que devolver una lista de pedidos ordenada (cada pedido es un diccionario) return self.l.sort(c1) No se si me estoy liando demasiado... Gracias, Miquel At 13:50 28/05/02, you wrote: > > Tengo que guardar una tabla en memoria (pongamos unos 15 registros con 4 > > campos) y después ordenarla según el valor de los campos o hacer > > búsquedas > > de ciertos valores. Que estructura me recomendais de forma que las > > consultas y ordenaciones sean bastante eficientes? Y si la tabla > > fuera mayor? > >Algo sencillo es usar una lista de tuplas, usando una tupla por registro. > > >>> l = [('a',3), ('b',1)] > >>> l >[('a', 3), ('b', 1)] > >>> > >para ordenar por las diferentes columnas, usas el metodo sort de las >listas pasandole como parametro una funcion de comparacion especifica. > > >>> def c1(x, y): > ''' ordena por la columna 2 de las tuplas''' > if x[1] < y[1]: > return -1 > elif x[1] == y[1]: > return 0 > else: > return 1 > > >>> > >>> l.sort(c1) > >>> l >[('b', 1), ('a', 3)] > >>> > >tendrías que hacer una funcion de comparacion para cada columna o >mejor aun, una funcion que "cree" las otras que necesites. > >con python 2.2 en adelante también podrías derivar el tipo list >en uno propio, para que te quede algo así: > > >>> l.sortbyfield(1) > >>> l >[('b', 1), ('a', 3)] > >>> > >con una estructura de datos así, las busquedas de valores son >lineales. tienes que recorrer toda la lista. > >-Hernan > >_______________________________________________ >Python-es mailing list >Python-es en aditel.org >http://listas.aditel.org/listinfo.py/python-es ------------------------------------------------ Miquel Llover ------------------------------------------------ From chemacortes en wanadoo.es Wed May 29 09:54:21 2002 From: chemacortes en wanadoo.es (Chema Cortes) Date: Wed, 29 May 2002 09:54:21 +0200 Subject: Estructura para una tabla? Message-ID: > Lo estoy intentando con una lista de diccionarios (tal y como propone > Marcos). Como puedo crear un método de mi clase "lista_pedidos" que me > devuelva una lista ordanada por uno de los campos? He intentado lo > siguiente (siguiendo la idea de Hernan), pero no se si voy bien (de hecho, > me dice que no encuentra "c1")... > > class lista_pedidos: > def __init__(self): > self.l = [] > > def append(self, nc, pieza, cant, fecha): > # construyo un diccionario (tengo otra clase llamada "pedido") > c = pedido(nc, pieza, cant, fecha) > # lo meto en la lista > self.l.append(c) > > # ...aqui van más métodos... # > > def c1(a, b): > # Aqui "pieza" me devuelve el numero de pieza del pedido > if a.pieza() < b.pieza(): > return -1 > elif a.pieza() == b.pieza(): > return 0 > else: > return 1 OJO! por ser c1 un método, el primer argumento siempre será una referencia al objeto. O sea, que el argumento 'a' es lo que, por convenio, se suele poner como 'self'. A parte de esto, los dos argumentos son dos elementos de la lista (nc, pieza, cant, fecha). La comparación que quieres hacer es sobre el segundo elemento: def cmp_pieza(a,b): if a[1]b[1] > > def ordena_pieza(self): > # Aqui es donde me tendría que devolver una lista de pedidos ordenada > (cada pedido es un diccionario) > return self.l.sort(c1) Estás referenciado mal: 'self.c1' Te aconsejo que saques 'c1' de la definición de clase. Saludos, -- Chema Cortes (chemacortes en wanadoo.es) _____________________________________________________________________ No olvides nada. Recuerda los cumpleaños, tus citas, tus cenas románticas y todo lo que quieras usando la Agenda personal de Wanadoo.es, desde cualquier lugar conectado a Internet. Visítala en http://www.wanadoo.es/agenda From rapto en arrakis.es Wed May 29 10:17:16 2002 From: rapto en arrakis.es (Marcos =?ISO-8859-1?Q?S=E1nchez?= Provencio) Date: 29 May 2002 10:17:16 +0200 Subject: Estructura para una tabla? In-Reply-To: References: Message-ID: <1022660236.1457.10.camel@cynar> El mié, 29-05-2002 a las 09:54, Chema Cortes escribió: > A parte de esto, los dos argumentos son dos elementos de la lista (nc, pieza, cant, fecha). La comparación que quieres hacer es sobre el segundo elemento: > > def cmp_pieza(a,b): > if a[1] else: return a[1]>b[1] Ahí es más fácil decir: def cmp_pieza(a,b): return cmp(a[1],b[1]) From mostroratas en yahoo.es Wed May 29 12:01:02 2002 From: mostroratas en yahoo.es (=?iso-8859-1?q?Attila=20Saorin?=) Date: Wed, 29 May 2002 12:01:02 +0200 (CEST) Subject: site.py In-Reply-To: <200205271434.g4REYvA01188@spisa.act.uji.es> References: <200205271434.g4REYvA01188@spisa.act.uji.es> Message-ID: <20020529100102.79827.qmail@web20904.mail.yahoo.com> --- Chema Cortes escribió: > Es raro es que no tengas el 'help' configurado. Prueba con: > > >>> from pydoc import help > >>> help(os) > > Si esto te funciona, es que te falta configurar el site.py Hola Chema, no consigo dar con ese fichero, si me dices donde deberia estar y que deberia cambiar te lo agradeceria, pq ayuda a ir mas rapido programando. Otra cosilla, ?como salgo del help sin salirme del entorno python? es que no lo he encontrado y acabo saliendo del todo. Attila _______________________________________________________________ Copa del Mundo de la FIFA 2002 Disfruta en vídeo de los mejores momentos desde tu ordenador. http://fifaworldcup.yahoo.com/fc/es/ From chemacortes en wanadoo.es Wed May 29 12:10:23 2002 From: chemacortes en wanadoo.es (Chema Cortes) Date: Wed, 29 May 2002 12:10:23 +0200 Subject: [Python-es] Estructura para una tabla? Message-ID: > def cmp_pieza(a,b): > if a[1] else: return a[1]>b[1] Mirando mejor el código, me he dado cuenta que usa una clase llamada Pedido. Es en esta clase donde mejor debería ir la función de comparación: clase Pedido: def __init__(self, nc, pieza, cant, fecha): self.nc=nc self.pieza=pieza self.cant=cant self.fecha=fecha ... def __cmp__(self,p): return cmp(self.pieza,p.pieza) (Aquí he añadido la sugerencia hecha por Marcos) De este modo, en 'lista_pedidos' no hace falta definir nada más: class lista_pedidos: ... def ordena_pieza(self): return self.l.sort() Hay que trabajar un poco más para hacer que se pueda cambiar la columna por la que se ordena. Como sugerencia, se puede partir desde aquí: class Pedido: def __init__(self,nc,pieza,cant,fecha): self.pedido={ "nc":nc, "pieza":pieza, "cant":cant, "fecha":fecha } def compara(column): return lambda a,b,column=column: cmp(a.pedido[column],b.pedido[column]) compara=staticmethod(compara) def __cmp__(self, p): compPieza=self.compara("pieza") return compPieza(self,p) class lista_pedido: .... def ordena_pieza(self): compPieza=Pieza.compara("pieza") return self.l.sort(compPieza) def ordena_fecha(self): compFecha=Pieza.compara("fecha") return self.l.sort(compFecha) Aquí se puede ver un ejemplo de "método estático"., novedad para Python 2.2.x (( sys.version_info >= (2,2) )) Espero no haberme confundido con la indentación: 'compara=staticmethod(compara)' está al mismo nivel de identación que las definiciones de métodos. Ya se que queda bastante incomprensible. He intentado hacer un codigo lo más genérico posible. Supongo que se puede hacer más legible haciendo explícitas las funciones de comparación por cada campo. Saludos, -- Chema Cortes (chemacortes en wanadoo.es) _____________________________________________________________________ No olvides nada. Recuerda los cumpleaños, tus citas, tus cenas románticas y todo lo que quieras usando la Agenda personal de Wanadoo.es, desde cualquier lugar conectado a Internet. Visítala en http://www.wanadoo.es/agenda From hernan en orgmf.com.ar Wed May 29 12:26:09 2002 From: hernan en orgmf.com.ar (Hernan Martinez Foffani) Date: Wed, 29 May 2002 12:26:09 +0200 Subject: site.py In-Reply-To: <20020529100102.79827.qmail@web20904.mail.yahoo.com> References: <20020529100102.79827.qmail@web20904.mail.yahoo.com> Message-ID: > Otra cosilla, ?como salgo del help sin salirme del entorno > python? es que no lo he encontrado y > acabo saliendo del todo. igual que para salir de python: control-d (o control-z si estas en Windows) From mostroratas en yahoo.es Wed May 29 12:34:47 2002 From: mostroratas en yahoo.es (=?iso-8859-1?q?Attila=20Saorin?=) Date: Wed, 29 May 2002 12:34:47 +0200 (CEST) Subject: site.py In-Reply-To: References: Message-ID: <20020529103447.29453.qmail@web20906.mail.yahoo.com> --- Hernan Martinez Foffani escribió: > > Otra cosilla, ?como salgo del help sin salirme del entorno > > python? es que no lo he encontrado y > > acabo saliendo del todo. > > igual que para salir de python: control-d (o control-z si estas > en Windows) Pues, pues, no, eso ya lo intente y lo acabo de comprobar de nuevo, con el control-d voy avanzando, pero una vez terminado de leer todo, no sirve, no consigo salir con eso. Pero no os preocupeis, despues de teclear muchas teclas de nuevo, ya lo he encontrado, como siempre la "q" (quit) nos saca de apuros y sale del help ;) Pues nada, sera que acostumbrado al emacs, siempre busco las cosas como combinaciones de teclas en vez de por si solas, deformacion estudiantil (lo de profesional todavia no ha llegado). Attila _______________________________________________________________ Copa del Mundo de la FIFA 2002 Disfruta en vídeo de los mejores momentos desde tu ordenador. http://fifaworldcup.yahoo.com/fc/es/ From chemacortes en wanadoo.es Wed May 29 13:22:59 2002 From: chemacortes en wanadoo.es (Chema Cortes) Date: Wed, 29 May 2002 13:22:59 +0200 Subject: [Python-es] site.py Message-ID: > > Si esto te funciona, es que te falta configurar el site.py > > > Hola Chema, > > no consigo dar con ese fichero, si me dices donde deberia estar y que deberia cambiar te lo > agradeceria, pq ayuda a ir mas rapido programando. Estoy sospechando que el paquete python para Debian viene sin el 'site.py'. ¿Alguien más lo puede confirmar? Debería estar en $PYTHONPATH/Lib/site.py Te envió (en privado) una copia del que tengo instalado (ActivePython for windows). Sólo tendrás que cambiar donde pone 'encoding = "mbcs"' (win)por 'encoding = "latin1"' (linux) (en los fuentes originales de python, la codificación por defecto es "ascii"). Saludos, -- Chema Cortes (chemacortes en wanadoo.es) _____________________________________________________________________ No olvides nada. Recuerda los cumpleaños, tus citas, tus cenas románticas y todo lo que quieras usando la Agenda personal de Wanadoo.es, desde cualquier lugar conectado a Internet. Visítala en http://www.wanadoo.es/agenda From rapto en arrakis.es Wed May 29 13:32:21 2002 From: rapto en arrakis.es (Marcos =?ISO-8859-1?Q?S=E1nchez?= Provencio) Date: 29 May 2002 13:32:21 +0200 Subject: site.py In-Reply-To: References: Message-ID: <1022671941.4666.4.camel@cynar> Creo que en debian woody está el help configurado para el 2.2, pero no para el 2.1. El mié, 29-05-2002 a las 13:22, Chema Cortes escribió: > > > Si esto te funciona, es que te falta configurar el site.py > > > > > > Hola Chema, > > > > no consigo dar con ese fichero, si me dices donde deberia estar y que deberia cambiar te lo > > agradeceria, pq ayuda a ir mas rapido programando. > > Estoy sospechando que el paquete python para Debian viene sin el 'site.py'. ¿Alguien más lo puede confirmar? > > Debería estar en $PYTHONPATH/Lib/site.py > Te envió (en privado) una copia del que tengo instalado (ActivePython for windows). Sólo tendrás que cambiar donde pone 'encoding = "mbcs"' (win)por 'encoding = "latin1"' (linux) (en los fuentes originales de python, la codificación por defecto es "ascii"). > > > Saludos, > -- > Chema Cortes (chemacortes en wanadoo.es) > _____________________________________________________________________ > No olvides nada. Recuerda los cumpleaños, tus citas, tus cenas románticas y > todo lo que quieras usando la Agenda personal de Wanadoo.es, desde cualquier > lugar conectado a Internet. Visítala en http://www.wanadoo.es/agenda > > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo.py/python-es From zoso en demiurgo.org Wed May 29 14:04:24 2002 From: zoso en demiurgo.org (Esteban Manchado =?iso-8859-1?Q?Vel=E1zquez?=) Date: Wed, 29 May 2002 13:04:24 +0100 Subject: site.py In-Reply-To: References: Message-ID: <5.1.0.14.0.20020529125950.00a56010@www.demiurgo.org> At 13:22 29/05/02 +0200, you wrote: >[...] >Estoy sospechando que el paquete python para Debian viene sin el >'site.py'. ¿Alguien más lo puede confirmar? En el paquete python-base de potato hay un site.py en usr/lib/python1.5/site.py. En cuanto a Woody y Sid, hay *dos* site.py, en los directorios /etc/pythonx.y y /usr/lib/pythonx.y, para "x.y" igual a "1.5", "2.1" y "2.2" (pertenecientes a los paquetes pythonx.y) :-) Todo esto se puede consultar en http://www.debian.org/distrib/packages, en el apartado "Buscar en el contenido de los paquetes", buscando "site.py" (se puede elegir la distribución justo debajo de la caja de texto). -- Esteban Manchado Velázquez - http://www.demiurgo.org No software patents in Europe! - freepatents.org - proinnova.hispalinux.es Join Amnesty International - http://amnesty.org/actnow/join.htm From mostroratas en yahoo.es Wed May 29 14:59:55 2002 From: mostroratas en yahoo.es (=?iso-8859-1?q?Attila=20Saorin?=) Date: Wed, 29 May 2002 14:59:55 +0200 (CEST) Subject: site.py In-Reply-To: References: Message-ID: <20020529125955.52645.qmail@web20902.mail.yahoo.com> --- Chema Cortes escribió: > > > Si esto te funciona, es que te falta configurar el site.py > Debería estar en $PYTHONPATH/Lib/site.py > Te envió (en privado) una copia del que tengo instalado (ActivePython for windows). Sólo tendrás > que cambiar donde pone 'encoding = "mbcs"' (win)por 'encoding = "latin1"' (linux) (en los > fuentes originales de python, la codificación por defecto es "ascii"). pues con el el mensaje que han mandado despues he mirado directamente en /usr/lib/python2.1/ y ahi si habia un enlace a un fichero en /etc/python2.1/site.py (no se pq antes no lo encontre) que he estado observando, lo he comparado con el que me has enviado y son un poco diferentes, no se hasta que punto importantes las diferencias, mas que nada porque hay mas de 300 lineas, el caso es que he buscado lo que me dices, y para mi sorpresa pone: encoding="ascii" nada de latin1, con lo que ya si que no tengo ni idea si deberia dejarlo en ascii, que como dice el fichero es lo predeterminado y que si lo cambio es para experimentar o ponerlo en latin1 como me dices. El caso es que ents. tampoco se pq no va si este fichero existe y pone lo de ascii. Tb. te digo que no domino el linux, asi que puede que sea algo obvio, pero estoy aprendiendo ahora. Muchas gracias. Attila _______________________________________________________________ Copa del Mundo de la FIFA 2002 Disfruta en vídeo de los mejores momentos desde tu ordenador. http://fifaworldcup.yahoo.com/fc/es/ From morillas en posta.unizar.es Wed May 29 17:22:02 2002 From: morillas en posta.unizar.es (luis miguel) Date: Wed, 29 May 2002 17:22:02 +0200 Subject: [Python-es] site.py In-Reply-To: =?iso-8859-1?Q?=3C1022671941=2E4666=2E4=2Ecamel=40cynar=3E=3B_from_rapto?= =?iso-8859-1?Q?=40arrakis=2Ees_on_mi=E9=2C_may_29=2C_2002_at_01:32:21_+0?= =?iso-8859-1?Q?200?= References: <1022671941.4666.4.camel@cynar> Message-ID: <20020529172202.A804@marmota> Asunto: Re: Re:[Python-es] site.py Fecha: mié, may 29, 2002 at 01:32:21 +0200 Citando a Marcos Sánchez Provencio (rapto en arrakis.es): > Creo que en debian woody está el help configurado para el 2.2, pero no > para el 2.1. > Lo acabo de comprobar también. En el 2.2 ya está configurado. Yo lo uso en un equipo con Debian potato sin problema. Un saludo Luis Miguel From chemacortes en wanadoo.es Wed May 29 15:55:19 2002 From: chemacortes en wanadoo.es (Chema Cortes) Date: Wed, 29 May 2002 15:55:19 +0200 Subject: [Python-es] site.py Message-ID: > pues con el el mensaje que han mandado despues he mirado directamente en /usr/lib/python2.1/ y ahi > si habia un enlace a un fichero en /etc/python2.1/site.py (no se pq antes no lo encontre) que he > estado observando, lo he comparado con el que me has enviado y son un poco diferentes, no se hasta > que punto importantes las diferencias, mas que nada porque hay mas de 300 lineas, el caso es que > he buscado lo que me dices, y para mi sorpresa pone: > encoding="ascii" nada de latin1, con lo que ya si que no tengo ni idea si deberia dejarlo en > ascii, que como dice el fichero es lo predeterminado y que si lo cambio es para experimentar o > ponerlo en latin1 como me dices. Lo de poner "latin1" en lugar de "ascii" era tan sólo un consejo para no tener problemas al utilizar cadenas con vocales acentuadas o con las eñes en linux. Por lo que decía Marcos, en el python 2.1 para Debian no está configurado el help, por lo tanto tendrás que añadir en tu site.py las siguientes líneas (ó, casi mejor, que te actualizes a python 2.2): class _Helper: def __repr__(self): return "Type help() for interactive help, " \ "or help(object) for help about object." def __call__(self, *args, **kwds): import pydoc return pydoc.help(*args, **kwds) __builtin__.help = _Helper() PD: la variable PYTHONPATH no es preciso tenerla definida. Es como se referencia la ruta donde se encuentran los módulos del python, por defecto en /usr/lib/python. Mírate el 'man python' Saludos, -- Chema Cortes (chemacortes en wanadoo.es) _____________________________________________________________________ No olvides nada. Recuerda los cumpleaños, tus citas, tus cenas románticas y todo lo que quieras usando la Agenda personal de Wanadoo.es, desde cualquier lugar conectado a Internet. Visítala en http://www.wanadoo.es/agenda From morillas en posta.unizar.es Wed May 29 18:49:18 2002 From: morillas en posta.unizar.es (luis miguel) Date: Wed, 29 May 2002 18:49:18 +0200 Subject: Estructura para una tabla? In-Reply-To: =?iso-8859-1?Q?=3CGWVAXB$1901E28BF182889FDC89605B87BDB9BF=40wanadoo=2Ees?= =?iso-8859-1?Q?=3E=3B_from_chemacortes=40wanadoo=2Ees_on_mi=E9=2C_may_29?= =?iso-8859-1?Q?=2C_2002_at_12:10:23_+0200?= References: Message-ID: <20020529184918.A961@marmota> Asunto: RE: [Python-es] Estructura para una tabla? Fecha: mié, may 29, 2002 at 12:10:23 +0200 Citando a Chema Cortes (chemacortes en wanadoo.es): Muy chulo, Chema. Una tontadilla te comento: > > class Pedido: > def __init__(self,nc,pieza,cant,fecha): > self.pedido={ > "nc":nc, "pieza":pieza, "cant":cant, "fecha":fecha > } > > def compara(column): > return lambda a,b,column=column: cmp(a.pedido[column],b.pedido[column]) > compara=staticmethod(compara) > > def __cmp__(self, p): > compPieza=self.compara("pieza") > return compPieza(self,p) > > class lista_pedido: > > .... > def ordena_pieza(self): > compPieza=Pieza.compara("pieza") ^^^^^ compFecha=Pedido.compara("pieza") > return self.l.sort(compPieza) > > def ordena_fecha(self): > compFecha=Pieza.compara("fecha") Un saludo Luis Miguel From mostroratas en yahoo.es Wed May 29 17:09:39 2002 From: mostroratas en yahoo.es (=?iso-8859-1?q?Attila=20Saorin?=) Date: Wed, 29 May 2002 17:09:39 +0200 (CEST) Subject: [Python-es] Tratando de instalar la 2.2 In-Reply-To: <20020529172202.A804@marmota> Message-ID: <20020529150939.95715.qmail@web20908.mail.yahoo.com> --- luis miguel escribió: > > Lo acabo de comprobar también. En el 2.2 ya está configurado. > Yo lo uso en un equipo con Debian potato sin problema. Pues chicos, no se que deciros :( acabo de intentar instalarme la 2.2 siguiendo vuestros consejos y parece que o no le gusta o no lo se hacer (imagino que lo segundo sera lo mas probable) he hecho: apt-cache search python me han salido mogollon de cosas e instalado las que ponian python2.2, con: apt-get install python2.2xxxx segun los paquetes al terminar he intentado entrar en python y seguia con la 2.1.2 he hecho un remove de todo la 2.1 y lo he intentado ejecutar de nuevo y nada, he borrado todo de nuevo, todo lo de python2.* y hecho lo mismo partiendo desde cero, instalar todos los paquetes de las 2.2, no solo los que me interesaban: apt-get install python2.2* y ahora, al menos tengo la 2.1.3, vale, algo he mejorado, pero no es de la que vosotros hablais, eso si, es de abril de este anio, no? cuando se supone que ha salido la 2.2? O me decis una formula magica o intentare seguir con esto, que tampoco es algo tan grave, al menos por ahora :( Ahora tendre que ver otra vez lo del site.py al menos, para ver como ha quedado el pobre ;) Gracias de todas maneras. Attila PD: Al menos aprendo cosas de la Debian :) _______________________________________________________________ Copa del Mundo de la FIFA 2002 Disfruta en vídeo de los mejores momentos desde tu ordenador. http://fifaworldcup.yahoo.com/fc/es/ From mostroratas en yahoo.es Wed May 29 17:26:38 2002 From: mostroratas en yahoo.es (=?iso-8859-1?q?Attila=20Saorin?=) Date: Wed, 29 May 2002 17:26:38 +0200 (CEST) Subject: [Python-es] site.py In-Reply-To: Message-ID: <20020529152638.17232.qmail@web20907.mail.yahoo.com> --- Chema Cortes escribió: > > pues con el el mensaje que han mandado > Lo de poner "latin1" en lugar de "ascii" era tan sólo un consejo para no tener problemas al > utilizar cadenas con vocales acentuadas o con las eñes en linux. A pues no lo sabia, gracias, el caso es que mi teclado no soporta ni una cosa ni la otra, pero es bueno saberlo para cuando si lo soporte ;) > class _Helper: > def __repr__(self): > return "Type help() for interactive help, " \ > "or help(object) for help about object." > def __call__(self, *args, **kwds): > import pydoc > return pydoc.help(*args, **kwds) > > __builtin__.help = _Helper() Bueno, al menos esto si funciona, ya lo he aniadido al site.py y lo he probado, todo correcto. > Saludos, Igualmente y gracias. Attila _______________________________________________________________ Copa del Mundo de la FIFA 2002 Disfruta en vídeo de los mejores momentos desde tu ordenador. http://fifaworldcup.yahoo.com/fc/es/ From rapto en arrakis.es Wed May 29 17:40:29 2002 From: rapto en arrakis.es (Marcos =?ISO-8859-1?Q?S=E1nchez?= Provencio) Date: 29 May 2002 17:40:29 +0200 Subject: [Python-es] Tratando de instalar la 2.2 In-Reply-To: <20020529150939.95715.qmail@web20908.mail.yahoo.com> References: <20020529150939.95715.qmail@web20908.mail.yahoo.com> Message-ID: <1022686829.4666.20.camel@cynar> El mié, 29-05-2002 a las 17:09, Attila Saorin escribió: > --- luis miguel escribió: > > > Lo acabo de comprobar también. En el 2.2 ya está configurado. > > Yo lo uso en un equipo con Debian potato sin problema. > > Pues chicos, no se que deciros :( > acabo de intentar instalarme la 2.2 siguiendo vuestros consejos y parece que o no le gusta o no lo > se hacer (imagino que lo segundo sera lo mas probable) > > he hecho: > apt-cache search python > > me han salido mogollon de cosas e instalado las que ponian python2.2, con: > apt-get install python2.2xxxx segun los paquetes > > al terminar he intentado entrar en python y seguia con la 2.1.2 > > he hecho un remove de todo la 2.1 y lo he intentado ejecutar de nuevo y nada, he borrado todo de > nuevo, todo lo de python2.* y hecho lo mismo partiendo desde cero, instalar todos los paquetes de > las 2.2, no solo los que me interesaban: > apt-get install python2.2* > > y ahora, al menos tengo la 2.1.3, vale, algo he mejorado, pero no es de la que vosotros hablais, > eso si, es de abril de este anio, no? cuando se supone que ha salido la 2.2? > > O me decis una formula magica o intentare seguir con esto, que tampoco es algo tan grave, al menos > por ahora :( > > Ahora tendre que ver otra vez lo del site.py al menos, para ver como ha quedado el pobre ;) > > Gracias de todas maneras. > El Python de Debian es por defecto siempre la 2.1. Si quieres la 2.2, hay que decirlo explícitamente: python2.2 Supongo que podrás modificar el enlace python para que apunte a la 2.2, pero igual te rompe el zpoe o cosas así. Lo más seguro sería cambiar el PATH para el usuario en cuestión para que python tirase de la 2.2 y el sistema de la 2.1. marcos en cynar:~/src/CVS/wotta$ ls -la /usr/bin/python lrwxrwxrwx 1 root root 9 abr 29 12:42 /usr/bin/python -> python2.1 From mostroratas en yahoo.es Wed May 29 18:09:35 2002 From: mostroratas en yahoo.es (=?iso-8859-1?q?Attila=20Saorin?=) Date: Wed, 29 May 2002 18:09:35 +0200 (CEST) Subject: la 2.2 ok y dudilla In-Reply-To: <1022686829.4666.20.camel@cynar> References: <1022686829.4666.20.camel@cynar> Message-ID: <20020529160935.93005.qmail@web20902.mail.yahoo.com> --- Marcos Sánchez Provencio escribió: > > > El Python de Debian es por defecto siempre la 2.1. Si quieres la 2.2, > hay que decirlo explícitamente: > > python2.2 Ok, todo corrento ahora, ejecutando eso me sale la 2.2, perfecto, gracias. Ya que estoy, escribo otra duda, no se si os acordais que queria modificar un texto de un fichero, o aniadirle algo si no estaba, el caso es que ya esta casi, algo asi rapido, seria: >>> n=open('sal5.txt','w') >>> n.write(open('texto1.txt','r').read().replace('texto a cambiar','PARECE QUE SALE')) >>> n.close() he abusado un poco del one-liners :) La cosa es que mi duda es saber si con este codigo me dejo el descriptor de fichero del open('texto1.txt','r') perdido sin cerrar o al estar embebido no pasa nada. Yo creo que se me queda abierto, con lo que deberia cerrarlo, en este caso, como se cerraria? Como lectores o programadores de codigo, creeis que es mejor que aunque sean mas lineas de codigo, deberia ser mas claro el codigo? con lo que no abusar de cosas como estas? Pues nada, gracias de nuevo. Parece que esto avanza :) Attila _______________________________________________________________ Copa del Mundo de la FIFA 2002 Disfruta en vídeo de los mejores momentos desde tu ordenador. http://fifaworldcup.yahoo.com/fc/es/ From rapto en arrakis.es Wed May 29 19:03:06 2002 From: rapto en arrakis.es (Marcos =?ISO-8859-1?Q?S=E1nchez?= Provencio) Date: 29 May 2002 19:03:06 +0200 Subject: [Python-es] la 2.2 ok y dudilla In-Reply-To: <20020529160935.93005.qmail@web20902.mail.yahoo.com> References: <20020529160935.93005.qmail@web20902.mail.yahoo.com> Message-ID: <1022691786.4687.68.camel@cynar> El mié, 29-05-2002 a las 18:09, Attila Saorin escribió: > --- Marcos Sánchez Provencio escribió: > > > > > El Python de Debian es por defecto siempre la 2.1. Si quieres la 2.2, > > hay que decirlo explícitamente: > > > > python2.2 > > Ok, todo corrento ahora, ejecutando eso me sale la 2.2, perfecto, gracias. > > Ya que estoy, escribo otra duda, no se si os acordais que queria modificar un texto de un fichero, > o aniadirle algo si no estaba, el caso es que ya esta casi, algo asi rapido, seria: > > >>> n=open('sal5.txt','w') > >>> n.write(open('texto1.txt','r').read().replace('texto a cambiar','PARECE QUE SALE')) > >>> n.close() > > he abusado un poco del one-liners :) Yo aún diría más: open('sal5.txt','w').write(open('texto1.txt','r').read().replace('texto a cambiar','PARECE QUE SALE')) > > La cosa es que mi duda es saber si con este codigo me dejo el descriptor de fichero del > open('texto1.txt','r') perdido sin cerrar o al estar embebido no pasa nada. Yo creo que se me > queda abierto, con lo que deberia cerrarlo, en este caso, como se cerraria? Se cierra en el finalizador del objeto file. > > Como lectores o programadores de codigo, creeis que es mejor que aunque sean mas lineas de codigo, > deberia ser mas claro el codigo? con lo que no abusar de cosas como estas? Estás al límite... En concreto esto mete el fichero en memoria (2 veces, para la original y la nueva versión), igual es abusar de la memoria. From amaya en debian.org Wed May 29 18:41:39 2002 From: amaya en debian.org (Amaya) Date: Wed, 29 May 2002 18:41:39 +0200 Subject: [py2exe] Python en NT: Compilar scripts Message-ID: <20020529164139.GA569@aenima> Buenas... Acabo de apuntarme a la lista, sirva este mail de presentación. Estoy intentando compilar un script para que funcione en NT, sobre todo para no tener que instalar Python en la máquina del cliente, en la que apenas puedo tocar. No sé si hablar de NT es offtopic aquí. Si es así, disculpadme y /ignore :-) El problema básico es que el py2exe me está dando dolores de cabeza a millares. Aleatoriamente da unos errores u otros, veréis: - Error de Windows: "La CPU NTVMD ha encontrado una instrucción no permitida C5:06......". Poco alentador. - Mi setup.py es este: -------------------------------- from distutils.core import setup import py2exe setup(name="mi_script",scripts=["mi_script"]) -------------------------------- Según las instrucciones de http://starship.python.net/crew/theller/py2exe/ debo invocarlo así: c:\python21\python.exe setup.py mi_script.py Y parece que algo me falla, pues recibo este error: "Import error: No module named py2exe". Bien, sed pacientes conmigo, soy nueva con Python y NT *no* es lo mío :-) Gracias por vuestro tiempo, un saludo. -- Amaya Rodrigo Sastre Dpto. Sistemas www.meteologica.es Meteorología Avanzada From rapto en arrakis.es Wed May 29 19:14:43 2002 From: rapto en arrakis.es (Marcos =?ISO-8859-1?Q?S=E1nchez?= Provencio) Date: 29 May 2002 19:14:43 +0200 Subject: [Python-es] [py2exe] Python en NT: Compilar scripts In-Reply-To: <20020529164139.GA569@aenima> References: <20020529164139.GA569@aenima> Message-ID: <1022692484.4666.76.camel@cynar> El mié, 29-05-2002 a las 18:41, Amaya escribió: > Buenas... > > Acabo de apuntarme a la lista, sirva este mail de presentación. > Estoy intentando compilar un script para que funcione en NT, sobre todo > para no tener que instalar Python en la máquina del cliente, en la que > apenas puedo tocar. > > No sé si hablar de NT es offtopic aquí. Si es así, disculpadme y /ignore > :-) > > El problema básico es que el py2exe me está dando dolores de cabeza a > millares. Aleatoriamente da unos errores u otros, veréis: > > - Error de Windows: "La CPU NTVMD ha encontrado una instrucción no > permitida C5:06......". Poco alentador. > > - Mi setup.py es este: > -------------------------------- > from distutils.core import setup > import py2exe > setup(name="mi_script",scripts=["mi_script"]) > -------------------------------- > > Según las instrucciones de > http://starship.python.net/crew/theller/py2exe/ debo invocarlo así: > c:\python21\python.exe setup.py mi_script.py Me suena más c:\python21\python.exe setup.py py2exe > Y parece que algo me falla, pues recibo este error: > "Import error: No module named py2exe". Pues parece que no está instalado... > > Bien, sed pacientes conmigo, soy nueva con Python y NT *no* es lo mío > :-) > > Gracias por vuestro tiempo, un saludo. > From zoso en demiurgo.org Wed May 29 19:09:28 2002 From: zoso en demiurgo.org (Esteban Manchado =?iso-8859-1?Q?Vel=E1zquez?=) Date: Wed, 29 May 2002 18:09:28 +0100 Subject: OT: Teclado y python en Debian (era: Re: site.py) In-Reply-To: <20020529152638.17232.qmail@web20907.mail.yahoo.com> References: <20020529152638.17232.qmail@web20907.mail.yahoo.com> Message-ID: <20020529170928.GA541@demiurgo.org> On Wed, May 29, 2002 at 05:26:38PM +0200, Attila Saorin wrote: > --- Chema Cortes escribió: > > Lo de poner "latin1" en lugar de "ascii" era tan sólo un consejo para no > > tener problemas al utilizar cadenas con vocales acentuadas o con las eñes > > en linux. > > A pues no lo sabia, gracias, el caso es que mi teclado no soporta ni una > cosa ni la otra, pero es bueno saberlo para cuando si lo soporte ;) ¿Te refieres a que tu teclado es (físicamene) inglés, o a que no está bien configurado? En ese caso, instala el paquete user-es y ejecuta `castellanizar' (y, tal y como sugiere el paquete user-es, mírate el fichero /usr/doc/user-es/README.gz con zless o zcat). Sobre cambiar el enlace del Python, seguramente lo mejor es dejarlo como está y declarar un alias en los usuarios que creas (o en todos). Si no sabes cómo, seguimos en privado. En general, si hay varios programas que tienen el mismo ejecutable, suelen gestionarse con el sistema de alternativas (no es el caso de Python porque, como decía Marcos, se podrían cargar el Zope o vete tú a saber). En ese caso, mejor que no lo toques a mano. Ejecuta como administrador update-alternatives --config y te mostrará una lista de las alternativas, para que elijas cuál quieres como prioritaria. P.ej.: --------------------------------- 8< --------------------------------- bash-2.05a# update-alternatives --config rxvt There are 2 programs which provide `rxvt'. Selection Command ----------------------------------------------- *+ 1 /usr/bin/rxvt-xterm 2 /usr/bin/rxvt-xpm Enter to keep the default[*], or type selection number: ... --------------------------------- >8 --------------------------------- Espero que todo este rollo te sirva ;-) -- Esteban Manchado Velázquez - http://www.demiurgo.org No software patents in Europe! - freepatents.org - proinnova.hispalinux.es Join Amnesty International - http://www.amnesty.org/actnow ------------ próxima parte ------------ A non-text attachment was scrubbed... Name: no disponible Type: application/pgp-signature Size: 232 bytes Desc: no disponible URL: From julian.albo.garcia en xunta.es Thu May 30 08:45:43 2002 From: julian.albo.garcia en xunta.es (julian.albo.garcia en xunta.es) Date: Thu, 30 May 2002 08:45:43 +0200 Subject: [Python-es] la 2.2 ok y dudilla Message-ID: > Como lectores o programadores de codigo, creeis que es mejor que aunque > sean mas lineas de codigo, deberia ser mas claro el codigo? con lo que > no abusar de cosas como estas? En un manual de programación que tengo dice "Póngase en su postura de meditación favorita y repítase a si mismo: 'Un código eficiente puede ocupar varias líneas' ". Salu2 From miquel en llover.org Thu May 30 09:51:51 2002 From: miquel en llover.org (Miquel Llover) Date: Thu, 30 May 2002 09:51:51 +0200 Subject: Estructura para una tabla? In-Reply-To: <20020529184918.A961@marmota> References: < Message-ID: <5.1.0.14.0.20020530094855.00a108b0@pop3.terra.es> Gracias Chema, Hernan, Marcos, Luis Miguel y a la lista en general. Con la lambda-expresión me he quedado a cuadros, pero me lo estudiaré con calma... Saludos, Miquel At 18:49 29/05/02, you wrote: > Asunto: RE: [Python-es] Estructura para una tabla? > Fecha: mié, may 29, 2002 at 12:10:23 +0200 > > >Citando a Chema Cortes (chemacortes en wanadoo.es): > >Muy chulo, Chema. Una tontadilla te comento: > > > > > class Pedido: > > def __init__(self,nc,pieza,cant,fecha): > > self.pedido={ > > "nc":nc, "pieza":pieza, "cant":cant, "fecha":fecha > > } > > > > def compara(column): > > return lambda a,b,column=column: > cmp(a.pedido[column],b.pedido[column]) > > compara=staticmethod(compara) > > > > def __cmp__(self, p): > > compPieza=self.compara("pieza") > > return compPieza(self,p) > > > > class lista_pedido: > > > > .... > > def ordena_pieza(self): > > compPieza=Pieza.compara("pieza") > ^^^^^ > compFecha=Pedido.compara("pieza") > > > > > return self.l.sort(compPieza) > > > > def ordena_fecha(self): > > compFecha=Pieza.compara("fecha") > > >Un saludo > >Luis Miguel >_______________________________________________ >Python-es mailing list >Python-es en aditel.org >http://listas.aditel.org/listinfo.py/python-es ------------------------------------------------ Miquel Llover ------------------------------------------------ From chemacortes en wanadoo.es Thu May 30 09:52:25 2002 From: chemacortes en wanadoo.es (Chema Cortes) Date: Thu, 30 May 2002 09:52:25 +0200 Subject: Estructura para una tabla? Message-ID: > Muy chulo, Chema. Una tontadilla te comento: > > class lista_pedido: > > > > .... > > def ordena_pieza(self): > > compPieza=Pieza.compara("pieza") > ^^^^^ > compFecha=Pedido.compara("pieza") > > > return self.l.sort(compPieza) > > > > def ordena_fecha(self): > > compFecha=Pieza.compara("fecha") No veo que sea un error. 'compPieza' es una función que ordena por el campo "pieza", y es el argumento del método sort de la lista. El nombre es lo de menos, ya que es una variable "local" a la función. Ya que alguien habla de poner todo en una línea, podría haberlo puesto como: def ordena_pieza(self): return self.l.sort(Pedido.compara("pieza")) Pero me parecía más claro ponerlo en dos líneas. Saludos, -- Chema Cortes (chemacortes en wanadoo.es) _____________________________________________________________________ No olvides nada. Recuerda los cumpleaños, tus citas, tus cenas románticas y todo lo que quieras usando la Agenda personal de Wanadoo.es, desde cualquier lugar conectado a Internet. Visítala en http://www.wanadoo.es/agenda From chemacortes en wanadoo.es Thu May 30 10:31:08 2002 From: chemacortes en wanadoo.es (Chema Cortes) Date: Thu, 30 May 2002 10:31:08 +0200 Subject: la 2.2 ok y dudilla Message-ID: > Ya que estoy, escribo otra duda, no se si os acordais que queria modificar un texto de un fichero, > o aniadirle algo si no estaba, el caso es que ya esta casi, algo asi rapido, seria: > > >>> n=open('sal5.txt','w') > >>> n.write(open('texto1.txt','r').read().replace('texto a cambiar','PARECE QUE SALE')) > >>> n.close() > > he abusado un poco del one-liners :) > > La cosa es que mi duda es saber si con este codigo me dejo el descriptor de fichero del > open('texto1.txt','r') perdido sin cerrar o al estar embebido no pasa nada. Yo creo que se me > queda abierto, con lo que deberia cerrarlo, en este caso, como se cerraria? En la próxima "recogida de basura" (garbage collection) se detectará que el objeto que has creado no es referenciado por nadie, y lo destruirá, cerrándo el fichero automáticamente. De todos modos es recomendable que emplees una referencia y lo cierres explícitamente. Podría ocurrir que en un error posterior se colgara el programa y te quedaras con un fichero corrupto por no cerrarlo. > Como lectores o programadores de codigo, creeis que es mejor que aunque sean mas lineas de codigo, > deberia ser mas claro el codigo? con lo que no abusar de cosas como estas? Depende del punto de vista como programador. Cuando empleas programación funcional ves el programa como una sóla línea de código; pero en la práctica es más ilegible y cuesta más depurar. Mi consejo es intentar que cada línea haga una sóla cosa, semánticamente hablando, sin renunciar a agrupar líneas cuando se vea comprensible. Por ejemplo, ¿álguien, en serio, podría entender esta definición de factorial? fact=lambda n: n<1 or reduce(lambda x,y:x*y, xrange(2,n+1)) Queda curioso, pero nadie comprendería (a priori) cuál es la definición de factorial. En cambio, así sí: def fact(n): res=1 for i in xrange(2,n+1): res*=i return res Saludos, -- Chema Cortes (chemacortes en wanadoo.es) _____________________________________________________________________ No olvides nada. Recuerda los cumpleaños, tus citas, tus cenas románticas y todo lo que quieras usando la Agenda personal de Wanadoo.es, desde cualquier lugar conectado a Internet. Visítala en http://www.wanadoo.es/agenda From mostroratas en yahoo.es Thu May 30 10:46:20 2002 From: mostroratas en yahoo.es (=?iso-8859-1?q?Attila=20Saorin?=) Date: Thu, 30 May 2002 10:46:20 +0200 (CEST) Subject: la 2.2 ok y dudilla In-Reply-To: References: Message-ID: <20020530084620.12828.qmail@web20906.mail.yahoo.com> --- julian.albo.garcia en xunta.es escribió: > > En un manual de programación que tengo dice "Póngase en su postura de > meditación favorita y repítase a si mismo: 'Un código eficiente puede > ocupar varias líneas' ". Ok, lo pillo, pero... de esa forma tenemos que declarar esas variables y con ello reservar posiciones de memoria para ellas que de la otra forma no reservamos y solo utilizamos en momento de ejecucion esas zonas de memoria. De todas formas, no me parece codigo facil de leer y creo que tb. debe primar la legibilidad, asi que pocos one-liners o cortitos :) Attila _______________________________________________________________ Copa del Mundo de la FIFA 2002 El único lugar de Internet con vídeos de los 64 partidos. ¡Apúntante ya! en http://fifaworldcup.yahoo.com/fc/es/ From mostroratas en yahoo.es Thu May 30 10:51:53 2002 From: mostroratas en yahoo.es (=?iso-8859-1?q?Attila=20Saorin?=) Date: Thu, 30 May 2002 10:51:53 +0200 (CEST) Subject: [Python-es] la 2.2 ok y dudilla In-Reply-To: Message-ID: <20020530085153.68740.qmail@web20908.mail.yahoo.com> --- Chema Cortes escribió: > En la próxima "recogida de basura" (garbage collection) se detectará que el objeto que has > creado no es referenciado por nadie, y lo destruirá, cerrándo el fichero automáticamente. > > De todos modos es recomendable que emplees una referencia y lo cierres explícitamente. Podría > ocurrir que en un error posterior se colgara el programa y te quedaras con un fichero corrupto > por no cerrarlO. Vale, a eso me referia. > Por ejemplo, ¿álguien, en serio, podría entender esta definición de factorial? > > fact=lambda n: n<1 or reduce(lambda x,y:x*y, xrange(2,n+1)) Pues no, y si en vez de fact pusieramos otra cosa, menos todavia, pero al menos quedas muy bien y como dijiste (o dijo alguien) el otro dia, le dariamos a kmilo codigo con el que pelearse ;D Attila _______________________________________________________________ Copa del Mundo de la FIFA 2002 El único lugar de Internet con vídeos de los 64 partidos. ¡Apúntante ya! en http://fifaworldcup.yahoo.com/fc/es/ From amaya en debian.org Thu May 30 10:51:09 2002 From: amaya en debian.org (Amaya) Date: Thu, 30 May 2002 10:51:09 +0200 Subject: [Python-es] [py2exe] Python en NT: Compilar scripts In-Reply-To: <1022692484.4666.76.camel@cynar> References: <20020529164139.GA569@aenima> <1022692484.4666.76.camel@cynar> Message-ID: <20020530085108.GA13472@aenima> Marcos dijo: > Me suena más c:\python21\python.exe setup.py py2exe Cierto :-) > Pues parece que no está instalado... No sé ya qué hacer. Tengo python 2.2, las distutils-1.0.2... ¿De dónde sale el py2exe que intenta importar? -- .''`. El asesino sabe más de amor que el poeta - J. Sabina : :' : `. `' Proudly running Debian GNU/Linux Sid (Kernel 2.4.18) `- www.amayita.com www.malapecora.com www.chicasduras.com From julian.albo.garcia en xunta.es Thu May 30 11:04:55 2002 From: julian.albo.garcia en xunta.es (julian.albo.garcia en xunta.es) Date: Thu, 30 May 2002 11:04:55 +0200 Subject: [Python-es] la 2.2 ok y dudilla Message-ID: > Ok, lo pillo, pero... de esa forma tenemos que declarar esas variables y > con ello reservar posiciones de memoria para ellas que de la otra forma > no reservamos y solo utilizamos en momento de ejecucion esas zonas de > memoria. Mmmm.. No conozco mucho las interioridades de Python pero creo que crea un objeto, y que ese objeto no será destruido hasta que pase el recolector de basura, tanto si se asigna una variable como si no. Por lo tanto el único espacio que ocupas de mas es el del nombre de la variable, que es poca cosa. Claro, si usas una variable global, el objeto no será candidato para la destrucción hasta que le asignes otra cosa o termine el programa, pero el usar variables globales es desaconsejable en cualquier caso. Salu2 From rapto en arrakis.es Thu May 30 11:15:05 2002 From: rapto en arrakis.es (Marcos =?ISO-8859-1?Q?S=E1nchez?= Provencio) Date: 30 May 2002 11:15:05 +0200 Subject: [py2exe] Python en NT: Compilar scripts In-Reply-To: <20020530085108.GA13472@aenima> References: <20020529164139.GA569@aenima> <1022692484.4666.76.camel@cynar> <20020530085108.GA13472@aenima> Message-ID: <1022750110.4666.91.camel@cynar> El jue, 30-05-2002 a las 10:51, Amaya escribió: > Marcos dijo: > > Me suena más c:\python21\python.exe setup.py py2exe > > Cierto :-) > > > Pues parece que no está instalado... > > No sé ya qué hacer. Tengo python 2.2, las distutils-1.0.2... > ¿De dónde sale el py2exe que intenta importar? Mira esto: http://prdownloads.sourceforge.net/py2exe/py2exe-0.3.3.win32-py2.2.exe From manueltrujillo en dorna.com Thu May 30 11:28:39 2002 From: manueltrujillo en dorna.com (Manuel Trujillo) Date: 30 May 2002 11:28:39 +0200 Subject: [py2exe] Python en NT: Compilar scripts In-Reply-To: <20020530085108.GA13472@aenima> References: <20020529164139.GA569@aenima> <1022692484.4666.76.camel@cynar> <20020530085108.GA13472@aenima> Message-ID: <1022750919.1085.29.camel@klingon.web.es> El jue, 30-05-2002 a las 10:51, Amaya escribió: > Marcos dijo: > > Me suena más c:\python21\python.exe setup.py py2exe > > Cierto :-) > > > Pues parece que no está instalado... > > No sé ya qué hacer. Tengo python 2.2, las distutils-1.0.2... > ¿De dónde sale el py2exe que intenta importar? ¡¡Hombre!!! Hola mi Amaya XDDD Cuanto tiempo... Por norma general, desde hace mucho tiempo, en debian se suelen incluir ese tipo de utilerías en los directorios contrib del paquete (¿has instalado el paquete .deb?). Si no encontraras nada, puedes hacer un par de cosas: dpkg -L python_instalado o Te bajas el Content-i386.gz de la distro que uses (woody, sid, etc), y haces un: zgrep py2exe Content-i386.gz Si existe en la distro, seguro que de esta forma lo encuentras. Espero que te haya podido ser de ayuda, y también espero poder ir a Madrid de nuevo y poder verte. A ver si un día nos pudiéramos juntar por allí toda la peña... sigh... que bien lo pasamos XDDD Un besote Amaya, nos vemos!! -- Have a nice day ;-) TooManySecrets From morillas en posta.unizar.es Thu May 30 12:03:38 2002 From: morillas en posta.unizar.es (lm) Date: Thu, 30 May 2002 12:03:38 +0200 Subject: Estructura para una tabla? In-Reply-To: References: Message-ID: <28242.9713327021$1039531766@news.gmane.org> Asunto: Re: [Python-es] Estructura para una tabla? Fecha: jue, may 30, 2002 at 09:52:25 +0200 Time to reply! Citando a Chema Cortes (chemacortes en wanadoo.es): > > Muy chulo, Chema. Una tontadilla te comento: > > > > class lista_pedido: > > > > > > .... > > > def ordena_pieza(self): > > > compPieza=Pieza.compara("pieza") > > ^^^^^ > > compFecha=Pedido.compara("pieza") > > > > > return self.l.sort(compPieza) > > > > > > def ordena_fecha(self): > > > compFecha=Pieza.compara("fecha") > > No veo que sea un error. 'compPieza' es una función que ordena por el campo "pieza", y es el argumento del método sort de la lista. El nombre es lo de menos, ya que es una variable "local" a la función. > No me refería al nombre de la variable. Yo también he metido la para en la corrección. Es que entre el comienzo y el final del mensaje uno de mis hijos hizo una pifia y tuve que abandonar. De ahí el lapsus. (Estábamos en huelga por lo de la enseñanza pública) En Pieza.compara("pieza") haces referencia a una clase (Pieza) que tú la has llamado Pedido en tu código, ¿no?. La corrección bien hecha de la línea (si no me equivoco) creo que es: compPieza=Pedido.compara("pieza") > Ya que alguien habla de poner todo en una línea, podría haberlo puesto como: > > def ordena_pieza(self): > return self.l.sort(Pedido.compara("pieza")) > > Pero me parecía más claro ponerlo en dos líneas. A mí tampoco me gusta mucho abreviar. Sobre todo si tienes que compartir o revisar el código Un saludo Luis Miguel From amaya en debian.org Thu May 30 11:28:53 2002 From: amaya en debian.org (Amaya) Date: Thu, 30 May 2002 11:28:53 +0200 Subject: [Python-es] [py2exe] Python en NT: Compilar scripts In-Reply-To: <1022750110.4666.91.camel@cynar> References: <20020529164139.GA569@aenima> <1022692484.4666.76.camel@cynar> <20020530085108.GA13472@aenima> <1022750110.4666.91.camel@cynar> Message-ID: <20020530092853.GA13615@aenima> Marcos dijo: > http://prdownloads.sourceforge.net/py2exe/py2exe-0.3.3.win32-py2.2.exe No, eso ya está instalado desde el principio :-) Esto es un poco "sigua rascando, hay miles de premios". He escrito al autor de py2exe, que es un cielo y, según Google, contesta hasta preguntas como la mía :-) Gracias por todo, de nuevo. -- .''`. El asesino sabe más de amor que el poeta - J. Sabina : :' : `. `' Proudly running Debian GNU/Linux Sid (Kernel 2.4.18) `- www.amayita.com www.malapecora.com www.chicasduras.com From amaya en debian.org Thu May 30 11:52:51 2002 From: amaya en debian.org (Amaya) Date: Thu, 30 May 2002 11:52:51 +0200 Subject: [Python-es] [py2exe] Python en NT: Compilar scripts In-Reply-To: <1022750919.1085.29.camel@klingon.web.es> References: <20020529164139.GA569@aenima> <1022692484.4666.76.camel@cynar> <20020530085108.GA13472@aenima> <1022750919.1085.29.camel@klingon.web.es> Message-ID: <20020530095250.GC13615@aenima> Manuel Trujillo dijo: > ¡¡Hombre!!! Hola mi Amaya XDDD Cuanto tiempo... Ya ves... Ojalá pudiéramos saludarnos en circunstacias menos torponas por mi parte :-) > Por norma general, desde hace mucho tiempo, en debian se suelen > incluir ese tipo de utilerías en los directorios contrib del paquete He echado un vistazo, pero no hay nada para compilar ejecutables para NT en los .deb que tengo instalados :-( > y también espero poder ir a Madrid de nuevo y poder verte. A ver si un > día nos pudiéramos juntar por allí toda la peña... sigh... que bien lo > pasamos XDDD Eso está hecho... Yo últimamente voy bastante a BCN, (¿Qué tal va ese grupo local, Aguila?)... Cuestión de avisarte la próxima vez... > Un besote Amaya, nos vemos!! Eso espero... -- .''`. El asesino sabe más de amor que el poeta - J. Sabina : :' : `. `' Proudly running Debian GNU/Linux Sid (Kernel 2.4.18) `- www.amayita.com www.malapecora.com www.chicasduras.com From rapto en arrakis.es Thu May 30 12:39:46 2002 From: rapto en arrakis.es (Marcos =?ISO-8859-1?Q?S=E1nchez?= Provencio) Date: 30 May 2002 12:39:46 +0200 Subject: [Python-es] [py2exe] Python en NT: Compilar scripts In-Reply-To: <20020530092853.GA13615@aenima> References: <20020529164139.GA569@aenima> <1022692484.4666.76.camel@cynar> <20020530085108.GA13472@aenima> <1022750110.4666.91.camel@cynar> <20020530092853.GA13615@aenima> Message-ID: <1022755186.18107.22.camel@cynar> El jue, 30-05-2002 a las 11:28, Amaya escribió: > Marcos dijo: > > http://prdownloads.sourceforge.net/py2exe/py2exe-0.3.3.win32-py2.2.exe > > No, eso ya está instalado desde el principio :-) > Esto es un poco "sigua rascando, hay miles de premios". Si no te lo importa, es que está mal instalado. Vuelve a instalarlo (bienvenida al mundo de micros~1). ¿te detecta bien la versión y el directorio de Python que vas a usar? From chemacortes en wanadoo.es Thu May 30 13:36:33 2002 From: chemacortes en wanadoo.es (Chema Cortes) Date: Thu, 30 May 2002 13:36:33 +0200 Subject: Estructura para una tabla? Message-ID: > No me refería al nombre de la variable. Yo también he metido la para > en la corrección. > ... > En Pieza.compara("pieza") haces referencia a una clase (Pieza) que tú la has > llamado Pedido en tu código, ¿no?. > La corrección bien hecha de la línea (si no me equivoco) creo que es: > compPieza=Pedido.compara("pieza") Exacto; es un error que había. Ahora está mejor. Saludos, -- Chema Cortes (chemacortes en wanadoo.es) _____________________________________________________________________ No olvides nada. Recuerda los cumpleaños, tus citas, tus cenas románticas y todo lo que quieras usando la Agenda personal de Wanadoo.es, desde cualquier lugar conectado a Internet. Visítala en http://www.wanadoo.es/agenda From kmilo en softhome.net Thu May 30 15:29:55 2002 From: kmilo en softhome.net (kmilo) Date: Thu, 30 May 2002 08:29:55 -0500 Subject: site.py In-Reply-To: <20020529103447.29453.qmail@web20906.mail.yahoo.com> References: <20020529103447.29453.qmail@web20906.mail.yahoo.com> Message-ID: <20020530082955.717ce2cc.kmilo@softhome.net> si llamas >>> help ("os") lo que el interprete hace es: pipepager(text, os.environ['PAGER']) y tanto less como more tiene la q como salida, y con eso vuelves al interprete interactivo si lo llamas como >>> help puedes salir con Ctrl-D o el EOF del OS donde estes trabajando On Wed, 29 May 2002 12:34:47 +0200 (CEST) Attila Saorin wrote: > --- Hernan Martinez Foffani escribió: > > Otra cosilla, ?como salgo del > help sin salirme del entorno > > > python? es que no lo he encontrado y > > > acabo saliendo del todo. > > > > igual que para salir de python: control-d (o control-z si estas > > en Windows) > > > Pues, pues, no, eso ya lo intente y lo acabo de comprobar de nuevo, con el control-d voy > avanzando, pero una vez terminado de leer todo, no sirve, no consigo salir con eso. Pero no os > preocupeis, despues de teclear muchas teclas de nuevo, ya lo he encontrado, como siempre la "q" > (quit) nos saca de apuros y sale del help ;) > > Pues nada, sera que acostumbrado al emacs, siempre busco las cosas como combinaciones de teclas en > vez de por si solas, deformacion estudiantil (lo de profesional todavia no ha llegado). > > Attila > > _______________________________________________________________ > Copa del Mundo de la FIFA 2002 > Disfruta en vídeo de los mejores momentos desde tu ordenador. > http://fifaworldcup.yahoo.com/fc/es/ > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo.py/python-es -- Por favor no mandes correo a listas públicas en formato HTML. Texto plano es lo ideal. Sended by Sylpheed in SuSe 7.3 Profesional Linux user number 269263. http://kmiloweb.netfirms.com/ From kmilo en softhome.net Thu May 30 15:46:04 2002 From: kmilo en softhome.net (kmilo) Date: Thu, 30 May 2002 08:46:04 -0500 Subject: la 2.2 ok y dudilla In-Reply-To: <20020530085153.68740.qmail@web20908.mail.yahoo.com> References: <20020530085153.68740.qmail@web20908.mail.yahoo.com> Message-ID: <20020530084604.55def4a4.kmilo@softhome.net> > como dijiste (o dijo alguien) el otro dia, le dariamos a kmilo codigo con el que pelearse ;D yo no uso ni lambas ni one-liners, ya que los dos me parecen confusos. :P por el lado de darme codigo con el que pelearme, tranquilos que mi propio LUG (Linux User Group) ya acaba de ponerme en tremenda batalla, resulta que nos dio por hacer nuestra distribucion linux y adivinen quien es el encargado del instalador. muy bien, adivinaron el encargado soy yo, para ello estoy pensando en basarme en el codigo de Anaconda, el instalador de redhat el cual esta escrito en python alguien sabe donde, puedo encontrar documentacion al respecto, y los fuentes de Anaconda? es que he buscado por todo lado y no encuentro nada, se supone que los instaladores para linux deberian ser abiertos y tambien deberia haber una comunidad que trabajara en ellos, pero la informacion tecnica pareciera estar escondida. PDT: y saber que cuando me dijieron aqui en la lista que fuera a mirar proyectos a sourceforge y me metiera en uno, pense que estaban locos por que eso era demasiado para mi On Thu, 30 May 2002 10:51:53 +0200 (CEST) Attila Saorin wrote: > --- Chema Cortes escribió: > > En la próxima "recogida de basura" (garbage collection) se detectará que el objeto que has > > creado no es referenciado por nadie, y lo destruirá, cerrándo el fichero automáticamente. > > > > De todos modos es recomendable que emplees una referencia y lo cierres explícitamente. Podría > > ocurrir que en un error posterior se colgara el programa y te quedaras con un fichero corrupto > > por no cerrarlO. > > Vale, a eso me referia. > > > Por ejemplo, ¿álguien, en serio, podría entender esta definición de factorial? > > > > fact=lambda n: n<1 or reduce(lambda x,y:x*y, xrange(2,n+1)) > > Pues no, y si en vez de fact pusieramos otra cosa, menos todavia, pero al menos quedas muy bien y > como dijiste (o dijo alguien) el otro dia, le dariamos a kmilo codigo con el que pelearse ;D > > Attila > > _______________________________________________________________ > Copa del Mundo de la FIFA 2002 > El único lugar de Internet con vídeos de los 64 partidos. > ¡Apúntante ya! en http://fifaworldcup.yahoo.com/fc/es/ > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo.py/python-es -- Por favor no mandes correo a listas públicas en formato HTML. Texto plano es lo ideal. Sended by Sylpheed in SuSe 7.3 Profesional Linux user number 269263. http://kmiloweb.netfirms.com/ From mostroratas en yahoo.es Thu May 30 17:00:22 2002 From: mostroratas en yahoo.es (=?iso-8859-1?q?Attila=20Saorin?=) Date: Thu, 30 May 2002 17:00:22 +0200 (CEST) Subject: No veo el fallo :( Message-ID: <20020530150022.76938.qmail@web20901.mail.yahoo.com> Buenas tardes, sigo con mi codigo que busca en un fichero una linea si la encuentra la cambia y si no, la aniade, por claridad he preferido hacerlo de esta forma: #!/usr/bin/env python __name__ == "__main__" import os import string def edit (file, oldLine, newLine): "Editing..." source=open(file,'r') temp=open('tmp.txt','w') text=source.read() if (string.find(text,oldLine)): print 'la linea esta en el fichero' temp.write(text.replace(oldLine,newLine)) else: print 'la linea NO esta en el fichero' temp.write(text) temp.write(newLine) source.close() temp.close() os.rename('tmp.txt',file) este es el codigo y ejecuto la llamada a edit dos veces: edit ('texto1.txt','si esta, la cambio','LA HE CAMBIADO') edit ('texto1.txt','esta no la vas a encontrar','HE ANADIDO UNA NUEVA LINEA') y me devuelve: 16:39:31 amd2 ~/python/pruebas > python edit.py la linea esta en el fichero la linea esta en el fichero en las pruebas la primera frase esta en el fichero y deberia cambiarla y la segunda no lo esta, por lo que deberia aniadirla, el caso es que como podeis ver en la ejecucion, segun el, las dos frases estan en mi fichero de prueba y os aseguro que la segunda no lo esta, y no entiendo pq se va por esa rama del if. Eso si, al menos me cambia la linea para el primer caso. Por cierto, que he buscado algun metodo para saber, antes de abrir el fichero original, ver que permisos q tiene para restaurarlos luego cuando lo haya modificado, pero solo he encontrado el chown y chmod y claro, no me sirven. Gracias. Attila _______________________________________________________________ Copa del Mundo de la FIFA 2002 El único lugar de Internet con vídeos de los 64 partidos. ¡Apúntante ya! en http://fifaworldcup.yahoo.com/fc/es/ From morillas en posta.unizar.es Thu May 30 21:18:27 2002 From: morillas en posta.unizar.es (luis miguel) Date: Thu, 30 May 2002 21:18:27 +0200 Subject: [Python-es] No veo el fallo :( In-Reply-To: <20020530150022.76938.qmail@web20901.mail.yahoo.com>; from mostroratas@yahoo.es on jue, may 30, 2002 at 05:00:22 +0200 References: <20020530150022.76938.qmail@web20901.mail.yahoo.com> Message-ID: <20020530211827.A764@marmota> Asunto: [Python-es] No veo el fallo :( Fecha: jue, may 30, 2002 at 05:00:22 +0200 Citando a Attila Saorin (mostroratas en yahoo.es): > Buenas tardes, > > sigo con mi codigo que busca en un fichero una linea si la encuentra la cambia y si no, la aniade, > por claridad he preferido hacerlo de esta forma: > > #!/usr/bin/env python > > __name__ == "__main__" > > import os > import string > > def edit (file, oldLine, newLine): > "Editing..." > source=open(file,'r') > temp=open('tmp.txt','w') > text=source.read() > if (string.find(text,oldLine)): > print 'la linea esta en el fichero' > temp.write(text.replace(oldLine,newLine)) > else: > print 'la linea NO esta en el fichero' > temp.write(text) > temp.write(newLine) > source.close() > temp.close() > os.rename('tmp.txt',file) > > este es el codigo y ejecuto la llamada a edit dos veces: > > edit ('texto1.txt','si esta, la cambio','LA HE CAMBIADO') > edit ('texto1.txt','esta no la vas a encontrar','HE ANADIDO UNA NUEVA LINEA') > > y me devuelve: > > 16:39:31 amd2 ~/python/pruebas > python edit.py > la linea esta en el fichero > la linea esta en el fichero > > en las pruebas la primera frase esta en el fichero y deberia cambiarla y la segunda no lo esta, > por lo que deberia aniadirla, el caso es que como podeis ver en la ejecucion, segun el, las dos > frases estan en mi fichero de prueba y os aseguro que la segunda no lo esta, y no entiendo pq se > va por esa rama del if. Eso si, al menos me cambia la linea para el primer caso. > > Por cierto, que he buscado algun metodo para saber, antes de abrir el fichero original, ver que > permisos q tiene para restaurarlos luego cuando lo haya modificado, pero solo he encontrado el > chown y chmod y claro, no me sirven. > > Gracias. > > Attila > El problema está en que find devuelve la posición en que se encuentra la subcadena buscadada. Si la cadena buscada no está, devuelve -1, que en tu caso hace que entre dentro del if. Es más, si la subcadena estuviera en la primera posición del fichero, no entraría en el if. ¡Sorpresa! Un saludo, Luis Miguel From chemacortes en wanadoo.es Fri May 31 09:10:56 2002 From: chemacortes en wanadoo.es (Chema Cortes) Date: Fri, 31 May 2002 09:10:56 +0200 Subject: [Python-es] No veo el fallo :( Message-ID: > Buenas tardes, Buenas. Ya te ha respondido Luis Miguel, por lo que voy a centrarme en algunos detalles: > sigo con mi codigo que busca en un fichero una linea si la encuentra la cambia y si no, la aniade, > por claridad he preferido hacerlo de esta forma: > > #!/usr/bin/env python > > __name__ == "__main__" Esta línea, así, no hace nada. Debería ir en un if que diera entrada al código que quieres que se ejecute desde línea de comandos (ya lo hemos contado en mensajes anteriores): if __name__=="__main__": # código a ejecutar en línea de comandos > import os > import string Empieza a desaconsejarse ("deprecated") el uso del módulo string. Sigue por razones de compatibilidad, pero es mejor utilizar los métodos de objeto string (ver más adelante). > def edit (file, oldLine, newLine): > "Editing..." > source=open(file,'r') > temp=open('tmp.txt','w') > text=source.read() > if (string.find(text,oldLine)): La condición sería: if string.find(text,oldline)>=0 Como he dicho, es aconsejable utilizar los métodos string: if text.find(oldline)>=0 También es aconsejable usar la función file() en lugar de open(). En realidad se trata de la misma función, pero file() se asemeja más al modo de inicialización de un objeto, en este caso de la clase file. > print 'la linea esta en el fichero' > temp.write(text.replace(oldLine,newLine)) > else: > print 'la linea NO esta en el fichero' > temp.write(text) > temp.write(newLine) > source.close() > temp.close() > os.rename('tmp.txt',file) > Por cierto, que he buscado algun metodo para saber, antes de abrir el fichero original, ver que > permisos q tiene para restaurarlos luego cuando lo haya modificado, pero solo he encontrado el > chown y chmod y claro, no me sirven. Mira en el 'shutil.copymode' Saludos, -- Chema Cortes (chemacortes en wanadoo.es) _____________________________________________________________________ No olvides nada. Recuerda los cumpleaños, tus citas, tus cenas románticas y todo lo que quieras usando la Agenda personal de Wanadoo.es, desde cualquier lugar conectado a Internet. Visítala en http://www.wanadoo.es/agenda From mostroratas en yahoo.es Fri May 31 12:19:11 2002 From: mostroratas en yahoo.es (=?iso-8859-1?q?Attila=20Saorin?=) Date: Fri, 31 May 2002 12:19:11 +0200 (CEST) Subject: No veo el fallo :( In-Reply-To: References: Message-ID: <20020531101911.74292.qmail@web20909.mail.yahoo.com> --- Chema Cortes escribió: > > Buenas tardes, > if __name__=="__main__": > # código a ejecutar en línea de comandos Ahhh, ok, pensaba que si yo lo que quiero es simplemente poder llamar a este fichero desde la linea de comandos para poder acceder a alguno de sus funciones podria asi, como no quiero ejecutar nada distiento, si no que poder trastear con ello mientras pensaba que era asi. Ya me queda claro. Gracias. > Como he dicho, es aconsejable utilizar los métodos string: > > if text.find(oldline)>=0 Ya va bien. > También es aconsejable usar la función file() en lugar de open(). En realidad se trata de la > misma función, pero file() se asemeja más al modo de inicialización de un objeto, en este caso > de la clase file. Tomo nota. Y lo aniado al codigo. > Mira en el 'shutil.copymode' Tambien tomo nota y funciona :) Esteeee, hay alguna forma de aniadir un salto de linea al fichero mas bonita que esta?: temp.write(text) temp.write('\n') temp.write(newLine) > Saludos, Gracias. > Chema Cortes (chemacortes en wanadoo.es) Attila _______________________________________________________________ Copa del Mundo de la FIFA 2002 El único lugar de Internet con vídeos de los 64 partidos. ¡Apúntante ya! en http://fifaworldcup.yahoo.com/fc/es/ From chemacortes en wanadoo.es Fri May 31 13:54:27 2002 From: chemacortes en wanadoo.es (Chema Cortes) Date: Fri, 31 May 2002 13:54:27 +0200 Subject: [Python-es] No veo el fallo :( Message-ID: > Esteeee, hay alguna forma de aniadir un salto de linea al fichero mas bonita que esta?: > > temp.write(text) > temp.write('\n') > temp.write(newLine) temp.write(text+'\n'+newLine) No creo que haya nada mejor. Saludos, -- Chema Cortes (chemacortes en wanadoo.es) _____________________________________________________________________ No olvides nada. Recuerda los cumpleaños, tus citas, tus cenas románticas y todo lo que quieras usando la Agenda personal de Wanadoo.es, desde cualquier lugar conectado a Internet. Visítala en http://www.wanadoo.es/agenda From rapto en arrakis.es Fri May 31 14:11:51 2002 From: rapto en arrakis.es (Marcos =?ISO-8859-1?Q?S=E1nchez?= Provencio) Date: 31 May 2002 14:11:51 +0200 Subject: No veo el fallo :( In-Reply-To: References: Message-ID: <1022847111.1401.118.camel@cynar> Y si las cadenas text o newLine son grandes, es un derroche. Pero eso, cuando toque optimizar... El vie, 31-05-2002 a las 13:54, Chema Cortes escribió: > > Esteeee, hay alguna forma de aniadir un salto de linea al fichero mas bonita que esta?: > > > > temp.write(text) > > temp.write('\n') > > temp.write(newLine) > > temp.write(text+'\n'+newLine) > > No creo que haya nada mejor. > Saludos, > -- > Chema Cortes (chemacortes en wanadoo.es) > _____________________________________________________________________ > No olvides nada. Recuerda los cumpleaños, tus citas, tus cenas románticas y > todo lo que quieras usando la Agenda personal de Wanadoo.es, desde cualquier > lugar conectado a Internet. Visítala en http://www.wanadoo.es/agenda > > > _______________________________________________ > Python-es mailing list > Python-es en aditel.org > http://listas.aditel.org/listinfo.py/python-es From rapto en arrakis.es Fri May 31 14:15:57 2002 From: rapto en arrakis.es (Marcos =?ISO-8859-1?Q?S=E1nchez?= Provencio) Date: 31 May 2002 14:15:57 +0200 Subject: =?ISO-8859-1?Q?Art=EDculo?= en Todo Linux Message-ID: <1022847357.1402.125.camel@cynar> En el Todo Linux 20 viene un artículo de las novedades de Python 2.2, por Juan José Álvarez. Lo malo es que como sea lo primero que ve un novato va a flipar pepinos. __init__ ya parecía complicado... Ya que estáis, podéis comprar El Jueves 25 aniversario, que es de lo poco que se puede leer últimamente. From mostroratas en yahoo.es Fri May 31 17:15:13 2002 From: mostroratas en yahoo.es (=?iso-8859-1?q?Attila=20Saorin?=) Date: Fri, 31 May 2002 17:15:13 +0200 (CEST) Subject: No veo el fallo :( In-Reply-To: References: Message-ID: <20020531151513.60746.qmail@web20907.mail.yahoo.com> --- Chema Cortes escribió: > > Esteeee, hay alguna forma de aniadir un salto de linea al fichero mas bonita que esta?: > > > > temp.write(text) > > temp.write('\n') > > temp.write(newLine) > > temp.write(text+'\n'+newLine) Gracias Chema, no habia caido en los '+'. Attila _______________________________________________________________ Copa del Mundo de la FIFA 2002 El único lugar de Internet con vídeos de los 64 partidos. ¡Apúntante ya! en http://fifaworldcup.yahoo.com/fc/es/ From mostroratas en yahoo.es Fri May 31 17:56:56 2002 From: mostroratas en yahoo.es (=?iso-8859-1?q?Attila=20Saorin?=) Date: Fri, 31 May 2002 17:56:56 +0200 (CEST) Subject: [Python-es] editar un fichero Message-ID: <20020531155656.5051.qmail@web20904.mail.yahoo.com> Bueno, ya me ha servido lo que me habeis dicho, solo queria saber una cosilla, he intentado buscar una forma de acortar mi programa, no usando un fichero temporal, habia pensado en algo como: def edit (fileChange, oldLine, newLine): source=file(fileChange,'r+') text=source.read() if (text.find(oldLine)>=0): print 'la linea esta en el fichero' source.write(text.replace(oldLine,newLine)) else: print 'la linea NO esta en el fichero' source.write(newLine) source.close() Pero tiene un problema, si la linea esta en el fichero, me escribe de nuevo TODO el fichero con la linea que quiero cambiar cambiada, pero logicamente no quiero reescribir el fichero nuevo entero, por lo que queria saber por curiosidad habria alguna manera de hacerlo, de que solo me cambie esa linea en concreto. A mi me da que seria complicarlo un poco, borrando todo y reescribir, pero no se. Gracias. Attila _______________________________________________________________ Copa del Mundo de la FIFA 2002 El único lugar de Internet con vídeos de los 64 partidos. ¡Apúntante ya! en http://fifaworldcup.yahoo.com/fc/es/ From hernan en orgmf.com.ar Fri May 31 18:40:46 2002 From: hernan en orgmf.com.ar (Hernan Martinez Foffani) Date: Fri, 31 May 2002 18:40:46 +0200 Subject: [Python-es] editar un fichero In-Reply-To: <20020531155656.5051.qmail@web20904.mail.yahoo.com> Message-ID: > Pero tiene un problema, si la linea esta en el fichero, me > escribe de nuevo TODO el fichero con la linea que quiero > cambiar cambiada, pero logicamente no quiero reescribir el > fichero nuevo entero, por lo que queria saber por curiosidad > habria alguna manera de hacerlo, de que solo me cambie esa > linea en concreto. A mi me da que seria complicarlo un poco, > borrando todo y reescribir, pero no se. solo lo podrías hacer si las todas las lineas del fichero tuvieran la misma longitud, incluyendo la reemplazante. (la limitacion no es de python, esta en los sistemas operativos) -Hernan From mostroratas en yahoo.es Fri May 31 18:48:49 2002 From: mostroratas en yahoo.es (=?iso-8859-1?q?Attila=20Saorin?=) Date: Fri, 31 May 2002 18:48:49 +0200 (CEST) Subject: Tratamiento de excepciones Message-ID: <20020531164849.16171.qmail@web20904.mail.yahoo.com> Buenas de nuevo, os queria preguntar, ?cuando hemos de contemplar una posible excepcion o aniadir en nuestro un codigo un?: try: .... except...: ..... imagino que hay casos muy claros donde hay que ponerlos pero tampoco creo que se deba abusar de ellos , ents queria saber si hay algun sitio donde diga como y cuando se recomiendan su uso y donde y cuando se desaconseja. Gracias otra vez. Attila _______________________________________________________________ Copa del Mundo de la FIFA 2002 El único lugar de Internet con vídeos de los 64 partidos. ¡Apúntante ya! en http://fifaworldcup.yahoo.com/fc/es/ From hernan en orgmf.com.ar Fri May 31 19:38:35 2002 From: hernan en orgmf.com.ar (Hernan Martinez Foffani) Date: Fri, 31 May 2002 19:38:35 +0200 Subject: [Python-es] Tratamiento de excepciones In-Reply-To: <20020531164849.16171.qmail@web20904.mail.yahoo.com> Message-ID: > os queria preguntar, ?cuando hemos de contemplar una posible > excepcion o aniadir en nuestro un > codigo un?: > try: > .... > except...: > ..... > > imagino que hay casos muy claros donde hay que ponerlos pero > tampoco creo que se deba abusar de ellos , ents queria saber si > hay algun sitio donde diga como y cuando se recomiendan su uso y > donde y cuando se desaconseja. jejeje... supongo que habrá montones de opiniones en esto. en general, trato de atrapar solo los errores que puedo "resolver" (o mejor dicho, aquellos sobre los que puedo tomar decisiones) en el bloque de codigo en que se producen. no es ningun pecado pasarle la pelota al de "arriba". sería algo así como la regla del burocrata bueno: si puedes resolver el problema del expediente hazlo, y si no, pasalo a tu jefe inmediato superior. :-) a mi no me gusta mucho usar except sin argumentos. o sea, atrapar cualquier cosa. no me parece buen estilo. un inconveniente es que no se puede saber de antemano cuales son todas las excepciones que el codigo puede llegar a emitir. -Hernan From hernan en orgmf.com.ar Fri May 31 20:54:29 2002 From: hernan en orgmf.com.ar (Hernan Martinez Foffani) Date: Fri, 31 May 2002 20:54:29 +0200 Subject: modelo de objetos (era, RE: la 2.2 ok y dudilla) In-Reply-To: <20020530084620.12828.qmail@web20906.mail.yahoo.com> References: <20020530084620.12828.qmail@web20906.mail.yahoo.com> Message-ID: > Ok, lo pillo, pero... de esa forma tenemos que declarar esas > variables y con ello reservar > posiciones de memoria para ellas que de la otra forma no > reservamos y solo utilizamos en momento > de ejecucion esas zonas de memoria. Muchas veces usamos la palabra "variable" en python. No está mal, pero hay que tener especial cuidado en no olvidar como funciona el modelo de objetos de python. Una forma sencilla de entenderlo es pensar en objetos y en etiquetas (tipo PostIt) A cualquier objeto le podemos pegar una (o varias) etiquetas cada una con un nombre: >>> a = b = c = "texto" >>> al objeto "texto" le hemos pegado tres etiquetas con los nombres "a", "b" y "c" respectivamente. si luego hacemos: >>> b = 3 >>> entonces lo que hemos hecho es despegar el PostIt "b" y pegarselo al objeto 3. la cadena "texto" se quedó con dos etiquetas pegadas (la "a" y la "c") mientras cualquier objeto tenga alguna etiqueta encima ese objeto permanecera en memoria. Python lleva la cuenta de cuantas etiquetas tiene cada objeto y cuando esa cuenta llega a cero Python libera la memoria que ocupaba ese objeto. >>> a = 1 # despego "a" y se la pego al 1 >>> c = 2 # despego "c" y se la pego al 2 >>> # python libero a "texto" de la memoria # porque se quedo sin etiquetas. Tecnicamente hablando las etiquetas son los "nombres" ("names") y el proceso de pegado es la ligadura (o vinculacion o atadura o union) ("binding") Hay mucho mas y esto es solo algo muy resumido. Estoy traduciendo un par de documentos muy interesantes. Se los haré llegar cuando los termine. Saludos, -Hernan