From alvaro en godsmaze.org Sat Sep 1 22:35:12 2001 From: alvaro en godsmaze.org (Alvaro =?ISO-8859-1?Q?L=F3pez?= Ortega) Date: 01 Sep 2001 22:35:12 +0200 Subject: salida de un programa In-Reply-To: References: Message-ID: <999376512.15151.2.camel@servidor> On 31 Aug 2001 21:35:54 +0200, Pedro Floro wrote: > import os > ejecuta=os.popen('nombre_programa') > Y asi te saldria lo que sacara por pantalla el otro programa. > Bueno, a lo mejor es algo chapucero, pero yo es lo que uso. ¿Chapucero? Que va.. :-) Yo veo más limpio usar os.popen o os.system que el módulo command. Pero bueno, esto ya son gustos de cada uno. -- Greetings, alo. From amphora en escomposlinux.org Mon Sep 3 18:16:09 2001 From: amphora en escomposlinux.org (Israel Gutierrez) Date: Mon, 3 Sep 2001 18:16:09 +0200 Subject: curses Message-ID: <20010903181609.A16233@desdemona> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Buenas, este es mi primer mensaje a la lista, un saludo a todos. En C, cuando se hace uso de ncurses y se inicializa la librería con initscr() se obtienen los valores para el número de caracteres que admite en x e y, ¿Como se obtiene este valor en python? Es decir, ¿como puedo saber la capacidad del terminal? - -- "Linux is obsolete". Andrew Tanenbaum amphora at escomposlinux.org http://desdemona.net.dhis.org -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQE7k6zHbxRsnxqoy84RAmhOAJ9EhYEEZBZhJCedjfCMtTtSCEmGsACgyUOs KEeR1jdOAFSigh24ZNu/mLg= =rQOM -----END PGP SIGNATURE----- From pdiaz88 en terra.es Mon Sep 3 20:32:26 2001 From: pdiaz88 en terra.es (Pedro =?iso-8859-1?q?D=EDaz=20Jim=E9nez?=) Date: Mon, 3 Sep 2001 18:32:26 +0000 Subject: curses In-Reply-To: <20010903181609.A16233@desdemona> References: <20010903181609.A16233@desdemona> Message-ID: <01090318322605.17458@duero> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Creo que getmaxyx() puede ser lo que buscas: pdiaz en tajo:~$ cat prueba.py import curses scr = curses.initscr() curses.endwin() print scr.getmaxyx() pdiaz en tajo:~$ python prueba.py (31, 100) pdiaz en tajo:~$ Saludetes Pedro On Monday 03 September 2001 16:16, Israel Gutierrez wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Buenas, este es mi primer mensaje a la lista, un saludo a todos. > > En C, cuando se hace uso de ncurses y se inicializa la librería con > initscr() se obtienen los valores para el número de caracteres que admite > en x e y, ¿Como se obtiene este valor en python? Es decir, ¿como puedo > saber la capacidad del terminal? > > - -- > "Linux is obsolete". Andrew Tanenbaum > amphora at escomposlinux.org http://desdemona.net.dhis.org > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.0.6 (GNU/Linux) > Comment: For info see http://www.gnupg.org > > iD8DBQE7k6zHbxRsnxqoy84RAmhOAJ9EhYEEZBZhJCedjfCMtTtSCEmGsACgyUOs > KEeR1jdOAFSigh24ZNu/mLg= > =rQOM > -----END PGP SIGNATURE----- - -- /* * Pedro Diaz Jimenez: pdiaz88 en terra.es, pdiaz en acm.asoc.fi.upm.es * * GPG KeyID: E118C651 * Fingerprint: 1FD9 163B 649C DDDC 422D 5E82 9EEE 777D E118 C65 * * http://planetcluster.org * Clustering & H.P.C. news and documentation * * "La sabiduria me persigue, pero yo soy mas rapido" */ -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.4 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQE7k8y6nu53feEYxlERAgwsAKDtx8ZDXgnpJT6RkPiNJW1GtuQztQCfclkU yvnS2vGeUw06X1j4BMUd1Ho= =16+O -----END PGP SIGNATURE----- From rgmong en teleline.es Sat Sep 8 18:08:10 2001 From: rgmong en teleline.es (Ramon Gonzalez) Date: Sat, 08 Sep 2001 18:08:10 +0200 Subject: recoger correo pop3 Message-ID: <3B9A426A.4332978F@teleline.es> Hola a todos, Es el primer mensaje a la lista. LLevo un tiempo, pero no he escrito antes por falta de tiempo. Y además no estaba seguro de haberme suscrito correctamente. Por si a alguien le interesa pongo a continuación un programa tipo fetchmail, pero muy limitado. Realmente lo unico que hace es coger correo de una cuenta predeterminada, pero cada cuál que lo modifique a su gusto :-) Para crearlo me fije en los ejemplos de poplib y los ficheros que crea el Netscape. Saludos, Ramon == Inicio pop3.py ================================================== # Programa para recoger el correo de una cuenta POP3 # # Hay que modificar donde pone: servidor, usuario y password. # Los mensajes se añaden al fichero 'mbox.txt' import poplib, time f=open('mbox.txt','ab+') hora=time.localtime(time.time()) fecha='From - '+time.asctime(hora)+'\n' M = poplib.POP3('servidor') # servidor de correo M.user('usuario') # cuenta de usuario M.pass_('password') # contraseña numMessages = len(M.list()[1]) for i in range(numMessages): f.write(fecha) # cabecera del formato mbox (unix) for j in M.retr(i+1)[1]: f.write(j) # escribe una linea f.write('\n') # se añade el salto de linea f.write('\n') # salto entre mensajes f.close() == FIN pop3.py ===================================================== From amphora en escomposlinux.org Sun Sep 9 08:15:02 2001 From: amphora en escomposlinux.org (Israel Gutierrez) Date: Sun, 9 Sep 2001 08:15:02 +0200 Subject: recoger correo pop3 In-Reply-To: <3B9A426A.4332978F@teleline.es> References: <3B9A426A.4332978F@teleline.es> Message-ID: <20010909081502.A8990@desdemona> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 El sáb, 08 de sep de 2001, a las 06:08:10 +0200, Ramon Gonzalez dijo: > Por si a alguien le interesa pongo a continuación un programa > tipo fetchmail, pero muy limitado. Realmente lo unico que hace > es coger correo de una cuenta predeterminada, pero cada cuál > que lo modifique a su gusto :-) Por si quieres apreender algo mas, existe un programa bastante más desarrollado, que hace lo mismo pero con muchas "features" http://www.escomposlinux.org/fer_y_juanjo/index.html - -- "Linux is obsolete". Andrew Tanenbaum amphora at escomposlinux.org http://desdemona.net.dhis.org -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQE7mwjlbxRsnxqoy84RAgeRAJwKvCWGJbBkWP1Uol+LoT/AaPXb2wCgncIw zqZ55VcGZSklVJ817XxFGyQ= =W5yI -----END PGP SIGNATURE----- From floro en aditel.org Sun Sep 9 16:52:47 2001 From: floro en aditel.org (Pedro Floro) Date: Sun, 9 Sep 2001 16:52:47 +0200 (CEST) Subject: =?ISO-8859-1?Q?Usuarios_y_contrase=F1as?= Message-ID: Hola, Tenia pensado hacer un script para unix para poder entrar en una cuenta de un usuario teniendo por ejemplo una gran combinacion de numeros y letras. Asi se comprobaria la fiabilidad de la contraseña, es decir, para ver si tu cuenta es segura o no. El caso es que me gustaria hacer como si yo entrara con el nombre de un usuario e ir probando una a una las contraseñas de la lista. Algo como: Login: pepe Password: pepe69 Login or password incorrect. Bueno, e ir repitiendo esta sucesion, pero que lo haga el script. Y lo que no se hacer es cómo hacer que al llamar al sistema para lo del login le meta el login o la contraseña. Bueno, no me explico muy bien, pero creo que sabeis mas o menos la idea. Si alguien sabe como hacer esto en un script de python, pues agradeceria que me lo comentara. Ale, gracias, saludos. ---- ** ---- Aditel.org WeBMaSTeR floro en aditel.org ---- ** ---- From hernan en orgmf.com.ar Mon Sep 10 11:37:50 2001 From: hernan en orgmf.com.ar (Hernan Martinez Foffani) Date: Mon, 10 Sep 2001 11:37:50 +0200 Subject: =?iso-8859-1?Q?RE:_=5Bpython-es=5D_Usuarios_y_contrase=F1as?= In-Reply-To: References: Message-ID: No. No tenés que hacer login. En unix el login te fuerza una demora para evitar justamente los ataques por fuerza bruta. Tenés que usar el modulo crypt. En la documentación hay un ejemplo que te sirve como base. Saludos, -Hernán. > -----Mensaje original----- > De: Pedro Floro [mailto:floro en aditel.org] > Enviado el: domingo, 09 de septiembre de 2001 16:53 > Para: python-es en aditel.org > Asunto: [python-es] Usuarios y contraseñas > > > Hola, > > Tenia pensado hacer un script para unix para poder entrar en una > cuenta de un usuario teniendo por ejemplo una gran combinacion de > numeros y letras. Asi se comprobaria la fiabilidad de la > contraseña, es decir, para ver si tu cuenta es segura o no. El > caso es que me gustaria hacer como si yo entrara con el nombre de > un usuario e ir probando una a una las contraseñas de la lista. > Algo como: > > Login: pepe > Password: pepe69 > > Login or password incorrect. > > Bueno, e ir repitiendo esta sucesion, pero que lo haga el script. > Y lo que no se hacer es cómo hacer que al llamar al sistema para > lo del login le meta el login o la contraseña. Bueno, no me > explico muy bien, pero creo que sabeis mas o menos la idea. > > Si alguien sabe como hacer esto en un script de python, pues > agradeceria que me lo comentara. > > Ale, gracias, saludos. > > ---- ** ---- > Aditel.org > WeBMaSTeR > floro en aditel.org > ---- ** ---- > > From alvaro en godsmaze.org Mon Sep 10 15:14:06 2001 From: alvaro en godsmaze.org (Alvaro =?ISO-8859-1?Q?L=F3pez?= Ortega) Date: 10 Sep 2001 15:14:06 +0200 Subject: [python-es] Usuarios y =?ISO-8859-1?Q?contrase=F1as?= In-Reply-To: References: Message-ID: <1000127656.1354.9.camel@servidor> On Mon, 2001-09-10 at 11:37, Hernan Martinez Foffani wrote: > No. No tenés que hacer login. En unix el login te fuerza una > demora para evitar justamente los ataques por fuerza bruta. > Tenés que usar el modulo crypt. En la documentación hay > un ejemplo que te sirve como base. Uff.. un poco 'retro' eso del crypt() ;-) Módulo de PAM para Python: http://packages.debian.org/unstable/interpreters/python-pam.html -- Greetings, alo. From pdiaz88 en terra.es Mon Sep 10 16:17:50 2001 From: pdiaz88 en terra.es (Pedro =?iso-8859-1?q?D=EDaz=20Jim=E9nez?=) Date: Mon, 10 Sep 2001 14:17:50 +0000 Subject: [python-es] Usuarios =?iso-8859-1?q?ycontrase=F1as?= In-Reply-To: <1000127656.1354.9.camel@servidor> References: <1000127656.1354.9.camel@servidor> Message-ID: <01091014175000.20055@duero> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Holas, En cualquier caso, para eso ya existe un (muy buen) programa: John the Ripper Saludetes Pedro On Monday 10 September 2001 13:14, Alvaro López Ortega wrote: > On Mon, 2001-09-10 at 11:37, Hernan Martinez Foffani wrote: > > No. No tenés que hacer login. En unix el login te fuerza una > > demora para evitar justamente los ataques por fuerza bruta. > > Tenés que usar el modulo crypt. En la documentación hay > > un ejemplo que te sirve como base. > > Uff.. un poco 'retro' eso del crypt() ;-) > > Módulo de PAM para Python: > http://packages.debian.org/unstable/interpreters/python-pam.html - -- /* * Pedro Diaz Jimenez: pdiaz88 en terra.es, pdiaz en acm.asoc.fi.upm.es * * GPG KeyID: E118C651 * Fingerprint: 1FD9 163B 649C DDDC 422D 5E82 9EEE 777D E118 C65 * * http://planetcluster.org * Clustering & H.P.C. news and documentation * * "La sabiduria me persigue, pero yo soy mas rapido" */ -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.4 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQE7nMuanu53feEYxlERAoK7AJ4l9K1PNbt61w8OQTmD8rzZOh8L1wCgpJaS Y3PQsuNld/TEK+urG9mb5kc= =qo4z -----END PGP SIGNATURE----- From hernan en orgmf.com.ar Mon Sep 10 14:31:47 2001 From: hernan en orgmf.com.ar (Hernan Martinez Foffani) Date: Mon, 10 Sep 2001 14:31:47 +0200 Subject: =?iso-8859-1?Q?RE:_=5Bpython-es=5D_RE:_=5Bpython-es=5D_Usuarios_ycontra?= =?iso-8859-1?Q?se=F1as?= In-Reply-To: <1000127656.1354.9.camel@servidor> References: <1000127656.1354.9.camel@servidor> Message-ID: > De: Alvaro López Ortega [mailto:alvaro en godsmaze.org] > > Uff.. un poco 'retro' eso del crypt() ;-) je je. los años no vienen solos... > > Módulo de PAM para Python: > http://packages.debian.org/unstable/interpreters/python-pam.html ah, interesante. no lo concía. si, parece que es lo mas "limpio". por decir alguna excusa para salir del paso :-), el modulo crypt viene en la distribución estandar de python :-P Saludos, -Hernan From floro en aditel.org Mon Sep 10 19:30:31 2001 From: floro en aditel.org (Pedro Floro) Date: Mon, 10 Sep 2001 19:30:31 +0200 (CEST) Subject: =?ISO-8859-1?Q?Re=3A=5Bpython-es=5D_Usuarios_ycontrase=F1as?= In-Reply-To: <01091014175000.20055@duero> References: <01091014175000.20055@duero> Message-ID: On Mon, 10 Sep 2001, Pedro Díaz Jiménez wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Holas, > > En cualquier caso, para eso ya existe un (muy buen) programa: John the Ripper > Pero si usan shadow entonces no puedes hacer nada porque necesitas no se qué que se consigue siendo root, entonces, si no eres root, pues no puedes usar el programa. Bueno, es que me lo han explicado mas o menos. Saludos. > > Saludetes > Pedro > On Monday 10 September 2001 13:14, Alvaro López Ortega wrote: > > On Mon, 2001-09-10 at 11:37, Hernan Martinez Foffani wrote: > > > No. No tenés que hacer login. En unix el login te fuerza una > > > demora para evitar justamente los ataques por fuerza bruta. > > > Tenés que usar el modulo crypt. En la documentación hay > > > un ejemplo que te sirve como base. > > > > Uff.. un poco 'retro' eso del crypt() ;-) > > > > Módulo de PAM para Python: > > http://packages.debian.org/unstable/interpreters/python-pam.html > > - -- > > /* > * Pedro Diaz Jimenez: pdiaz88 en terra.es, pdiaz en acm.asoc.fi.upm.es > * > * GPG KeyID: E118C651 > * Fingerprint: 1FD9 163B 649C DDDC 422D 5E82 9EEE 777D E118 C65 > * > * http://planetcluster.org > * Clustering & H.P.C. news and documentation > * > * "La sabiduria me persigue, pero yo soy mas rapido" > */ > > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.0.4 (GNU/Linux) > Comment: For info see http://www.gnupg.org > > iD8DBQE7nMuanu53feEYxlERAoK7AJ4l9K1PNbt61w8OQTmD8rzZOh8L1wCgpJaS > Y3PQsuNld/TEK+urG9mb5kc= > =qo4z > -----END PGP SIGNATURE----- > ---- ** ---- Aditel.org WeBMaSTeR floro en aditel.org ---- ** ---- From floro en aditel.org Mon Sep 10 19:35:22 2001 From: floro en aditel.org (Pedro Floro) Date: Mon, 10 Sep 2001 19:35:22 +0200 (CEST) Subject: [python-es] Usuarios y =?ISO-8859-1?Q?contrase=F1as?= In-Reply-To: <1000127656.1354.9.camel@servidor> References: <1000127656.1354.9.camel@servidor> Message-ID: On 10 Sep 2001, Alvaro López Ortega wrote: > On Mon, 2001-09-10 at 11:37, Hernan Martinez Foffani wrote: > > > No. No tenés que hacer login. En unix el login te fuerza una > > demora para evitar justamente los ataques por fuerza bruta. > > Tenés que usar el modulo crypt. En la documentación hay > > un ejemplo que te sirve como base. > > Uff.. un poco 'retro' eso del crypt() ;-) > > Módulo de PAM para Python: > http://packages.debian.org/unstable/interpreters/python-pam.html A mi no me abre la pagina. No se si es que estara mal el servidor o habras puesto mal alguna letra, no se. Y que es eso del PAM? Pos ale, ta luec. > > -- > Greetings, alo. > ---- ** ---- Aditel.org WeBMaSTeR floro en aditel.org ---- ** ---- From alvaro en godsmaze.org Mon Sep 10 21:04:23 2001 From: alvaro en godsmaze.org (Alvaro =?ISO-8859-1?Q?L=F3pez?= Ortega) Date: 10 Sep 2001 21:04:23 +0200 Subject: [python-es] Usuarios y =?ISO-8859-1?Q?contrase=F1as?= In-Reply-To: References: Message-ID: <1000148664.1319.10.camel@servidor> On Mon, 2001-09-10 at 19:35, Pedro Floro wrote: > > Módulo de PAM para Python: > > http://packages.debian.org/unstable/interpreters/python-pam.html > A mi no me abre la pagina. No se si es que estara mal el servidor > o habras puesto mal alguna letra, no se. Y que es eso del PAM? Mira en: http://www.kernel.org/pub/linux/libs/pam/ PAM (Pluggable Authentication Modules) es el sistema de autentificación que se utiliza en el 99% de los Linux. Básicamente es una capa de abstracción dentro de todo el proceso.. hay módulos que validan por diferentes formas, uno de ellos es del que hablais: /etc/shadow, pero puedes validar por muchos más sistemas. Si las aplicaciones usan PAM se quitan todos los problemas asociados a los distintos tipos de validaciones, además de ser mucho más configurable. -- Greetings, alo. From hernan en orgmf.com.ar Mon Sep 10 20:14:18 2001 From: hernan en orgmf.com.ar (Hernan Martinez Foffani) Date: Mon, 10 Sep 2001 20:14:18 +0200 Subject: =?iso-8859-1?Q?RE:_=5Bpython-es=5D_RE:_=5Bpython-es=5D_Usuarios_y_contr?= =?iso-8859-1?Q?ase=F1as?= In-Reply-To: References: Message-ID: > > > > Módulo de PAM para Python: > > http://packages.debian.org/unstable/interpreters/python-pam.html > El url está bien. Por lo que aprendí hoy libpam es una biblioteca que te permite hacer autenticaciones de usuarios independientemente de la aplicación. python-pam es la "capa" python sobre dicha biblioteca. saluditos, -hernán From pdiaz88 en terra.es Tue Sep 11 11:42:53 2001 From: pdiaz88 en terra.es (Pedro =?iso-8859-1?q?D=EDaz=20Jim=E9nez?=) Date: Tue, 11 Sep 2001 09:42:53 +0000 Subject: [python-es] Usuarios =?iso-8859-1?q?ycontrase=F1as?= In-Reply-To: References: Message-ID: <01091109425309.20137@duero> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Bueno bueno, no habreis pensado que podriais acceder a los password (encriptados) sin ser root, verdad? Hoy en dia todos los sistemas tienen shadow Y ademas, se supone que es una herramienta del _administrador_ Saludetes Pedro On Monday 10 September 2001 17:30, Pedro Floro wrote: > On Mon, 10 Sep 2001, Pedro Díaz Jiménez wrote: > > -----BEGIN PGP SIGNED MESSAGE----- > > Hash: SHA1 > > > > Holas, > > > > En cualquier caso, para eso ya existe un (muy buen) programa: John the > > Ripper > > Pero si usan shadow entonces no puedes hacer nada porque > necesitas no se qué que se consigue siendo root, entonces, si no > eres root, pues no puedes usar el programa. Bueno, es que me lo > han explicado mas o menos. > Saludos. > > > Saludetes > > Pedro > > > > On Monday 10 September 2001 13:14, Alvaro López Ortega wrote: > > > On Mon, 2001-09-10 at 11:37, Hernan Martinez Foffani wrote: > > > > No. No tenés que hacer login. En unix el login te fuerza una > > > > demora para evitar justamente los ataques por fuerza bruta. > > > > Tenés que usar el modulo crypt. En la documentación hay > > > > un ejemplo que te sirve como base. > > > > > > Uff.. un poco 'retro' eso del crypt() ;-) > > > > > > Módulo de PAM para Python: > > > http://packages.debian.org/unstable/interpreters/python-pam.html > > > > - -- > > > > /* > > * Pedro Diaz Jimenez: pdiaz88 en terra.es, pdiaz en acm.asoc.fi.upm.es > > * > > * GPG KeyID: E118C651 > > * Fingerprint: 1FD9 163B 649C DDDC 422D 5E82 9EEE 777D E118 C65 > > * > > * http://planetcluster.org > > * Clustering & H.P.C. news and documentation > > * > > * "La sabiduria me persigue, pero yo soy mas rapido" > > */ > > > > -----BEGIN PGP SIGNATURE----- > > Version: GnuPG v1.0.4 (GNU/Linux) > > Comment: For info see http://www.gnupg.org > > > > iD8DBQE7nMuanu53feEYxlERAoK7AJ4l9K1PNbt61w8OQTmD8rzZOh8L1wCgpJaS > > Y3PQsuNld/TEK+urG9mb5kc= > > =qo4z > > -----END PGP SIGNATURE----- > > ---- ** ---- > Aditel.org > WeBMaSTeR > floro en aditel.org > ---- ** ---- - -- /* * Pedro Diaz Jimenez: pdiaz88 en terra.es, pdiaz en acm.asoc.fi.upm.es * * GPG KeyID: E118C651 * Fingerprint: 1FD9 163B 649C DDDC 422D 5E82 9EEE 777D E118 C65 * * http://planetcluster.org * Clustering & H.P.C. news and documentation * */ - -- "C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows away your whole leg." -- Bjarne Stroustrup -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.4 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQE7ndydnu53feEYxlERApzSAJ0eRzCurUWnFqTCtLJuPG90Os/8tACgxqwU vHP2Pq7iENTfbgUkl6NLmC4= =agml -----END PGP SIGNATURE----- From srua en esware.com Tue Sep 11 14:12:20 2001 From: srua en esware.com (Sergio Rua) Date: Tue, 11 Sep 2001 14:12:20 +0200 Subject: expresiones regulares Message-ID: <20010911141220.A3962@pulidor.esware.com> Hola, Quería reemplazar un texto en un fichero usando una expresión regular o similar pero no soy capaz. Me hecha alguien una mano? Un saludo, Sergio Rua Departamento de Desarrollo http://comunidad.esware.com From alvaro en godsmaze.org Tue Sep 11 15:30:21 2001 From: alvaro en godsmaze.org (Alvaro =?ISO-8859-1?Q?L=F3pez?= Ortega) Date: 11 Sep 2001 15:30:21 +0200 Subject: expresiones regulares In-Reply-To: <20010911141220.A3962@pulidor.esware.com> References: <20010911141220.A3962@pulidor.esware.com> Message-ID: <1000215021.5653.6.camel@servidor> On Tue, 2001-09-11 at 14:12, Sergio Rua wrote: > Quería reemplazar un texto en un fichero usando una expresión > regular o similar pero no soy capaz. Me hecha alguien una mano? En el módulo string, la función replace. Por ejemplo: todo = "Esto es una prueba de Py.. :-)\n Py.. rules %-)" from string import replace todo = replace (todo, 'Py..', 'Python') print todo Tambien puede usar expresiones regulares, pero si solo necesitas cambiar una cadena de texto esto es lo más sencillo. :-) -- Greetings, alo. From srua en esware.com Tue Sep 11 15:23:59 2001 From: srua en esware.com (Sergio Rua) Date: Tue, 11 Sep 2001 15:23:59 +0200 Subject: expresiones regulares In-Reply-To: <1000215021.5653.6.camel@servidor>; from alvaro@godsmaze.org on Tue, Sep 11, 2001 at 03:30:21PM +0200 References: <20010911141220.A3962@pulidor.esware.com> <1000215021.5653.6.camel@servidor> Message-ID: <20010911152359.B3962@pulidor.esware.com> Buenas! El día Sep/11/2001, Alvaro López Ortega escribía: > En el módulo string, la función replace. Creo que me valdrá. Gracias. Un saludo, Sergio Rua Departamento de Desarrollo http://comunidad.esware.com From srua en esware.com Tue Sep 11 16:06:39 2001 From: srua en esware.com (Sergio Rua) Date: Tue, 11 Sep 2001 16:06:39 +0200 Subject: expresiones regulares In-Reply-To: <1000215021.5653.6.camel@servidor>; from alvaro@godsmaze.org on Tue, Sep 11, 2001 at 03:30:21PM +0200 References: <20010911141220.A3962@pulidor.esware.com> <1000215021.5653.6.camel@servidor> Message-ID: <20010911160639.A4192@pulidor.esware.com> Buenas! El día Sep/11/2001, Alvaro López Ortega escribía: > En el módulo string, la función replace. Lo he estado probando y me pasa esto: >>> lines=file.readlines() >>> lines=replace(lines,"auto","Mierda") Traceback (innermost last): File "", line 1, in ? TypeError: argument 1: expected read-only character buffer, list found >>> Un saludo, Sergio Rua Departamento de Desarrollo http://comunidad.esware.com From alma en universodigital.net Tue Sep 11 17:26:49 2001 From: alma en universodigital.net (Alma Mallo) Date: Tue, 11 Sep 2001 17:26:49 +0200 Subject: [pyhton-es]expresiones regulares Message-ID: <3B9E2D39.5CB342D5@universodigital.net> >>>> lines=file.readlines() >>>> lines=replace(lines,"auto","Mierda") >Traceback (innermost last): > File "", line 1, in ? > TypeError: argument 1: expected read-only character buffer, list found Te pasa eso porque readlines devuelve una lista de strings y replace actua sobre strings. Lo que puedes hacer es aplicar el replace a cada linea de la lista. Un saludo, Alma Mallo From pdiaz88 en terra.es Tue Sep 11 19:05:50 2001 From: pdiaz88 en terra.es (Pedro =?iso-8859-1?q?D=EDaz=20Jim=E9nez?=) Date: Tue, 11 Sep 2001 17:05:50 +0000 Subject: expresiones regulares In-Reply-To: <20010911160639.A4192@pulidor.esware.com> References: <20010911141220.A3962@pulidor.esware.com> <1000215021.5653.6.camel@servidor> <20010911160639.A4192@pulidor.esware.com> Message-ID: <0109111705500B.20137@duero> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 esta aplicando sobre una lista en vez de sobre una cadena. Solucion: Mapea (map) la lista Saludetes Pedro On Tuesday 11 September 2001 14:06, Sergio Rua wrote: > Buenas! > > El día Sep/11/2001, Alvaro López Ortega escribía: > > En el módulo string, la función replace. > > Lo he estado probando y me pasa esto: > >>> lines=file.readlines() > >>> lines=replace(lines,"auto","Mierda") > > Traceback (innermost last): > File "", line 1, in ? > TypeError: argument 1: expected read-only character buffer, list found > > > > Un saludo, > > Sergio Rua > Departamento de Desarrollo > http://comunidad.esware.com - -- /* * Pedro Diaz Jimenez: pdiaz88 en terra.es, pdiaz en acm.asoc.fi.upm.es * * GPG KeyID: E118C651 * Fingerprint: 1FD9 163B 649C DDDC 422D 5E82 9EEE 777D E118 C65 * * http://planetcluster.org * Clustering & H.P.C. news and documentation * */ - -- "Go to Heaven for the climate, Hell for the company." -- Mark Twain -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.4 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQE7nkRunu53feEYxlERAtnJAJ9SwtYnKDmLO7ssCJ7vUCKJjv4GLgCfQ/He MPDG+mAWHZKRVhy7srhcnJg= =vhZ9 -----END PGP SIGNATURE----- From alvaro en godsmaze.org Tue Sep 11 18:11:55 2001 From: alvaro en godsmaze.org (Alvaro =?ISO-8859-1?Q?L=F3pez?= Ortega) Date: 11 Sep 2001 18:11:55 +0200 Subject: expresiones regulares In-Reply-To: <20010911160639.A4192@pulidor.esware.com> References: <20010911141220.A3962@pulidor.esware.com> <1000215021.5653.6.camel@servidor> <20010911160639.A4192@pulidor.esware.com> Message-ID: <1000224719.953.4.camel@servidor> On Tue, 2001-09-11 at 16:06, Sergio Rua wrote: > Lo he estado probando y me pasa esto: > >>> lines=file.readlines() > >>> lines=replace(lines,"auto","Mierda") > Traceback (innermost last): > File "", line 1, in ? > TypeError: argument 1: expected read-only character buffer, list found > >>> Tienes dos opciones: ===1=== todo = replace (file.read(), "auto", "Mierda") ======= ó ===2=== todo = replace (reduce (lambda x,y: x+y, file.readlines()), "auto", "Mierda") ======= Personalmente prefiero la primera: más simple y un poco más eficiente con la memoria. -- Greetings, alo. From floro en aditel.org Tue Sep 11 23:51:51 2001 From: floro en aditel.org (Pedro Floro) Date: Tue, 11 Sep 2001 23:51:51 +0200 (CEST) Subject: Curses Message-ID: Hola, He querido empezar algun ejemplo con curses, pero... >>> import curses Traceback (most recent call last): File "", line 1, in ? import curses ImportError: No module named curses Por que pasa esto? Saludos. ---- ** ---- Aditel.org WeBMaSTeR floro en aditel.org ---- ** ---- From alvaro en godsmaze.org Wed Sep 12 03:02:30 2001 From: alvaro en godsmaze.org (Alvaro =?ISO-8859-1?Q?L=F3pez?= Ortega) Date: 12 Sep 2001 03:02:30 +0200 Subject: Curses In-Reply-To: References: Message-ID: <1000256550.4650.16.camel@servidor> On Tue, 2001-09-11 at 23:51, Pedro Floro wrote: > He querido empezar algun ejemplo con curses, pero... > >>> import curses > Traceback (most recent call last): > File "", line 1, in ? > import curses > ImportError: No module named curses > Por que pasa esto? No tiene acceso al módulo. Puede ser pq no lo tengas o pq tengas mal puesto el PATH. Prueba con esto: $ find /usr/lib/python2.2 -name curses Si no esta, ya sabes lo que pasa. Y si aparece, empieza a investigar por ahi. -- Greetings, alo. From floro en aditel.org Wed Sep 12 16:22:54 2001 From: floro en aditel.org (Pedro Floro) Date: Wed, 12 Sep 2001 16:22:54 +0200 (CEST) Subject: Curses In-Reply-To: <1000256550.4650.16.camel@servidor> References: <1000256550.4650.16.camel@servidor> Message-ID: Y si no tengo el modulo.... de donde me lo bajo? A proposito, estaba en windows, y de todas formas lo he buscado por todas partes, pero no ha aparecido, asi que creo que no lo tengo. Es curioso que en el archivo de instalacion que me bajé del python 2.1 no estuviera incluido... ---- ** ---- Aditel.org WeBMaSTeR floro en aditel.org ---- ** ---- From rgmong en teleline.es Thu Sep 13 19:19:05 2001 From: rgmong en teleline.es (Ramon Gonzalez) Date: Thu, 13 Sep 2001 19:19:05 +0200 Subject: threading y Queue Message-ID: <3BA0EA89.7406A9FE@teleline.es> Hola, Estoy intentando aprender sobre hilos y tengo dudas. Pongo el código aquí para ver si alguien me puede decir en qué fallan las rutinas. Al principio lo hice como aparece en 'threading1.pyw', pero despues vi en el manual que existe una clase llamada Queue que está diseñada para lo que pretendo hacer (según pude entender), e hice 'threading2.pyw'. Saludos, Ramon ===== threading1.pyw ================================================== from threading import * class hilillo(Thread): def __init__(self): Thread.__init__(self) def run(self): while len(lista)>0: nuevo = lista.pop() print nuevo lista = [0,1,2,3,4,5,6,7,8,9,10] h1 = hilillo() h2 = hilillo() h3 = hilillo() h1.start() h2.start() h3.start() h1.join() h2.join() h3.join() ===== fin threading1.pyw ============================================ 2º programa: (utilizando Queue) ===== threading2.pyw ================================================ from threading import * from Queue import * class hilillo(Thread): def __init__(self): Thread.__init__(self) def run(self): while not lista.empty(): nuevo = lista.get() print nuevo lista = Queue() for x in range(11): lista.put(x) h1 = hilillo() h2 = hilillo() h3 = hilillo() h1.start() h2.start() h3.start() h1.join() h2.join() h3.join() ===== fin threading2.pyw ============================================= From alvaro en godsmaze.org Fri Sep 14 21:01:42 2001 From: alvaro en godsmaze.org (Alvaro =?ISO-8859-1?Q?L=F3pez?= Ortega) Date: 14 Sep 2001 21:01:42 +0200 Subject: threading y Queue In-Reply-To: <3BA0EA89.7406A9FE@teleline.es> References: <3BA0EA89.7406A9FE@teleline.es> Message-ID: <1000494103.10074.29.camel@servidor> On Thu, 2001-09-13 at 19:19, Ramon Gonzalez wrote: > Estoy intentando aprender sobre hilos y tengo dudas. Pongo el código > aquí para ver si alguien me puede decir en qué fallan las rutinas. > Al principio lo hice como aparece en 'threading1.pyw', pero despues vi > en el manual que existe una clase llamada Queue que está diseñada para > lo que pretendo hacer (según pude entender), e hice 'threading2.pyw'. El problema que tienes, que en realidad no es un problema, es el "tamaño del grano": from threading import * from Queue import * class hilillo(Thread): def __init__(self, n): Thread.__init__(self,name=n) def run(self): while not lista.empty(): nuevo = lista.get() print "Soy el hilo %s: %d" % (self.getName(), nuevo) lista = Queue() for x in xrange(11111): lista.put(x) h1 = hilillo('uno') h2 = hilillo('dos') h3 = hilillo('tres') h1.start() h2.start() h3.start() h1.join() h2.join() h3.join() Si ejecutas este ejemplo puedes ver como realmente funciona, pero con el ejemplo de una lista de 10 elementos no llevaba a cambiar de un thread a otro. -- Greetings, alo. From ibarona en tid.es Mon Sep 17 12:59:45 2001 From: ibarona en tid.es (Isaac Barona =?iso-8859-1?Q?Mart=EDnez?=) Date: Mon, 17 Sep 2001 12:59:45 +0200 Subject: ANN: =?iso-8859-1?Q?Librer=EDa?= USPP (Universal Serial Port Python) v 0.1 Message-ID: <3BA5D7A1.B24D6D0F@tid.es> Hola a todos!!!! Acabo de liberar la primera versión de una nueva librería llamada USPP (Universal Serial Port Python). La librería USPP es un módulo desarrollado en Python para el acceso multiplataforma al puerto serie. En el momento, sólo funciona en Linux y en Windows (las plataformas a las que tengo acceso), pero como está escrita completamente en Python (no es únicamente un recubrimiento en Python de una librería desarrollada en C/C++) espero que pueda ser ampliada para que soporte otras plataformas. Este módulo tiene las siguientes características destacadas: - acceso de alto nivel al puerto serie bajo diversas plataformas. - autodetecta la plataforma en la que se está ejecutando y carga las clases adecuadas para esa plataforma. - Orientado a objetos. - Las operaciones sobre el puerto serie tienen la misma semántica que las operaciones sobre objetos de tipo fichero. - permite utilizar el puerto serie con diferentes velocidades y características. - permite la utilización del puerto bajo dos modos de funcionamiento: RS-232 y RS-485 (de momento, sólo RS-232). En modo 485 la comunicación es half-duplex y se utiliza la línea RTS para controlar la dirección de la transferencia. - lecturas en modo bloqueante, no bloqueante o con timeout. La librería se libera bajo licencia GPL y se puede encontrar en: http://balder.prohosting.com/ibarona/en/python/uspp/uspp_es.html Sugerencias, bugs, nuevas funcionalidades... serán agradecidas. Saludos, Isaac. -- Isaac Barona Martínez Madrid (SPAIN) From rgmong en teleline.es Tue Sep 18 07:05:17 2001 From: rgmong en teleline.es (Ramon Gonzalez) Date: Tue, 18 Sep 2001 07:05:17 +0200 Subject: threading y Queue References: <3BA0EA89.7406A9FE@teleline.es> <1000494103.10074.29.camel@servidor> Message-ID: <3BA6D60D.63F0362F@teleline.es> Hola Alvaro, Alvaro López Ortega escribió: > > El problema que tienes, que en realidad no es un problema, es el "tamaño > del grano": Curioso nombre :-) > Si ejecutas este ejemplo puedes ver como realmente funciona, pero con el > ejemplo de una lista de 10 elementos no llevaba a cambiar de un thread a > otro. Es cierto, ahora funciona, aunque he tenido que añadir un parámetro. Donde pone: lista = Queue() he puesto: lista = Queue(0) Y además no funciona siempre. Funciona por simple coincidencia. He estado cambiando valores (añadiendo más hilos) y el programa se cuelga al final. Una de las razones de usar 'Queue' fue para evitar el problema de que al hacer la comprobación para ver si la cola está vacía, diga que todavía existen elementos pero lleguen antes otros hilos y dejen vacia la cola y el programa se cuelge. Podrás comprobar que esto ocurre con un número mayor de hilos. He probado 'lista.get_nowait()' pero no se si ésta es la solución. No se si he explicado bien el problema ?-m ¿Alguna sugerencia? Un saludo, Ramon PD: Si la programa está en Windows, en el directorio 'Escritorio', python no puede encontrar la librería threading. Me ha vuelto loco durante algunos días, ¿Será un bug? From jfuertes en maz.es Mon Sep 24 09:44:35 2001 From: jfuertes en maz.es (Jorge Fuertes) Date: Mon, 24 Sep 2001 09:44:35 +0200 Subject: OFF-TOPIC: Webhosting. Message-ID: <3BAEE463.9020702@maz.es> Hola a todos. Perdonad por la molestia, pero no sé a quién preguntar. Contraté un hosting con dinahosting.com (PHP, Mysql, etc) por 1900 pelas al mes, pero su software de FTP no funciona bien. Los tíos me proponen que convierta mi router en un modem, direccionando todos los puertos a una máquina, y de esa forma se supone que me funcionaría el FTP. Evidentemente no es solución. ¿Sabeís de algún servicio de hosting sobre Linux, con PHP y MySQL que funcione bien y por un precio razonable? Muchas gracias. Saludos.