From luis.iglesias en vigo.org Mon Jun 2 10:16:46 2014 From: luis.iglesias en vigo.org (Luis Iglesias) Date: Mon, 2 Jun 2014 10:16:46 +0200 (CEST) Subject: [Python-es] Analizar cadena y extraer valores In-Reply-To: Message-ID: <446580237.1465269.1401697006930.JavaMail.root@zimbra.ayto.vigo> ----- Mensaje original ----- De: "Manuel A. Estevez Fernandez" Para: "La lista de python en castellano" Enviados: Jueves, 29 de Mayo 2014 19:03:47 Asunto: [Python-es] Analizar cadena y extraer valores Saludos a todos Tengo la siguiente necesidad: Extraer el texto de un archivo PDF (una factura), el cual lo resolví utilizando pyPdf, sin embargo el texto texto resultante de la lectura, es una sola linea de texto de la cual debo extraer. El patrón de la información siempre es el mismo: COMMERCIAL INVOICESeller [Datos] Consignee [Datos] Notify Party [Datos] Departure Date: [datos] Delivery and Payment Term [Datos] Country of origin [Datos] Invoice No. & Date [Datos] PO no. & Date [Datos] Buyer Reference NO & Date [Datos] Buyer [Datos] Remarks [Datos] Other References [Datos ]Goods description Model code Quantity Unit priceAmount [descripcion] [Modelo] [Cantidad] [PrecioUnitario][Monto] Total: [Descripcion] [Cantidad] [Importe][Moneda][descripcion] [Modelo] [Cantidad] [PrecioUnitario][Monto] Total: [Descripcion] [Cantidad] [Importe][Moneda][descripcion] [Modelo] [Cantidad] [PrecioUnitario][Monto] Total: [Descripcion] [Cantidad] [Importe][Moneda] /////////END OF DATA////////////// Las que se encuentran en negritas son los tags que se repiten de forma fija. Sería de mucha ayuda si me pudieran indicar cuáles herramientas utilizar o algún método general para realizar este proceso. Gracias de antemano. by: ISC. Manuel Alejandro Estévez Fernández ------------------------------------------- Hola. No conozco pyPDF. Para analizar PDFs uso el programa pdftotext incluido en el paquete poppler-utils en linux. Creo que hay algo parecido también en Windows. La salida es un html en el que separa cada palabra con sus coordenadas indicando también los saltos de página. $ pdftotext -htmlmeta -bbox impreso.pdf impreso.html Y el documento generado tiene este aspecto: Sello registro SOLICITANTE DNI CIF Puede ser un poco pesado tener que tratar palabra a palabra pero en mi caso es porque los programas que pasan pdf a texto plano, en caso de texto en tablas pueden mezclar unos campos con otros. Con esta solución, no es difícil hacer algunas funciones que recojan el texto en una región determinada. Las tengo en python, si te interesa te las paso. From luis.iglesias en vigo.org Mon Jun 2 10:24:52 2014 From: luis.iglesias en vigo.org (Luis Iglesias) Date: Mon, 2 Jun 2014 10:24:52 +0200 (CEST) Subject: [Python-es] Analizar cadena y extraer valores In-Reply-To: <446580237.1465269.1401697006930.JavaMail.root@zimbra.ayto.vigo> Message-ID: <1219683063.1465319.1401697492490.JavaMail.root@zimbra.ayto.vigo> ----- Mensaje original ----- De: "Luis Iglesias" Para: "La lista de python en castellano" Enviados: Lunes, 2 de Junio 2014 10:16:46 Asunto: Re: [Python-es] Analizar cadena y extraer valores ----- Mensaje original ----- De: "Manuel A. Estevez Fernandez" Para: "La lista de python en castellano" Enviados: Jueves, 29 de Mayo 2014 19:03:47 Asunto: [Python-es] Analizar cadena y extraer valores Saludos a todos Tengo la siguiente necesidad: Extraer el texto de un archivo PDF (una factura), el cual lo resolví utilizando pyPdf, sin embargo el texto texto resultante de la lectura, es una sola linea de texto de la cual debo extraer. El patrón de la información siempre es el mismo: COMMERCIAL INVOICESeller [Datos] Consignee [Datos] Notify Party [Datos] Departure Date: [datos] Delivery and Payment Term [Datos] Country of origin [Datos] Invoice No. & Date [Datos] PO no. & Date [Datos] Buyer Reference NO & Date [Datos] Buyer [Datos] Remarks [Datos] Other References [Datos ]Goods description Model code Quantity Unit priceAmount [descripcion] [Modelo] [Cantidad] [PrecioUnitario][Monto] Total: [Descripcion] [Cantidad] [Importe][Moneda][descripcion] [Modelo] [Cantidad] [PrecioUnitario][Monto] Total: [Descripcion] [Cantidad] [Importe][Moneda][descripcion] [Modelo] [Cantidad] [PrecioUnitario][Monto] Total: [Descripcion] [Cantidad] [Importe][Moneda] /////////END OF DATA////////////// Las que se encuentran en negritas son los tags que se repiten de forma fija. Sería de mucha ayuda si me pudieran indicar cuáles herramientas utilizar o algún método general para realizar este proceso. Gracias de antemano. by: ISC. Manuel Alejandro Estévez Fernández ------------------------------------------- Hola. No conozco pyPDF. Para analizar PDFs uso el programa pdftotext incluido en el paquete poppler-utils en linux. Creo que hay algo parecido también en Windows. La salida es un html en el que separa cada palabra con sus coordenadas indicando también los saltos de página. $ pdftotext -htmlmeta -bbox impreso.pdf impreso.html Y el documento generado tiene este aspecto: Sello registro SOLICITANTE DNI CIF Puede ser un poco pesado tener que tratar palabra a palabra pero en mi caso es porque los programas que pasan pdf a texto plano, en caso de texto en tablas pueden mezclar unos campos con otros. Con esta solución, no es difícil hacer algunas funciones que recojan el texto en una región determinada. Las tengo en python, si te interesa te las paso. ----- Disculpas a la lista. Me olvidaba comentar en el mensaje anterior que para analizar el PDF y conocer las coordenadas en las que se indica la salida del programa pdftotext se puede abrir el pdf con GIMP y cambiar el sistema de coordenadas a "puntos" (por defecto aparece en "pixeles") From stvzito en gmail.com Mon Jun 2 17:50:02 2014 From: stvzito en gmail.com (Manuel A. Estevez Fernandez) Date: Mon, 2 Jun 2014 10:50:02 -0500 Subject: [Python-es] Analizar cadena y extraer valores In-Reply-To: <446580237.1465269.1401697006930.JavaMail.root@zimbra.ayto.vigo> References: <446580237.1465269.1401697006930.JavaMail.root@zimbra.ayto.vigo> Message-ID: Muchas gracias por tu aportación Luis, si me pudieras compartir tu código te lo agradecería mucho. Porque de momento estoy jugando todavía a prueba y error con la interpretación del texto extraído. Saludos. by: ISC. Manuel Alejandro Estévez Fernández El 2 de junio de 2014, 3:16, Luis Iglesias escribió: > ----- Mensaje original ----- > De: "Manuel A. Estevez Fernandez" > Para: "La lista de python en castellano" > Enviados: Jueves, 29 de Mayo 2014 19:03:47 > Asunto: [Python-es] Analizar cadena y extraer valores > > > > > Saludos a todos > > > Tengo la siguiente necesidad: > > > Extraer el texto de un archivo PDF (una factura), el cual lo resolví > utilizando pyPdf, sin embargo el texto texto resultante de la lectura, es > una sola linea de texto de la cual debo extraer. > El patrón de la información siempre es el mismo: > > > COMMERCIAL INVOICESeller [Datos] Consignee [Datos] Notify Party [Datos] > Departure Date: [datos] Delivery and Payment Term [Datos] Country of origin > [Datos] Invoice No. & Date [Datos] PO no. & Date [Datos] Buyer Reference NO > & Date [Datos] Buyer [Datos] Remarks [Datos] Other References [Datos ]Goods > description Model code Quantity Unit priceAmount [descripcion] [Modelo] > [Cantidad] [PrecioUnitario][Monto] Total: [Descripcion] [Cantidad] > [Importe][Moneda][descripcion] [Modelo] [Cantidad] [PrecioUnitario][Monto] > Total: [Descripcion] [Cantidad] [Importe][Moneda][descripcion] [Modelo] > [Cantidad] [PrecioUnitario][Monto] Total: [Descripcion] [Cantidad] > [Importe][Moneda] /////////END OF DATA////////////// > > > Las que se encuentran en negritas son los tags que se repiten de forma > fija. > > > Sería de mucha ayuda si me pudieran indicar cuáles herramientas utilizar o > algún método general para realizar este proceso. > > > Gracias de antemano. > > by: > > ISC. Manuel Alejandro Estévez Fernández > > ------------------------------------------- > Hola. > No conozco pyPDF. > Para analizar PDFs uso el programa pdftotext incluido en el paquete > poppler-utils en linux. Creo que hay algo parecido también en Windows. La > salida es un html en el que separa cada palabra con sus coordenadas > indicando también los saltos de página. > > $ pdftotext -htmlmeta -bbox impreso.pdf impreso.html > > Y el documento generado tiene este aspecto: > > http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> > > > > > > > > > yMax="37.320720">Sello > yMax="37.320720">registro > yMax="243.360000">SOLICITANTE > yMax="183.000820">DNI > yMax="183.000820">CIF > > > > > > Puede ser un poco pesado tener que tratar palabra a palabra pero en mi > caso es porque los programas que pasan pdf a texto plano, en caso de texto > en tablas pueden mezclar unos campos con otros. Con esta solución, no es > difícil hacer algunas funciones que recojan el texto en una región > determinada. Las tengo en python, si te interesa te las paso. > > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From marodal en gmail.com Tue Jun 3 11:22:50 2014 From: marodal en gmail.com (Miguel Angel Rodriguez) Date: Tue, 3 Jun 2014 11:22:50 +0200 Subject: [Python-es] Expresiones regulares Message-ID: Hola a todos, Estoy intentando parsear con Python una gran cadena que recibo en un software de comunicaciones que estoy programando. La cadena que yo recibo es la siguiente: value_str = {"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320","channels":[{"name":"PF","unit":"","meta":"PF","value":"1.000"},{"name":"P-WSpt","unit":"kW","meta":"P-WSpt","value":"935"}, {"name":"Vac","unit":"V","meta":"Vac","value":"217.5"},{"name":"Iac","unit":"A","meta":"Iac","value":"513.8"},{"name":"Pac","unit":"kW","meta":"Pac","value":"335.2"},{"name":"Qac","unit":"kV Ar","meta":"Qac","value":"-1.0"},{"name":"Sac","unit":"kVA","meta":"Sac","value":"335.1"},{"name":"Fac","unit":"Hz","meta":"Fac","value":"49.950"},{"name":"ErrNoFirst","unit":"","meta":"ErrNoFirst","value":"0"},{" name":"P-WModFailStt","unit":"","meta":"P-WModFailStt","value":"Off"},{"name":"P-WModStt","unit":"","meta":"P-WModStt","value":"Off"},{"name":"Dsc","unit":"","meta":"Dsc","value":"---"},{"name":"Firmware-9","unit":"","meta":"Firmware-9","value":" "},{"name":"Cntry","unit":"","meta":"Cntry","value":"DE1"} ,{"name":"Type","unit":"","meta":"Type","value":"SCG"},{"name":"Mode","unit":"","meta":"Mode","value":"Operation"},{"name":"Error","unit":"","meta":"Error","value":"---"}]}]},"version":"1.0" Yo solo quiero quedarme con los name y value existente. LA forma en la que lo estoy intentando es la siguiente: for channel_str in re.findall("\"name\":\"[A-Za-z0-9\-. ]+\",\"value\":\"[A-Za-z0-9\-. ]*\"",value_str): d_value = re.findall("[A-Za-z0-9.\-]+",channel_str) Pero de esta forma no entra en el for. ¿Alguien me puede ayudar? Gracias y un saludo -- Miguel Ángel Rodríguez de Alba 678304435 marodal en gmail.com ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From eventgrafic en gmail.com Tue Jun 3 11:41:21 2014 From: eventgrafic en gmail.com (Eduard Diaz) Date: Tue, 3 Jun 2014 11:41:21 +0200 Subject: [Python-es] Expresiones regulares In-Reply-To: References: Message-ID: Hola, Supongo que no quieres utilizar json [1], no? [1] https://docs.python.org/2/library/json.html From tres.14159 en gmail.com Tue Jun 3 11:42:07 2014 From: tres.14159 en gmail.com (Miguel de Dios Matias) Date: Tue, 3 Jun 2014 11:42:07 +0200 Subject: [Python-es] Expresiones regulares In-Reply-To: References: Message-ID: Y aunque sea menos optimo, usar JSON directamente y ya tienes la estructura de datos en Python como un hash para poder iterar con un "for". Saludos. 2014-06-03 11:22 GMT+02:00 Miguel Angel Rodriguez : > > Hola a todos, > > Estoy intentando parsear con Python una gran cadena que recibo en un > software de comunicaciones que estoy programando. > > La cadena que yo recibo es la siguiente: > > value_str = > {"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320","channels":[{"name":"PF","unit":"","meta":"PF","value":"1.000"},{"name":"P-WSpt","unit":"kW","meta":"P-WSpt","value":"935"}, > > {"name":"Vac","unit":"V","meta":"Vac","value":"217.5"},{"name":"Iac","unit":"A","meta":"Iac","value":"513.8"},{"name":"Pac","unit":"kW","meta":"Pac","value":"335.2"},{"name":"Qac","unit":"kV > > Ar","meta":"Qac","value":"-1.0"},{"name":"Sac","unit":"kVA","meta":"Sac","value":"335.1"},{"name":"Fac","unit":"Hz","meta":"Fac","value":"49.950"},{"name":"ErrNoFirst","unit":"","meta":"ErrNoFirst","value":"0"},{" > > name":"P-WModFailStt","unit":"","meta":"P-WModFailStt","value":"Off"},{"name":"P-WModStt","unit":"","meta":"P-WModStt","value":"Off"},{"name":"Dsc","unit":"","meta":"Dsc","value":"---"},{"name":"Firmware-9","unit":"","meta":"Firmware-9","value":" > "},{"name":"Cntry","unit":"","meta":"Cntry","value":"DE1"} > ,{"name":"Type","unit":"","meta":"Type","value":"SCG"},{"name":"Mode","unit":"","meta":"Mode","value":"Operation"},{"name":"Error","unit":"","meta":"Error","value":"---"}]}]},"version":"1.0" > > > Yo solo quiero quedarme con los name y value existente. > > LA forma en la que lo estoy intentando es la siguiente: > > for channel_str in re.findall("\"name\":\"[A-Za-z0-9\-. > ]+\",\"value\":\"[A-Za-z0-9\-. ]*\"",value_str): > d_value = re.findall("[A-Za-z0-9.\-]+",channel_str) > > Pero de esta forma no entra en el for. > > ¿Alguien me puede ayudar? > > Gracias y un saludo > > > > > > > -- > Miguel Ángel Rodríguez de Alba > 678304435 > marodal en gmail.com > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From marodal en gmail.com Tue Jun 3 11:48:10 2014 From: marodal en gmail.com (Miguel Angel Rodriguez) Date: Tue, 3 Jun 2014 11:48:10 +0200 Subject: [Python-es] Expresiones regulares In-Reply-To: References: Message-ID: Lo que quiero es parsear esa cadena que indiqué. No uso Json, es una cadena. Quiero quedarme con un array en el cada elemento del array contenga [name,valor del name, value, valor del value] Por favor, ¿puedes revisar la expresion regular que puse en mi primer correo para ver si es correcta? Muchisimas gracias. 2014-06-03 11:41 GMT+02:00 Eduard Diaz : > Hola, > > Supongo que no quieres utilizar json [1], no? > > [1] https://docs.python.org/2/library/json.html > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > -- Miguel Ángel Rodríguez de Alba 678304435 marodal en gmail.com ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From nadaird en gmail.com Tue Jun 3 11:52:31 2014 From: nadaird en gmail.com (Guillermo Vaya) Date: Tue, 3 Jun 2014 11:52:31 +0200 Subject: [Python-es] Expresiones regulares In-Reply-To: References: Message-ID: Si es un json (como indica el ejemplo que pones) ¿por qué no usas alguna de las librerias de json para que lo parsee? A partir de ahi solo tienes que recorrerlo como una estructura de datos y coger aquello que quieras sin los lios inherentes a hacer tus propias expresiones regulares. On Tue, Jun 3, 2014 at 11:22 AM, Miguel Angel Rodriguez wrote: > > Hola a todos, > > Estoy intentando parsear con Python una gran cadena que recibo en un > software de comunicaciones que estoy programando. > > La cadena que yo recibo es la siguiente: > > value_str = > {"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320","channels":[{"name":"PF","unit":"","meta":"PF","value":"1.000"},{"name":"P-WSpt","unit":"kW","meta":"P-WSpt","value":"935"}, > > {"name":"Vac","unit":"V","meta":"Vac","value":"217.5"},{"name":"Iac","unit":"A","meta":"Iac","value":"513.8"},{"name":"Pac","unit":"kW","meta":"Pac","value":"335.2"},{"name":"Qac","unit":"kV > > Ar","meta":"Qac","value":"-1.0"},{"name":"Sac","unit":"kVA","meta":"Sac","value":"335.1"},{"name":"Fac","unit":"Hz","meta":"Fac","value":"49.950"},{"name":"ErrNoFirst","unit":"","meta":"ErrNoFirst","value":"0"},{" > > name":"P-WModFailStt","unit":"","meta":"P-WModFailStt","value":"Off"},{"name":"P-WModStt","unit":"","meta":"P-WModStt","value":"Off"},{"name":"Dsc","unit":"","meta":"Dsc","value":"---"},{"name":"Firmware-9","unit":"","meta":"Firmware-9","value":" > "},{"name":"Cntry","unit":"","meta":"Cntry","value":"DE1"} > ,{"name":"Type","unit":"","meta":"Type","value":"SCG"},{"name":"Mode","unit":"","meta":"Mode","value":"Operation"},{"name":"Error","unit":"","meta":"Error","value":"---"}]}]},"version":"1.0" > > > Yo solo quiero quedarme con los name y value existente. > > LA forma en la que lo estoy intentando es la siguiente: > > for channel_str in re.findall("\"name\":\"[A-Za-z0-9\-. > ]+\",\"value\":\"[A-Za-z0-9\-. ]*\"",value_str): > d_value = re.findall("[A-Za-z0-9.\-]+",channel_str) > > Pero de esta forma no entra en el for. > > ¿Alguien me puede ayudar? > > Gracias y un saludo > > > > > > > -- > Miguel Ángel Rodríguez de Alba > 678304435 > marodal en gmail.com > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From nadaird en gmail.com Tue Jun 3 11:55:10 2014 From: nadaird en gmail.com (Guillermo Vaya) Date: Tue, 3 Jun 2014 11:55:10 +0200 Subject: [Python-es] Expresiones regulares In-Reply-To: References: Message-ID: como acabo de recibir el resto de correos que sugieren lo mismo que yo xD te recomiendo otra utilidad http://www.pythonregex.com/ con esa podras evaluar los resultados comodamente, ya que nadie excepto tu puede saber si la expresion es valida al no tener todos los posibles casos que te puedas encontrar. 2014-06-03 11:52 GMT+02:00 Guillermo Vaya : > Si es un json (como indica el ejemplo que pones) ¿por qué no usas alguna > de las librerias de json para que lo parsee? > > A partir de ahi solo tienes que recorrerlo como una estructura de datos y > coger aquello que quieras sin los lios inherentes a hacer tus propias > expresiones regulares. > > > On Tue, Jun 3, 2014 at 11:22 AM, Miguel Angel Rodriguez > wrote: > >> >> Hola a todos, >> >> Estoy intentando parsear con Python una gran cadena que recibo en un >> software de comunicaciones que estoy programando. >> >> La cadena que yo recibo es la siguiente: >> >> value_str = >> {"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320","channels":[{"name":"PF","unit":"","meta":"PF","value":"1.000"},{"name":"P-WSpt","unit":"kW","meta":"P-WSpt","value":"935"}, >> >> {"name":"Vac","unit":"V","meta":"Vac","value":"217.5"},{"name":"Iac","unit":"A","meta":"Iac","value":"513.8"},{"name":"Pac","unit":"kW","meta":"Pac","value":"335.2"},{"name":"Qac","unit":"kV >> >> Ar","meta":"Qac","value":"-1.0"},{"name":"Sac","unit":"kVA","meta":"Sac","value":"335.1"},{"name":"Fac","unit":"Hz","meta":"Fac","value":"49.950"},{"name":"ErrNoFirst","unit":"","meta":"ErrNoFirst","value":"0"},{" >> >> name":"P-WModFailStt","unit":"","meta":"P-WModFailStt","value":"Off"},{"name":"P-WModStt","unit":"","meta":"P-WModStt","value":"Off"},{"name":"Dsc","unit":"","meta":"Dsc","value":"---"},{"name":"Firmware-9","unit":"","meta":"Firmware-9","value":" >> "},{"name":"Cntry","unit":"","meta":"Cntry","value":"DE1"} >> ,{"name":"Type","unit":"","meta":"Type","value":"SCG"},{"name":"Mode","unit":"","meta":"Mode","value":"Operation"},{"name":"Error","unit":"","meta":"Error","value":"---"}]}]},"version":"1.0" >> >> >> Yo solo quiero quedarme con los name y value existente. >> >> LA forma en la que lo estoy intentando es la siguiente: >> >> for channel_str in re.findall("\"name\":\"[A-Za-z0-9\-. >> ]+\",\"value\":\"[A-Za-z0-9\-. ]*\"",value_str): >> d_value = re.findall("[A-Za-z0-9.\-]+",channel_str) >> >> Pero de esta forma no entra en el for. >> >> ¿Alguien me puede ayudar? >> >> Gracias y un saludo >> >> >> >> >> >> >> -- >> Miguel Ángel Rodríguez de Alba >> 678304435 >> marodal en gmail.com >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From marodal en gmail.com Tue Jun 3 11:56:20 2014 From: marodal en gmail.com (Miguel Angel Rodriguez) Date: Tue, 3 Jun 2014 11:56:20 +0200 Subject: [Python-es] Expresiones regulares In-Reply-To: References: Message-ID: En principio necesito hacerlo con expresiones regulares. ¿Lo veis muy complicado? ¿No creeis que casi está con la expresion regular que indiqué en mi primer correo? El 3 de junio de 2014, 11:52, Guillermo Vaya escribió: > Si es un json (como indica el ejemplo que pones) ¿por qué no usas alguna > de las librerias de json para que lo parsee? > > A partir de ahi solo tienes que recorrerlo como una estructura de datos y > coger aquello que quieras sin los lios inherentes a hacer tus propias > expresiones regulares. > > > On Tue, Jun 3, 2014 at 11:22 AM, Miguel Angel Rodriguez > wrote: > >> >> Hola a todos, >> >> Estoy intentando parsear con Python una gran cadena que recibo en un >> software de comunicaciones que estoy programando. >> >> La cadena que yo recibo es la siguiente: >> >> value_str = >> {"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320","channels":[{"name":"PF","unit":"","meta":"PF","value":"1.000"},{"name":"P-WSpt","unit":"kW","meta":"P-WSpt","value":"935"}, >> >> {"name":"Vac","unit":"V","meta":"Vac","value":"217.5"},{"name":"Iac","unit":"A","meta":"Iac","value":"513.8"},{"name":"Pac","unit":"kW","meta":"Pac","value":"335.2"},{"name":"Qac","unit":"kV >> >> Ar","meta":"Qac","value":"-1.0"},{"name":"Sac","unit":"kVA","meta":"Sac","value":"335.1"},{"name":"Fac","unit":"Hz","meta":"Fac","value":"49.950"},{"name":"ErrNoFirst","unit":"","meta":"ErrNoFirst","value":"0"},{" >> >> name":"P-WModFailStt","unit":"","meta":"P-WModFailStt","value":"Off"},{"name":"P-WModStt","unit":"","meta":"P-WModStt","value":"Off"},{"name":"Dsc","unit":"","meta":"Dsc","value":"---"},{"name":"Firmware-9","unit":"","meta":"Firmware-9","value":" >> "},{"name":"Cntry","unit":"","meta":"Cntry","value":"DE1"} >> ,{"name":"Type","unit":"","meta":"Type","value":"SCG"},{"name":"Mode","unit":"","meta":"Mode","value":"Operation"},{"name":"Error","unit":"","meta":"Error","value":"---"}]}]},"version":"1.0" >> >> >> Yo solo quiero quedarme con los name y value existente. >> >> LA forma en la que lo estoy intentando es la siguiente: >> >> for channel_str in re.findall("\"name\":\"[A-Za-z0-9\-. >> ]+\",\"value\":\"[A-Za-z0-9\-. ]*\"",value_str): >> d_value = re.findall("[A-Za-z0-9.\-]+",channel_str) >> >> Pero de esta forma no entra en el for. >> >> ¿Alguien me puede ayudar? >> >> Gracias y un saludo >> >> >> >> >> >> >> -- >> Miguel Ángel Rodríguez de Alba >> 678304435 >> marodal en gmail.com >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > -- Miguel Ángel Rodríguez de Alba 678304435 marodal en gmail.com ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From aymg01 en gmail.com Tue Jun 3 12:28:34 2014 From: aymg01 en gmail.com (Andres Marin) Date: Tue, 3 Jun 2014 05:28:34 -0500 Subject: [Python-es] Expresiones regulares In-Reply-To: References: Message-ID: Hola, Puedes hacer primero un split por la cadena "},{" eso te devolverá una lista iterable a la que puede, linea por linea, ir buscando la expresión \ "name\":"([\z\d]+)\".*\"value\"\:\"([\z\d]+)". Quizas debas hacer algunos ajustes, pero creo que te funcionara. Por otra parte, quien te manda los datos, aparentemente es un sistema "juicioso" que manda los datos en formato JSON, puedes hacer una regex que te valide eso y de paso lo elimine: al principio: {"format":"JSON","result": y al final: ,"version":"1.0" el resultado aparente es una cadena con notacion de JSON la cual con la libreria de python la puedes parsear sin problemas y obtener todo lo que necesitas, sin que uses la regex exacta. Saludos y espero te sirva. On Tue, Jun 3, 2014 at 4:22 AM, Miguel Angel Rodriguez wrote: > > Hola a todos, > > Estoy intentando parsear con Python una gran cadena que recibo en un > software de comunicaciones que estoy programando. > > La cadena que yo recibo es la siguiente: > > value_str = > {"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320","channels":[{"name":"PF","unit":"","meta":"PF","value":"1.000"},{"name":"P-WSpt","unit":"kW","meta":"P-WSpt","value":"935"}, > > {"name":"Vac","unit":"V","meta":"Vac","value":"217.5"},{"name":"Iac","unit":"A","meta":"Iac","value":"513.8"},{"name":"Pac","unit":"kW","meta":"Pac","value":"335.2"},{"name":"Qac","unit":"kV > > Ar","meta":"Qac","value":"-1.0"},{"name":"Sac","unit":"kVA","meta":"Sac","value":"335.1"},{"name":"Fac","unit":"Hz","meta":"Fac","value":"49.950"},{"name":"ErrNoFirst","unit":"","meta":"ErrNoFirst","value":"0"},{" > > name":"P-WModFailStt","unit":"","meta":"P-WModFailStt","value":"Off"},{"name":"P-WModStt","unit":"","meta":"P-WModStt","value":"Off"},{"name":"Dsc","unit":"","meta":"Dsc","value":"---"},{"name":"Firmware-9","unit":"","meta":"Firmware-9","value":" > "},{"name":"Cntry","unit":"","meta":"Cntry","value":"DE1"} > ,{"name":"Type","unit":"","meta":"Type","value":"SCG"},{"name":"Mode","unit":"","meta":"Mode","value":"Operation"},{"name":"Error","unit":"","meta":"Error","value":"---"}]}]},"version":"1.0" > > > Yo solo quiero quedarme con los name y value existente. > > LA forma en la que lo estoy intentando es la siguiente: > > for channel_str in re.findall("\"name\":\"[A-Za-z0-9\-. > ]+\",\"value\":\"[A-Za-z0-9\-. ]*\"",value_str): > d_value = re.findall("[A-Za-z0-9.\-]+",channel_str) > > Pero de esta forma no entra en el for. > > ¿Alguien me puede ayudar? > > Gracias y un saludo > > > > > > > -- > Miguel Ángel Rodríguez de Alba > 678304435 > marodal en gmail.com > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > -- Andres Marin Gomez ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From pych3m4 en gmail.com Tue Jun 3 12:38:43 2014 From: pych3m4 en gmail.com (Chema Cortes) Date: Tue, 3 Jun 2014 12:38:43 +0200 Subject: [Python-es] Expresiones regulares In-Reply-To: References: Message-ID: El 3 de junio de 2014, 11:56, Miguel Angel Rodriguez escribió: > En principio necesito hacerlo con expresiones regulares. ¿Lo veis muy > complicado? > > No es que sea complicado, sólo buscamos cómo trabajar menos, como los buenos informáticos. > ¿No creeis que casi está con la expresion regular que indiqué en mi primer > correo? > > Lo que veo de la expresión es que buscas "name" seguido inmediatamente de "value", cosa que no ocurre. Prueba a separar los campos con algo así: '''"name":"(?P[\w\d\-. ]+)".*?,"value":"(?P[\w\d\-. ]*)"''' > > > > El 3 de junio de 2014, 11:52, Guillermo Vaya escribió: > > Si es un json (como indica el ejemplo que pones) ¿por qué no usas alguna >> de las librerias de json para que lo parsee? >> >> A partir de ahi solo tienes que recorrerlo como una estructura de datos y >> coger aquello que quieras sin los lios inherentes a hacer tus propias >> expresiones regulares. >> >> >> On Tue, Jun 3, 2014 at 11:22 AM, Miguel Angel Rodriguez < >> marodal en gmail.com> wrote: >> >>> >>> Hola a todos, >>> >>> Estoy intentando parsear con Python una gran cadena que recibo en un >>> software de comunicaciones que estoy programando. >>> >>> La cadena que yo recibo es la siguiente: >>> >>> value_str = >>> {"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320","channels":[{"name":"PF","unit":"","meta":"PF","value":"1.000"},{"name":"P-WSpt","unit":"kW","meta":"P-WSpt","value":"935"}, >>> >>> {"name":"Vac","unit":"V","meta":"Vac","value":"217.5"},{"name":"Iac","unit":"A","meta":"Iac","value":"513.8"},{"name":"Pac","unit":"kW","meta":"Pac","value":"335.2"},{"name":"Qac","unit":"kV >>> >>> Ar","meta":"Qac","value":"-1.0"},{"name":"Sac","unit":"kVA","meta":"Sac","value":"335.1"},{"name":"Fac","unit":"Hz","meta":"Fac","value":"49.950"},{"name":"ErrNoFirst","unit":"","meta":"ErrNoFirst","value":"0"},{" >>> >>> name":"P-WModFailStt","unit":"","meta":"P-WModFailStt","value":"Off"},{"name":"P-WModStt","unit":"","meta":"P-WModStt","value":"Off"},{"name":"Dsc","unit":"","meta":"Dsc","value":"---"},{"name":"Firmware-9","unit":"","meta":"Firmware-9","value":" >>> "},{"name":"Cntry","unit":"","meta":"Cntry","value":"DE1"} >>> ,{"name":"Type","unit":"","meta":"Type","value":"SCG"},{"name":"Mode","unit":"","meta":"Mode","value":"Operation"},{"name":"Error","unit":"","meta":"Error","value":"---"}]}]},"version":"1.0" >>> >>> >>> Yo solo quiero quedarme con los name y value existente. >>> >>> LA forma en la que lo estoy intentando es la siguiente: >>> >>> for channel_str in re.findall("\"name\":\"[A-Za-z0-9\-. >>> ]+\",\"value\":\"[A-Za-z0-9\-. ]*\"",value_str): >>> d_value = re.findall("[A-Za-z0-9.\-]+",channel_str) >>> >>> Pero de esta forma no entra en el for. >>> >>> ¿Alguien me puede ayudar? >>> >>> Gracias y un saludo >>> >>> >>> >>> >>> >>> >>> -- >>> Miguel Ángel Rodríguez de Alba >>> 678304435 >>> marodal en gmail.com >>> >>> _______________________________________________ >>> Python-es mailing list >>> Python-es en python.org >>> https://mail.python.org/mailman/listinfo/python-es >>> FAQ: http://python-es-faq.wikidot.com/ >>> >>> >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > > > -- > Miguel Ángel Rodríguez de Alba > 678304435 > marodal en gmail.com > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > -- Hyperreals *R "Quarks, bits y otras criaturas infinitesimales": http://ch3m4.org/blog Buscador Python Hispano: http://ch3m4.org/python-es ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From luis.iglesias en vigo.org Tue Jun 3 12:50:57 2014 From: luis.iglesias en vigo.org (Luis Iglesias) Date: Tue, 3 Jun 2014 12:50:57 +0200 (CEST) Subject: [Python-es] Analizar cadena y extraer valores In-Reply-To: Message-ID: <1630491508.1473617.1401792657214.JavaMail.root@zimbra.ayto.vigo> ----- Mensaje original ----- De: "Manuel A. Estevez Fernandez" Para: "La lista de python en castellano" Enviados: Lunes, 2 de Junio 2014 17:50:02 Asunto: Re: [Python-es] Analizar cadena y extraer valores Muchas gracias por tu aportación Luis, si me pudieras compartir tu código te lo agradecería mucho. Porque de momento estoy jugando todavía a prueba y error con la interpretación del texto extraído. ------------ No sé si la lista admite adjuntos. Envío el módulo principal y un ejemplo de uso. Ten en cuenta que este módulo trabaja con el fichero html que se genera con pdftotext a partir del pdf. Yo lo estoy empleando para leer facturas y generar un json con los datos El código de uso sería algo así: from ocr.utilspdf import PdfTextInfo from extra import debug, fechas import json import os.path hInfo = PdfTextInfo(ficheroHtml) self.json = {} j = self.json j['002.pdf.pagDesde'] = 1 j['002.pdf.pagHasta'] = hInfo.totalPaginas j['010.factura'] = hInfo.getTextoEnXY(1, 70.8, 216.352) j['021.fIniFact'] = fechas.YMD(fechas.dd_mm_aa2date(hInfo.getTextoEnXY(1, 70.8, 317.632))) p = hInfo.getNumpag(70.8, 126.416, 'ENDEREZO') j['040.direccion'] = hInfo.getTextoEnRegion(p, (70.8, 134.032, 300, 142.888)) La clase PdfTextInfo está definida en el módulo utilspdf que adjunto. El método getTextoEnXY devuelve la palabra que tiene exactamente esas coordenadas en la esquina superior izquierda. El método getTextoEnRegion recoge el texto que se encuentra en las esquinas que se le pasen. Hay algunos métodos que quizá no te hagan falta, como obtener el total de páginas o preguntar en qué página se encuentra tal texto en tal posición. Si tienes alguna pregunta no tendré problema en contestar: por aquí (si la lista está de acuerdo) o por el correo privado. ------------ próxima parte ------------ A non-text attachment was scrubbed... Name: utilspdf.py Type: text/x-python Size: 2410 bytes Desc: no disponible URL: From marodal en gmail.com Tue Jun 3 13:34:02 2014 From: marodal en gmail.com (Miguel Angel Rodriguez) Date: Tue, 3 Jun 2014 13:34:02 +0200 Subject: [Python-es] Expresiones regulares In-Reply-To: References: Message-ID: Muchisimas gracias por vuestras aportaciones. Al final lo he solucionado un poco a la fuerza bruta. for channel_str in re.findall("\"name\":\"[A-Za-z0-9\-. ]+\",\"unit\":\"[A-Za-z0-9\-. ]+\",\"meta\":\"[A-Za-z0-9\-. ]+\",\"value\":\"[A-Za-z0-9\-. ]*\"",value_str): d_value = re.findall("[A-Za-z0-9.\-]+",channel_str) ....... En cada iteración, en d_value tengo un array de esta forma: [name,(valor del name),unit,(valor del unit),meta,(valor del meta),value,(valor del value)]. Solo tengo que acceder a esta array con los indices que me interesen para obtener lo que deseo. Se que no es la forma más optima, pero funciona perfectamente. Muchisimas gracias por todas vuestras aportaciones, sin duda este es el mejor grupo de programadores que existe. Saludos El 3 de junio de 2014, 12:38, Chema Cortes escribió: > El 3 de junio de 2014, 11:56, Miguel Angel Rodriguez > escribió: > > En principio necesito hacerlo con expresiones regulares. ¿Lo veis muy >> complicado? >> >> No es que sea complicado, sólo buscamos cómo trabajar menos, como los > buenos informáticos. > > >> ¿No creeis que casi está con la expresion regular que indiqué en mi >> primer correo? >> >> > Lo que veo de la expresión es que buscas "name" seguido inmediatamente de > "value", cosa que no ocurre. > > Prueba a separar los campos con algo así: '''"name":"(?P[\w\d\-. > ]+)".*?,"value":"(?P[\w\d\-. ]*)"''' > > > >> >> >> >> El 3 de junio de 2014, 11:52, Guillermo Vaya >> escribió: >> >> Si es un json (como indica el ejemplo que pones) ¿por qué no usas alguna >>> de las librerias de json para que lo parsee? >>> >>> A partir de ahi solo tienes que recorrerlo como una estructura de datos >>> y coger aquello que quieras sin los lios inherentes a hacer tus propias >>> expresiones regulares. >>> >>> >>> On Tue, Jun 3, 2014 at 11:22 AM, Miguel Angel Rodriguez < >>> marodal en gmail.com> wrote: >>> >>>> >>>> Hola a todos, >>>> >>>> Estoy intentando parsear con Python una gran cadena que recibo en un >>>> software de comunicaciones que estoy programando. >>>> >>>> La cadena que yo recibo es la siguiente: >>>> >>>> value_str = >>>> {"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320","channels":[{"name":"PF","unit":"","meta":"PF","value":"1.000"},{"name":"P-WSpt","unit":"kW","meta":"P-WSpt","value":"935"}, >>>> >>>> {"name":"Vac","unit":"V","meta":"Vac","value":"217.5"},{"name":"Iac","unit":"A","meta":"Iac","value":"513.8"},{"name":"Pac","unit":"kW","meta":"Pac","value":"335.2"},{"name":"Qac","unit":"kV >>>> >>>> Ar","meta":"Qac","value":"-1.0"},{"name":"Sac","unit":"kVA","meta":"Sac","value":"335.1"},{"name":"Fac","unit":"Hz","meta":"Fac","value":"49.950"},{"name":"ErrNoFirst","unit":"","meta":"ErrNoFirst","value":"0"},{" >>>> >>>> name":"P-WModFailStt","unit":"","meta":"P-WModFailStt","value":"Off"},{"name":"P-WModStt","unit":"","meta":"P-WModStt","value":"Off"},{"name":"Dsc","unit":"","meta":"Dsc","value":"---"},{"name":"Firmware-9","unit":"","meta":"Firmware-9","value":" >>>> "},{"name":"Cntry","unit":"","meta":"Cntry","value":"DE1"} >>>> ,{"name":"Type","unit":"","meta":"Type","value":"SCG"},{"name":"Mode","unit":"","meta":"Mode","value":"Operation"},{"name":"Error","unit":"","meta":"Error","value":"---"}]}]},"version":"1.0" >>>> >>>> >>>> Yo solo quiero quedarme con los name y value existente. >>>> >>>> LA forma en la que lo estoy intentando es la siguiente: >>>> >>>> for channel_str in re.findall("\"name\":\"[A-Za-z0-9\-. >>>> ]+\",\"value\":\"[A-Za-z0-9\-. ]*\"",value_str): >>>> d_value = re.findall("[A-Za-z0-9.\-]+",channel_str) >>>> >>>> Pero de esta forma no entra en el for. >>>> >>>> ¿Alguien me puede ayudar? >>>> >>>> Gracias y un saludo >>>> >>>> >>>> >>>> >>>> >>>> >>>> -- >>>> Miguel Ángel Rodríguez de Alba >>>> 678304435 >>>> marodal en gmail.com >>>> >>>> _______________________________________________ >>>> Python-es mailing list >>>> Python-es en python.org >>>> https://mail.python.org/mailman/listinfo/python-es >>>> FAQ: http://python-es-faq.wikidot.com/ >>>> >>>> >>> >>> _______________________________________________ >>> Python-es mailing list >>> Python-es en python.org >>> https://mail.python.org/mailman/listinfo/python-es >>> FAQ: http://python-es-faq.wikidot.com/ >>> >>> >> >> >> -- >> Miguel Ángel Rodríguez de Alba >> 678304435 >> marodal en gmail.com >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > > > -- > Hyperreals *R "Quarks, bits y otras criaturas infinitesimales": > http://ch3m4.org/blog > Buscador Python Hispano: http://ch3m4.org/python-es > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > -- Miguel Ángel Rodríguez de Alba 678304435 marodal en gmail.com ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From stvzito en gmail.com Tue Jun 3 17:07:41 2014 From: stvzito en gmail.com (Manuel A. Estevez Fernandez) Date: Tue, 3 Jun 2014 10:07:41 -0500 Subject: [Python-es] Analizar cadena y extraer valores In-Reply-To: <1630491508.1473617.1401792657214.JavaMail.root@zimbra.ayto.vigo> References: <1630491508.1473617.1401792657214.JavaMail.root@zimbra.ayto.vigo> Message-ID: Muchas gracias, los voy a revisar. Saludos. by: ISC. Manuel Alejandro Estévez Fernández El 3 de junio de 2014, 5:50, Luis Iglesias escribió: > > ----- Mensaje original ----- > De: "Manuel A. Estevez Fernandez" > Para: "La lista de python en castellano" > Enviados: Lunes, 2 de Junio 2014 17:50:02 > Asunto: Re: [Python-es] Analizar cadena y extraer valores > > Muchas gracias por tu aportación Luis, si me pudieras compartir tu código > te lo agradecería mucho. Porque de momento estoy jugando todavía a prueba y > error con la interpretación del texto extraído. > > ------------ > No sé si la lista admite adjuntos. > Envío el módulo principal y un ejemplo de uso. Ten en cuenta que este > módulo trabaja con el fichero html que se genera con pdftotext a partir del > pdf. > Yo lo estoy empleando para leer facturas y generar un json con los datos > > El código de uso sería algo así: > > from ocr.utilspdf import PdfTextInfo > from extra import debug, fechas > import json > import os.path > > hInfo = PdfTextInfo(ficheroHtml) > self.json = {} > j = self.json > j['002.pdf.pagDesde'] = 1 > j['002.pdf.pagHasta'] = hInfo.totalPaginas > j['010.factura'] = hInfo.getTextoEnXY(1, 70.8, 216.352) > j['021.fIniFact'] = > fechas.YMD(fechas.dd_mm_aa2date(hInfo.getTextoEnXY(1, 70.8, 317.632))) > p = hInfo.getNumpag(70.8, 126.416, 'ENDEREZO') > j['040.direccion'] = hInfo.getTextoEnRegion(p, (70.8, 134.032, > 300, 142.888)) > > La clase PdfTextInfo está definida en el módulo utilspdf que adjunto. > El método getTextoEnXY devuelve la palabra que tiene exactamente esas > coordenadas en la esquina superior izquierda. > El método getTextoEnRegion recoge el texto que se encuentra en las > esquinas que se le pasen. > Hay algunos métodos que quizá no te hagan falta, como obtener el total de > páginas o preguntar en qué página se encuentra tal texto en tal posición. > > Si tienes alguna pregunta no tendré problema en contestar: por aquí (si la > lista está de acuerdo) o por el correo privado. > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From jbc.develop en gmail.com Tue Jun 3 17:08:59 2014 From: jbc.develop en gmail.com (Juan BC) Date: Tue, 3 Jun 2014 12:08:59 -0300 Subject: [Python-es] Analizar cadena y extraer valores In-Reply-To: References: <1630491508.1473617.1401792657214.JavaMail.root@zimbra.ayto.vigo> Message-ID: pdfminner El día 3 de junio de 2014, 12:07, Manuel A. Estevez Fernandez escribió: > Muchas gracias, los voy a revisar. > > Saludos. > > by: > > ISC. Manuel Alejandro Estévez Fernández > > > > El 3 de junio de 2014, 5:50, Luis Iglesias > escribió: >> >> >> ----- Mensaje original ----- >> De: "Manuel A. Estevez Fernandez" >> Para: "La lista de python en castellano" >> Enviados: Lunes, 2 de Junio 2014 17:50:02 >> Asunto: Re: [Python-es] Analizar cadena y extraer valores >> >> Muchas gracias por tu aportación Luis, si me pudieras compartir tu código >> te lo agradecería mucho. Porque de momento estoy jugando todavía a prueba y >> error con la interpretación del texto extraído. >> >> ------------ >> No sé si la lista admite adjuntos. >> Envío el módulo principal y un ejemplo de uso. Ten en cuenta que este >> módulo trabaja con el fichero html que se genera con pdftotext a partir del >> pdf. >> Yo lo estoy empleando para leer facturas y generar un json con los datos >> >> El código de uso sería algo así: >> >> from ocr.utilspdf import PdfTextInfo >> from extra import debug, fechas >> import json >> import os.path >> >> hInfo = PdfTextInfo(ficheroHtml) >> self.json = {} >> j = self.json >> j['002.pdf.pagDesde'] = 1 >> j['002.pdf.pagHasta'] = hInfo.totalPaginas >> j['010.factura'] = hInfo.getTextoEnXY(1, 70.8, 216.352) >> j['021.fIniFact'] = >> fechas.YMD(fechas.dd_mm_aa2date(hInfo.getTextoEnXY(1, 70.8, 317.632))) >> p = hInfo.getNumpag(70.8, 126.416, 'ENDEREZO') >> j['040.direccion'] = hInfo.getTextoEnRegion(p, (70.8, 134.032, >> 300, 142.888)) >> >> La clase PdfTextInfo está definida en el módulo utilspdf que adjunto. >> El método getTextoEnXY devuelve la palabra que tiene exactamente esas >> coordenadas en la esquina superior izquierda. >> El método getTextoEnRegion recoge el texto que se encuentra en las >> esquinas que se le pasen. >> Hay algunos métodos que quizá no te hagan falta, como obtener el total de >> páginas o preguntar en qué página se encuentra tal texto en tal posición. >> >> Si tienes alguna pregunta no tendré problema en contestar: por aquí (si la >> lista está de acuerdo) o por el correo privado. >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > -- Juan B Cabral From jozemi en gmail.com Tue Jun 3 11:41:36 2014 From: jozemi en gmail.com (=?UTF-8?B?Sm9zw6kgTWlndWVsIFAu?=) Date: Tue, 3 Jun 2014 11:41:36 +0200 Subject: [Python-es] Expresiones regulares In-Reply-To: References: Message-ID: Hola, ¿Es siempre un json lo que recibes? Lo digo porque quizás puedes intentar decodificarlo como json ¿no? https://docs.python.org/2/library/json.html He comprobado la sintaxis de la cadena que pasas y es un formato válido de json: { "format":"JSON", "result":{ "devices":[ { "key":"SCGDE1BA:180340320", "channels":[ { "name":"PF", "unit":"", "meta":"PF", "value":"1.000" }, { "name":"P-WSpt", "unit":"kW", "meta":"P-WSpt", "value":"935" }, { "name":"Vac", "unit":"V", "meta":"Vac", "value":"217.5" }, { "name":"Iac", "unit":"A", "meta":"Iac", "value":"513.8" }, { "name":"Pac", "unit":"kW", "meta":"Pac", "value":"335.2" }, { "name":"Qac", "unit":"kV Ar", "meta":"Qac", "value":"-1.0" }, { "name":"Sac", "unit":"kVA", "meta":"Sac", "value":"335.1" }, { "name":"Fac", "unit":"Hz", "meta":"Fac", "value":"49.950" }, { "name":"ErrNoFirst", "unit":"", "meta":"ErrNoFirst", "value":"0" }, { " name":"P-WModFailStt", "unit":"", "meta":"P-WModFailStt", "value":"Off" }, { "name":"P-WModStt", "unit":"", "meta":"P-WModStt", "value":"Off" }, { "name":"Dsc", "unit":"", "meta":"Dsc", "value":"---" }, { "name":"Firmware-9", "unit":"", "meta":"Firmware-9", "value":" " }, { "name":"Cntry", "unit":"", "meta":"Cntry", "value":"DE1" }, { "name":"Type", "unit":"", "meta":"Type", "value":"SCG" }, { "name":"Mode", "unit":"", "meta":"Mode", "value":"Operation" }, { "name":"Error", "unit":"", "meta":"Error", "value":"---" } ] } ] }, "version":"1.0" } A no ser que en otras ocasiones recibas otra cosas, lo que yo te recomendaría es que lo decodifiques y lo uses cono clave, valor. Espero que te ayude, un saludo! Un saludo -- *José Miguel Pérez Álvarez*, @jozemi Linkedin: http://es.linkedin.com/in/jozemi jozemi en gmail.com On Tue, Jun 3, 2014 at 11:22 AM, Miguel Angel Rodriguez wrote: > > Hola a todos, > > Estoy intentando parsear con Python una gran cadena que recibo en un > software de comunicaciones que estoy programando. > > La cadena que yo recibo es la siguiente: > > value_str = > {"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320","channels":[{"name":"PF","unit":"","meta":"PF","value":"1.000"},{"name":"P-WSpt","unit":"kW","meta":"P-WSpt","value":"935"}, > > {"name":"Vac","unit":"V","meta":"Vac","value":"217.5"},{"name":"Iac","unit":"A","meta":"Iac","value":"513.8"},{"name":"Pac","unit":"kW","meta":"Pac","value":"335.2"},{"name":"Qac","unit":"kV > > Ar","meta":"Qac","value":"-1.0"},{"name":"Sac","unit":"kVA","meta":"Sac","value":"335.1"},{"name":"Fac","unit":"Hz","meta":"Fac","value":"49.950"},{"name":"ErrNoFirst","unit":"","meta":"ErrNoFirst","value":"0"},{" > > name":"P-WModFailStt","unit":"","meta":"P-WModFailStt","value":"Off"},{"name":"P-WModStt","unit":"","meta":"P-WModStt","value":"Off"},{"name":"Dsc","unit":"","meta":"Dsc","value":"---"},{"name":"Firmware-9","unit":"","meta":"Firmware-9","value":" > "},{"name":"Cntry","unit":"","meta":"Cntry","value":"DE1"} > ,{"name":"Type","unit":"","meta":"Type","value":"SCG"},{"name":"Mode","unit":"","meta":"Mode","value":"Operation"},{"name":"Error","unit":"","meta":"Error","value":"---"}]}]},"version":"1.0" > > > Yo solo quiero quedarme con los name y value existente. > > LA forma en la que lo estoy intentando es la siguiente: > > for channel_str in re.findall("\"name\":\"[A-Za-z0-9\-. > ]+\",\"value\":\"[A-Za-z0-9\-. ]*\"",value_str): > d_value = re.findall("[A-Za-z0-9.\-]+",channel_str) > > Pero de esta forma no entra en el for. > > ¿Alguien me puede ayudar? > > Gracias y un saludo > > > > > > > -- > Miguel Ángel Rodríguez de Alba > 678304435 > marodal en gmail.com > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From gustavo en nodo50.org Tue Jun 3 13:03:03 2014 From: gustavo en nodo50.org (gustavo en nodo50.org) Date: Tue, 3 Jun 2014 13:03:03 +0200 Subject: [Python-es] Expresiones regulares In-Reply-To: References: Message-ID: <704038e702e0465d039664827a21bc9b.squirrel@correo.nodo50.org> ejecutando esto: #!/usr/bin/python3 import re value_str = '{"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320","channels":[{"name":"PF","unit":"","meta":"PF","value":"1.000"},{"name":"P-WSpt","unit":"kW","meta":"P-WSpt","value":"935"},{"name":"Vac","unit":"V","meta":"Vac","value":"217.5"},{"name":"Iac","unit":"A","meta":"Iac","value":"513.8"},{"name":"Pac","unit":"kW","meta":"Pac","value":"335.2"},{"name":"Qac","unit":"kVAr","meta":"Qac","value":"-1.0"},{"name":"Sac","unit":"kVA","meta":"Sac","value":"335.1"},{"name":"Fac","unit":"Hz","meta":"Fac","value":"49.950"},{"name":"ErrNoFirst","unit":"","meta":"ErrNoFirst","value":"0"},{"name":"P-WModFailStt","unit":"","meta":"P-WModFailStt","value":"Off"},{"name":"P-WModStt","unit":"","meta":"P-WModStt","value":"Off"},{"name":"Dsc","unit":"","meta":"Dsc","value":"---"},{"name":"Firmware-9","unit":"","meta":"Firmware-9","value":""},{"name":"Cntry","unit":"","meta":"Cntry","value":"DE1"} ,{"name":"Type","unit":"","meta":"Type","value":"SCG"},{"name":"Mode","unit":"","meta":"Mode","value":"Operation"},{"name":"Error","unit":"","meta":"Error","value":"---"}]}]},"version":"1.0"' for channel_str in re.findall("\"name\":\"[A-Za-z0-9\-.]+\"",value_str): for channel_str1 in re.findall("\"value\":\"[A-Za-z0-9\-.]+\"",value_str): print ( channel_str + ";" + channel_str1 ) me da esto: "name":"Cntry";"value":"335.2" "name":"Cntry";"value":"-1.0" "name":"Cntry";"value":"335.1" "name":"Cntry";"value":"49.950" "name":"Cntry";"value":"0" "name":"Cntry";"value":"Off" "name":"Cntry";"value":"Off" "name":"Cntry";"value":"---" "name":"Cntry";"value":"DE1" "name":"Cntry";"value":"SCG" "name":"Cntry";"value":"Operation" "name":"Cntry";"value":"---" "name":"Type";"value":"1.000" "name":"Type";"value":"935" "name":"Type";"value":"217.5" "name":"Type";"value":"513.8" "name":"Type";"value":"335.2" "name":"Type";"value":"-1.0" "name":"Type";"value":"335.1" "name":"Type";"value":"49.950" te vale? > Hola a todos, > > Estoy intentando parsear con Python una gran cadena que recibo en un > software de comunicaciones que estoy programando. > > La cadena que yo recibo es la siguiente: > > value_str = > {"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320","channels":[{"name":"PF","unit":"","meta":"PF","value":"1.000"},{"name":"P-WSpt","unit":"kW","meta":"P-WSpt","value":"935"}, > > {"name":"Vac","unit":"V","meta":"Vac","value":"217.5"},{"name":"Iac","unit":"A","meta":"Iac","value":"513.8"},{"name":"Pac","unit":"kW","meta":"Pac","value":"335.2"},{"name":"Qac","unit":"kV > > Ar","meta":"Qac","value":"-1.0"},{"name":"Sac","unit":"kVA","meta":"Sac","value":"335.1"},{"name":"Fac","unit":"Hz","meta":"Fac","value":"49.950"},{"name":"ErrNoFirst","unit":"","meta":"ErrNoFirst","value":"0"},{" > > name":"P-WModFailStt","unit":"","meta":"P-WModFailStt","value":"Off"},{"name":"P-WModStt","unit":"","meta":"P-WModStt","value":"Off"},{"name":"Dsc","unit":"","meta":"Dsc","value":"---"},{"name":"Firmware-9","unit":"","meta":"Firmware-9","value":" > "},{"name":"Cntry","unit":"","meta":"Cntry","value":"DE1"} > ,{"name":"Type","unit":"","meta":"Type","value":"SCG"},{"name":"Mode","unit":"","meta":"Mode","value":"Operation"},{"name":"Error","unit":"","meta":"Error","value":"---"}]}]},"version":"1.0" > > > Yo solo quiero quedarme con los name y value existente. > > LA forma en la que lo estoy intentando es la siguiente: > > for channel_str in re.findall("\"name\":\"[A-Za-z0-9\-. > ]+\",\"value\":\"[A-Za-z0-9\-. ]*\"",value_str): > d_value = re.findall("[A-Za-z0-9.\-]+",channel_str) > > Pero de esta forma no entra en el for. > > ¿Alguien me puede ayudar? > > Gracias y un saludo > > > > > > > -- > Miguel Ángel Rodríguez de Alba > 678304435 > marodal en gmail.com > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > From fdanesse en gmail.com Tue Jun 3 22:08:30 2014 From: fdanesse en gmail.com (Flavio Danesse) Date: Tue, 3 Jun 2014 17:08:30 -0300 Subject: [Python-es] Expresiones regulares In-Reply-To: <704038e702e0465d039664827a21bc9b.squirrel@correo.nodo50.org> References: <704038e702e0465d039664827a21bc9b.squirrel@correo.nodo50.org> Message-ID: Voto por lo correcto que sería así: import os import json import codecs text = '{"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320", etc . . . path = "/tmp/x.json" archivo = open(path, "w") archivo.write(text) archivo.close() archivo = codecs.open(path, "r", "utf-8") diccionario = json.JSONDecoder("utf-8").decode(archivo.read()) El 3 de junio de 2014, 8:03, escribió: > ejecutando esto: > > #!/usr/bin/python3 > import re > value_str = > > '{"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320","channels":[{"name":"PF","unit":"","meta":"PF","value":"1.000"},{"name":"P-WSpt","unit":"kW","meta":"P-WSpt","value":"935"},{"name":"Vac","unit":"V","meta":"Vac","value":"217.5"},{"name":"Iac","unit":"A","meta":"Iac","value":"513.8"},{"name":"Pac","unit":"kW","meta":"Pac","value":"335.2"},{"name":"Qac","unit":"kVAr","meta":"Qac","value":"-1.0"},{"name":"Sac","unit":"kVA","meta":"Sac","value":"335.1"},{"name":"Fac","unit":"Hz","meta":"Fac","value":"49.950"},{"name":"ErrNoFirst","unit":"","meta":"ErrNoFirst","value":"0"},{"name":"P-WModFailStt","unit":"","meta":"P-WModFailStt","value":"Off"},{"name":"P-WModStt","unit":"","meta":"P-WModStt","value":"Off"},{"name":"Dsc","unit":"","meta":"Dsc","value":"---"},{"name":"Firmware-9","unit":"","meta":"Firmware-9","value":""},{"name":"Cntry","unit":"","meta":"Cntry","value":"DE1"} > > ,{"name":"Type","unit":"","meta":"Type","value":"SCG"},{"name":"Mode","unit":"","meta":"Mode","value":"Operation"},{"name":"Error","unit":"","meta":"Error","value":"---"}]}]},"version":"1.0"' > > for channel_str in re.findall("\"name\":\"[A-Za-z0-9\-.]+\"",value_str): > for channel_str1 in re.findall("\"value\":\"[A-Za-z0-9\-.]+\"",value_str): > print ( channel_str + ";" + channel_str1 ) > > me da esto: > > "name":"Cntry";"value":"335.2" > "name":"Cntry";"value":"-1.0" > "name":"Cntry";"value":"335.1" > "name":"Cntry";"value":"49.950" > "name":"Cntry";"value":"0" > "name":"Cntry";"value":"Off" > "name":"Cntry";"value":"Off" > "name":"Cntry";"value":"---" > "name":"Cntry";"value":"DE1" > "name":"Cntry";"value":"SCG" > "name":"Cntry";"value":"Operation" > "name":"Cntry";"value":"---" > "name":"Type";"value":"1.000" > "name":"Type";"value":"935" > "name":"Type";"value":"217.5" > "name":"Type";"value":"513.8" > "name":"Type";"value":"335.2" > "name":"Type";"value":"-1.0" > "name":"Type";"value":"335.1" > "name":"Type";"value":"49.950" > > > te vale? > > > > > > > Hola a todos, > > > > Estoy intentando parsear con Python una gran cadena que recibo en un > > software de comunicaciones que estoy programando. > > > > La cadena que yo recibo es la siguiente: > > > > value_str = > > > {"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320","channels":[{"name":"PF","unit":"","meta":"PF","value":"1.000"},{"name":"P-WSpt","unit":"kW","meta":"P-WSpt","value":"935"}, > > > > > {"name":"Vac","unit":"V","meta":"Vac","value":"217.5"},{"name":"Iac","unit":"A","meta":"Iac","value":"513.8"},{"name":"Pac","unit":"kW","meta":"Pac","value":"335.2"},{"name":"Qac","unit":"kV > > > > > Ar","meta":"Qac","value":"-1.0"},{"name":"Sac","unit":"kVA","meta":"Sac","value":"335.1"},{"name":"Fac","unit":"Hz","meta":"Fac","value":"49.950"},{"name":"ErrNoFirst","unit":"","meta":"ErrNoFirst","value":"0"},{" > > > > > name":"P-WModFailStt","unit":"","meta":"P-WModFailStt","value":"Off"},{"name":"P-WModStt","unit":"","meta":"P-WModStt","value":"Off"},{"name":"Dsc","unit":"","meta":"Dsc","value":"---"},{"name":"Firmware-9","unit":"","meta":"Firmware-9","value":" > > "},{"name":"Cntry","unit":"","meta":"Cntry","value":"DE1"} > > > ,{"name":"Type","unit":"","meta":"Type","value":"SCG"},{"name":"Mode","unit":"","meta":"Mode","value":"Operation"},{"name":"Error","unit":"","meta":"Error","value":"---"}]}]},"version":"1.0" > > > > > > Yo solo quiero quedarme con los name y value existente. > > > > LA forma en la que lo estoy intentando es la siguiente: > > > > for channel_str in re.findall("\"name\":\"[A-Za-z0-9\-. > > ]+\",\"value\":\"[A-Za-z0-9\-. ]*\"",value_str): > > d_value = re.findall("[A-Za-z0-9.\-]+",channel_str) > > > > Pero de esta forma no entra en el for. > > > > ¿Alguien me puede ayudar? > > > > Gracias y un saludo > > > > > > > > > > > > > > -- > > Miguel Ángel Rodríguez de Alba > > 678304435 > > marodal en gmail.com > > _______________________________________________ > > Python-es mailing list > > Python-es en python.org > > https://mail.python.org/mailman/listinfo/python-es > > FAQ: http://python-es-faq.wikidot.com/ > > > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From marodal en gmail.com Tue Jun 3 22:13:27 2014 From: marodal en gmail.com (Miguel Angel Rodriguez) Date: Tue, 3 Jun 2014 22:13:27 +0200 Subject: [Python-es] Expresiones regulares In-Reply-To: References: <704038e702e0465d039664827a21bc9b.squirrel@correo.nodo50.org> Message-ID: No entiendo que haces con archivo... Nunca he programado con json en python. ¿Como seria a partir de lo que indicas el parseo de los datos? Es decir, ¿Como seria el bucle que me iria dando el name y el value? 2014-06-03 22:08 GMT+02:00 Flavio Danesse : > Voto por lo correcto que sería así: > > import os > import json > import codecs > > text = '{"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320", etc > . . . > > path = "/tmp/x.json" > > archivo = open(path, "w") > archivo.write(text) > archivo.close() > > archivo = codecs.open(path, "r", "utf-8") > diccionario = json.JSONDecoder("utf-8").decode(archivo.read()) > > > El 3 de junio de 2014, 8:03, escribió: > > ejecutando esto: >> >> #!/usr/bin/python3 >> import re >> value_str = >> >> '{"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320","channels":[{"name":"PF","unit":"","meta":"PF","value":"1.000"},{"name":"P-WSpt","unit":"kW","meta":"P-WSpt","value":"935"},{"name":"Vac","unit":"V","meta":"Vac","value":"217.5"},{"name":"Iac","unit":"A","meta":"Iac","value":"513.8"},{"name":"Pac","unit":"kW","meta":"Pac","value":"335.2"},{"name":"Qac","unit":"kVAr","meta":"Qac","value":"-1.0"},{"name":"Sac","unit":"kVA","meta":"Sac","value":"335.1"},{"name":"Fac","unit":"Hz","meta":"Fac","value":"49.950"},{"name":"ErrNoFirst","unit":"","meta":"ErrNoFirst","value":"0"},{"name":"P-WModFailStt","unit":"","meta":"P-WModFailStt","value":"Off"},{"name":"P-WModStt","unit":"","meta":"P-WModStt","value":"Off"},{"name":"Dsc","unit":"","meta":"Dsc","value":"---"},{"name":"Firmware-9","unit":"","meta":"Firmware-9","value":""},{"name":"Cntry","unit":"","meta":"Cntry","value":"DE1"} >> >> ,{"name":"Type","unit":"","meta":"Type","value":"SCG"},{"name":"Mode","unit":"","meta":"Mode","value":"Operation"},{"name":"Error","unit":"","meta":"Error","value":"---"}]}]},"version":"1.0"' >> >> for channel_str in re.findall("\"name\":\"[A-Za-z0-9\-.]+\"",value_str): >> for channel_str1 in >> re.findall("\"value\":\"[A-Za-z0-9\-.]+\"",value_str): >> print ( channel_str + ";" + channel_str1 ) >> >> me da esto: >> >> "name":"Cntry";"value":"335.2" >> "name":"Cntry";"value":"-1.0" >> "name":"Cntry";"value":"335.1" >> "name":"Cntry";"value":"49.950" >> "name":"Cntry";"value":"0" >> "name":"Cntry";"value":"Off" >> "name":"Cntry";"value":"Off" >> "name":"Cntry";"value":"---" >> "name":"Cntry";"value":"DE1" >> "name":"Cntry";"value":"SCG" >> "name":"Cntry";"value":"Operation" >> "name":"Cntry";"value":"---" >> "name":"Type";"value":"1.000" >> "name":"Type";"value":"935" >> "name":"Type";"value":"217.5" >> "name":"Type";"value":"513.8" >> "name":"Type";"value":"335.2" >> "name":"Type";"value":"-1.0" >> "name":"Type";"value":"335.1" >> "name":"Type";"value":"49.950" >> >> >> te vale? >> >> >> >> >> >> > Hola a todos, >> > >> > Estoy intentando parsear con Python una gran cadena que recibo en un >> > software de comunicaciones que estoy programando. >> > >> > La cadena que yo recibo es la siguiente: >> > >> > value_str = >> > >> {"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320","channels":[{"name":"PF","unit":"","meta":"PF","value":"1.000"},{"name":"P-WSpt","unit":"kW","meta":"P-WSpt","value":"935"}, >> > >> > >> {"name":"Vac","unit":"V","meta":"Vac","value":"217.5"},{"name":"Iac","unit":"A","meta":"Iac","value":"513.8"},{"name":"Pac","unit":"kW","meta":"Pac","value":"335.2"},{"name":"Qac","unit":"kV >> > >> > >> Ar","meta":"Qac","value":"-1.0"},{"name":"Sac","unit":"kVA","meta":"Sac","value":"335.1"},{"name":"Fac","unit":"Hz","meta":"Fac","value":"49.950"},{"name":"ErrNoFirst","unit":"","meta":"ErrNoFirst","value":"0"},{" >> > >> > >> name":"P-WModFailStt","unit":"","meta":"P-WModFailStt","value":"Off"},{"name":"P-WModStt","unit":"","meta":"P-WModStt","value":"Off"},{"name":"Dsc","unit":"","meta":"Dsc","value":"---"},{"name":"Firmware-9","unit":"","meta":"Firmware-9","value":" >> > "},{"name":"Cntry","unit":"","meta":"Cntry","value":"DE1"} >> > >> ,{"name":"Type","unit":"","meta":"Type","value":"SCG"},{"name":"Mode","unit":"","meta":"Mode","value":"Operation"},{"name":"Error","unit":"","meta":"Error","value":"---"}]}]},"version":"1.0" >> > >> > >> > Yo solo quiero quedarme con los name y value existente. >> > >> > LA forma en la que lo estoy intentando es la siguiente: >> > >> > for channel_str in re.findall("\"name\":\"[A-Za-z0-9\-. >> > ]+\",\"value\":\"[A-Za-z0-9\-. ]*\"",value_str): >> > d_value = re.findall("[A-Za-z0-9.\-]+",channel_str) >> > >> > Pero de esta forma no entra en el for. >> > >> > ¿Alguien me puede ayudar? >> > >> > Gracias y un saludo >> > >> > >> > >> > >> > >> > >> > -- >> > Miguel Ángel Rodríguez de Alba >> > 678304435 >> > marodal en gmail.com >> > _______________________________________________ >> > Python-es mailing list >> > Python-es en python.org >> > https://mail.python.org/mailman/listinfo/python-es >> > FAQ: http://python-es-faq.wikidot.com/ >> > >> >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > -- Miguel Ángel Rodríguez de Alba 678304435 marodal en gmail.com ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From fdanesse en gmail.com Tue Jun 3 22:38:19 2014 From: fdanesse en gmail.com (Flavio Danesse) Date: Tue, 3 Jun 2014 17:38:19 -0300 Subject: [Python-es] Expresiones regulares In-Reply-To: References: <704038e702e0465d039664827a21bc9b.squirrel@correo.nodo50.org> Message-ID: Lo que hago es tomar el string que tienes y guardarlo en un archivo como texto plano pero luego lo cargo utilizando json con lo cual obtengo un diccionario python. Para obtener las keys y values del diccionario solo tienes que hacer diccionario.keys() y diccionario.values() o puedes hacer también diccionario.items() lo cual te da la pareja key:value. En todos los casos obtendrás lista de keys, values o items. Ahora bien, el primer obstáculo está salvado, que era pasar el string a un diccionario donde tienes parejas key-value. El segundo obstaculo es hacer recursividad dentro del diccionario para seguir hacia adentro de la estructura obteniendo los diccionarios internos. No es tan complicado, puedes comenzar con algo como: for key in diccionario.keys(): valor = diccionario[key] . . . lo que quieras con el key y lo que quieras con value aca importa que tipo de dato es el value, porque por lo que veo tienes listas, diccionarios, string, etc, utiliza type(valor) para operar sobre ellos según su tipo. El 3 de junio de 2014, 17:13, Miguel Angel Rodriguez escribió: > No entiendo que haces con archivo... > > Nunca he programado con json en python. > > ¿Como seria a partir de lo que indicas el parseo de los datos? Es decir, > ¿Como seria el bucle que me iria dando el name y el value? > > > > > 2014-06-03 22:08 GMT+02:00 Flavio Danesse : > > Voto por lo correcto que sería así: >> >> import os >> import json >> import codecs >> >> text = >> '{"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320", etc >> . . . >> >> path = "/tmp/x.json" >> >> archivo = open(path, "w") >> archivo.write(text) >> archivo.close() >> >> archivo = codecs.open(path, "r", "utf-8") >> diccionario = json.JSONDecoder("utf-8").decode(archivo.read()) >> >> >> El 3 de junio de 2014, 8:03, escribió: >> >> ejecutando esto: >>> >>> #!/usr/bin/python3 >>> import re >>> value_str = >>> >>> '{"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320","channels":[{"name":"PF","unit":"","meta":"PF","value":"1.000"},{"name":"P-WSpt","unit":"kW","meta":"P-WSpt","value":"935"},{"name":"Vac","unit":"V","meta":"Vac","value":"217.5"},{"name":"Iac","unit":"A","meta":"Iac","value":"513.8"},{"name":"Pac","unit":"kW","meta":"Pac","value":"335.2"},{"name":"Qac","unit":"kVAr","meta":"Qac","value":"-1.0"},{"name":"Sac","unit":"kVA","meta":"Sac","value":"335.1"},{"name":"Fac","unit":"Hz","meta":"Fac","value":"49.950"},{"name":"ErrNoFirst","unit":"","meta":"ErrNoFirst","value":"0"},{"name":"P-WModFailStt","unit":"","meta":"P-WModFailStt","value":"Off"},{"name":"P-WModStt","unit":"","meta":"P-WModStt","value":"Off"},{"name":"Dsc","unit":"","meta":"Dsc","value":"---"},{"name":"Firmware-9","unit":"","meta":"Firmware-9","value":""},{"name":"Cntry","unit":"","meta":"Cntry","value":"DE1"} >>> >>> ,{"name":"Type","unit":"","meta":"Type","value":"SCG"},{"name":"Mode","unit":"","meta":"Mode","value":"Operation"},{"name":"Error","unit":"","meta":"Error","value":"---"}]}]},"version":"1.0"' >>> >>> for channel_str in re.findall("\"name\":\"[A-Za-z0-9\-.]+\"",value_str): >>> for channel_str1 in >>> re.findall("\"value\":\"[A-Za-z0-9\-.]+\"",value_str): >>> print ( channel_str + ";" + channel_str1 ) >>> >>> me da esto: >>> >>> "name":"Cntry";"value":"335.2" >>> "name":"Cntry";"value":"-1.0" >>> "name":"Cntry";"value":"335.1" >>> "name":"Cntry";"value":"49.950" >>> "name":"Cntry";"value":"0" >>> "name":"Cntry";"value":"Off" >>> "name":"Cntry";"value":"Off" >>> "name":"Cntry";"value":"---" >>> "name":"Cntry";"value":"DE1" >>> "name":"Cntry";"value":"SCG" >>> "name":"Cntry";"value":"Operation" >>> "name":"Cntry";"value":"---" >>> "name":"Type";"value":"1.000" >>> "name":"Type";"value":"935" >>> "name":"Type";"value":"217.5" >>> "name":"Type";"value":"513.8" >>> "name":"Type";"value":"335.2" >>> "name":"Type";"value":"-1.0" >>> "name":"Type";"value":"335.1" >>> "name":"Type";"value":"49.950" >>> >>> >>> te vale? >>> >>> >>> >>> >>> >>> > Hola a todos, >>> > >>> > Estoy intentando parsear con Python una gran cadena que recibo en un >>> > software de comunicaciones que estoy programando. >>> > >>> > La cadena que yo recibo es la siguiente: >>> > >>> > value_str = >>> > >>> {"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320","channels":[{"name":"PF","unit":"","meta":"PF","value":"1.000"},{"name":"P-WSpt","unit":"kW","meta":"P-WSpt","value":"935"}, >>> > >>> > >>> {"name":"Vac","unit":"V","meta":"Vac","value":"217.5"},{"name":"Iac","unit":"A","meta":"Iac","value":"513.8"},{"name":"Pac","unit":"kW","meta":"Pac","value":"335.2"},{"name":"Qac","unit":"kV >>> > >>> > >>> Ar","meta":"Qac","value":"-1.0"},{"name":"Sac","unit":"kVA","meta":"Sac","value":"335.1"},{"name":"Fac","unit":"Hz","meta":"Fac","value":"49.950"},{"name":"ErrNoFirst","unit":"","meta":"ErrNoFirst","value":"0"},{" >>> > >>> > >>> name":"P-WModFailStt","unit":"","meta":"P-WModFailStt","value":"Off"},{"name":"P-WModStt","unit":"","meta":"P-WModStt","value":"Off"},{"name":"Dsc","unit":"","meta":"Dsc","value":"---"},{"name":"Firmware-9","unit":"","meta":"Firmware-9","value":" >>> > "},{"name":"Cntry","unit":"","meta":"Cntry","value":"DE1"} >>> > >>> ,{"name":"Type","unit":"","meta":"Type","value":"SCG"},{"name":"Mode","unit":"","meta":"Mode","value":"Operation"},{"name":"Error","unit":"","meta":"Error","value":"---"}]}]},"version":"1.0" >>> > >>> > >>> > Yo solo quiero quedarme con los name y value existente. >>> > >>> > LA forma en la que lo estoy intentando es la siguiente: >>> > >>> > for channel_str in re.findall("\"name\":\"[A-Za-z0-9\-. >>> > ]+\",\"value\":\"[A-Za-z0-9\-. ]*\"",value_str): >>> > d_value = re.findall("[A-Za-z0-9.\-]+",channel_str) >>> > >>> > Pero de esta forma no entra en el for. >>> > >>> > ¿Alguien me puede ayudar? >>> > >>> > Gracias y un saludo >>> > >>> > >>> > >>> > >>> > >>> > >>> > -- >>> > Miguel Ángel Rodríguez de Alba >>> > 678304435 >>> > marodal en gmail.com >>> > _______________________________________________ >>> > Python-es mailing list >>> > Python-es en python.org >>> > https://mail.python.org/mailman/listinfo/python-es >>> > FAQ: http://python-es-faq.wikidot.com/ >>> > >>> >>> >>> _______________________________________________ >>> Python-es mailing list >>> Python-es en python.org >>> https://mail.python.org/mailman/listinfo/python-es >>> FAQ: http://python-es-faq.wikidot.com/ >>> >> >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > > > -- > Miguel Ángel Rodríguez de Alba > 678304435 > marodal en gmail.com > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From fdanesse en gmail.com Tue Jun 3 22:40:26 2014 From: fdanesse en gmail.com (Flavio Danesse) Date: Tue, 3 Jun 2014 17:40:26 -0300 Subject: [Python-es] Expresiones regulares In-Reply-To: References: <704038e702e0465d039664827a21bc9b.squirrel@correo.nodo50.org> Message-ID: Si quieres pasame un string de ejemplo que esté completo y dime que hacer con los values y te escribo la solución. El 3 de junio de 2014, 17:38, Flavio Danesse escribió: > Lo que hago es tomar el string que tienes y guardarlo en un archivo como > texto plano pero luego lo cargo utilizando json con lo cual obtengo un > diccionario python. Para obtener las keys y values del diccionario solo > tienes que hacer diccionario.keys() y diccionario.values() o puedes hacer > también diccionario.items() lo cual te da la pareja key:value. > > En todos los casos obtendrás lista de keys, values o items. > > Ahora bien, el primer obstáculo está salvado, que era pasar el string a un > diccionario donde tienes parejas key-value. > > El segundo obstaculo es hacer recursividad dentro del diccionario para > seguir hacia adentro de la estructura obteniendo los diccionarios internos. > No es tan complicado, puedes comenzar con algo como: > > for key in diccionario.keys(): > valor = diccionario[key] > . . . lo que quieras con el key y lo que quieras con value aca > importa que tipo de dato es el value, porque por lo que veo tienes listas, > diccionarios, string, etc, utiliza type(valor) para operar sobre ellos > según su tipo. > > > > > El 3 de junio de 2014, 17:13, Miguel Angel Rodriguez > escribió: > > No entiendo que haces con archivo... >> >> Nunca he programado con json en python. >> >> ¿Como seria a partir de lo que indicas el parseo de los datos? Es decir, >> ¿Como seria el bucle que me iria dando el name y el value? >> >> >> >> >> 2014-06-03 22:08 GMT+02:00 Flavio Danesse : >> >> Voto por lo correcto que sería así: >>> >>> import os >>> import json >>> import codecs >>> >>> text = >>> '{"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320", etc >>> . . . >>> >>> path = "/tmp/x.json" >>> >>> archivo = open(path, "w") >>> archivo.write(text) >>> archivo.close() >>> >>> archivo = codecs.open(path, "r", "utf-8") >>> diccionario = json.JSONDecoder("utf-8").decode(archivo.read()) >>> >>> >>> El 3 de junio de 2014, 8:03, escribió: >>> >>> ejecutando esto: >>>> >>>> #!/usr/bin/python3 >>>> import re >>>> value_str = >>>> >>>> '{"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320","channels":[{"name":"PF","unit":"","meta":"PF","value":"1.000"},{"name":"P-WSpt","unit":"kW","meta":"P-WSpt","value":"935"},{"name":"Vac","unit":"V","meta":"Vac","value":"217.5"},{"name":"Iac","unit":"A","meta":"Iac","value":"513.8"},{"name":"Pac","unit":"kW","meta":"Pac","value":"335.2"},{"name":"Qac","unit":"kVAr","meta":"Qac","value":"-1.0"},{"name":"Sac","unit":"kVA","meta":"Sac","value":"335.1"},{"name":"Fac","unit":"Hz","meta":"Fac","value":"49.950"},{"name":"ErrNoFirst","unit":"","meta":"ErrNoFirst","value":"0"},{"name":"P-WModFailStt","unit":"","meta":"P-WModFailStt","value":"Off"},{"name":"P-WModStt","unit":"","meta":"P-WModStt","value":"Off"},{"name":"Dsc","unit":"","meta":"Dsc","value":"---"},{"name":"Firmware-9","unit":"","meta":"Firmware-9","value":""},{"name":"Cntry","unit":"","meta":"Cntry","value":"DE1"} >>>> >>>> ,{"name":"Type","unit":"","meta":"Type","value":"SCG"},{"name":"Mode","unit":"","meta":"Mode","value":"Operation"},{"name":"Error","unit":"","meta":"Error","value":"---"}]}]},"version":"1.0"' >>>> >>>> for channel_str in re.findall("\"name\":\"[A-Za-z0-9\-.]+\"",value_str): >>>> for channel_str1 in >>>> re.findall("\"value\":\"[A-Za-z0-9\-.]+\"",value_str): >>>> print ( channel_str + ";" + channel_str1 ) >>>> >>>> me da esto: >>>> >>>> "name":"Cntry";"value":"335.2" >>>> "name":"Cntry";"value":"-1.0" >>>> "name":"Cntry";"value":"335.1" >>>> "name":"Cntry";"value":"49.950" >>>> "name":"Cntry";"value":"0" >>>> "name":"Cntry";"value":"Off" >>>> "name":"Cntry";"value":"Off" >>>> "name":"Cntry";"value":"---" >>>> "name":"Cntry";"value":"DE1" >>>> "name":"Cntry";"value":"SCG" >>>> "name":"Cntry";"value":"Operation" >>>> "name":"Cntry";"value":"---" >>>> "name":"Type";"value":"1.000" >>>> "name":"Type";"value":"935" >>>> "name":"Type";"value":"217.5" >>>> "name":"Type";"value":"513.8" >>>> "name":"Type";"value":"335.2" >>>> "name":"Type";"value":"-1.0" >>>> "name":"Type";"value":"335.1" >>>> "name":"Type";"value":"49.950" >>>> >>>> >>>> te vale? >>>> >>>> >>>> >>>> >>>> >>>> > Hola a todos, >>>> > >>>> > Estoy intentando parsear con Python una gran cadena que recibo en un >>>> > software de comunicaciones que estoy programando. >>>> > >>>> > La cadena que yo recibo es la siguiente: >>>> > >>>> > value_str = >>>> > >>>> {"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320","channels":[{"name":"PF","unit":"","meta":"PF","value":"1.000"},{"name":"P-WSpt","unit":"kW","meta":"P-WSpt","value":"935"}, >>>> > >>>> > >>>> {"name":"Vac","unit":"V","meta":"Vac","value":"217.5"},{"name":"Iac","unit":"A","meta":"Iac","value":"513.8"},{"name":"Pac","unit":"kW","meta":"Pac","value":"335.2"},{"name":"Qac","unit":"kV >>>> > >>>> > >>>> Ar","meta":"Qac","value":"-1.0"},{"name":"Sac","unit":"kVA","meta":"Sac","value":"335.1"},{"name":"Fac","unit":"Hz","meta":"Fac","value":"49.950"},{"name":"ErrNoFirst","unit":"","meta":"ErrNoFirst","value":"0"},{" >>>> > >>>> > >>>> name":"P-WModFailStt","unit":"","meta":"P-WModFailStt","value":"Off"},{"name":"P-WModStt","unit":"","meta":"P-WModStt","value":"Off"},{"name":"Dsc","unit":"","meta":"Dsc","value":"---"},{"name":"Firmware-9","unit":"","meta":"Firmware-9","value":" >>>> > "},{"name":"Cntry","unit":"","meta":"Cntry","value":"DE1"} >>>> > >>>> ,{"name":"Type","unit":"","meta":"Type","value":"SCG"},{"name":"Mode","unit":"","meta":"Mode","value":"Operation"},{"name":"Error","unit":"","meta":"Error","value":"---"}]}]},"version":"1.0" >>>> > >>>> > >>>> > Yo solo quiero quedarme con los name y value existente. >>>> > >>>> > LA forma en la que lo estoy intentando es la siguiente: >>>> > >>>> > for channel_str in re.findall("\"name\":\"[A-Za-z0-9\-. >>>> > ]+\",\"value\":\"[A-Za-z0-9\-. ]*\"",value_str): >>>> > d_value = re.findall("[A-Za-z0-9.\-]+",channel_str) >>>> > >>>> > Pero de esta forma no entra en el for. >>>> > >>>> > ¿Alguien me puede ayudar? >>>> > >>>> > Gracias y un saludo >>>> > >>>> > >>>> > >>>> > >>>> > >>>> > >>>> > -- >>>> > Miguel Ángel Rodríguez de Alba >>>> > 678304435 >>>> > marodal en gmail.com >>>> > _______________________________________________ >>>> > Python-es mailing list >>>> > Python-es en python.org >>>> > https://mail.python.org/mailman/listinfo/python-es >>>> > FAQ: http://python-es-faq.wikidot.com/ >>>> > >>>> >>>> >>>> _______________________________________________ >>>> Python-es mailing list >>>> Python-es en python.org >>>> https://mail.python.org/mailman/listinfo/python-es >>>> FAQ: http://python-es-faq.wikidot.com/ >>>> >>> >>> >>> _______________________________________________ >>> Python-es mailing list >>> Python-es en python.org >>> https://mail.python.org/mailman/listinfo/python-es >>> FAQ: http://python-es-faq.wikidot.com/ >>> >>> >> >> >> -- >> Miguel Ángel Rodríguez de Alba >> 678304435 >> marodal en gmail.com >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From marodal en gmail.com Tue Jun 3 22:53:33 2014 From: marodal en gmail.com (Miguel Angel Rodriguez) Date: Tue, 3 Jun 2014 22:53:33 +0200 Subject: [Python-es] Expresiones regulares In-Reply-To: References: <704038e702e0465d039664827a21bc9b.squirrel@correo.nodo50.org> Message-ID: Este es un ejemplo de lo que recibo: {"format":"JSON","result":{"devices":[{"key":"SCGDE1BA: 180340320","channels":[{"name":"PF","unit":"","meta":"PF"," value":"1.000"},{"name":"P-WSpt","unit":"kW","meta":"P-WSpt","value":"935"}, {"name":"Vac","unit":"V","meta":"Vac","value":"217.5"},{ "name":"Iac","unit":"A","meta":"Iac","value":"513.8"},{" name":"Pac","unit":"kW","meta":"Pac","value":"335.2"},{"name":"Qac","unit":"kV Ar","meta":"Qac","value":"-1.0"},{"name":"Sac","unit":"kVA" ,"meta":"Sac","value":"335.1"},{"name":"Fac","unit":"Hz"," meta":"Fac","value":"49.950"},{"name":"ErrNoFirst","unit":"" ,"meta":"ErrNoFirst","value":"0"},{" name":"P-WModFailStt","unit":" ","meta":"P-WModFailStt","value":"Off"},{"name":"P- WModStt","unit":"","meta":"P-WModStt","value":"Off"},{" name":"Dsc","unit":"","meta":"Dsc","value":"---"},{"name":" Firmware-9","unit":"","meta":"Firmware-9","value":" "},{"name":"Cntry","unit":"","meta":"Cntry","value":"DE1"} ,{"name":"Type","unit":"","meta":"Type","value":"SCG"},{" name":"Mode","unit":"","meta":"Mode","value":"Operation"},{" name":"Error","unit":"","meta":"Error","value":"---"}]}]},"version":"1.0" Quiero parsearlo para poder almacenar en unas variables que tengo los values que aparecen en el JSON. De esta forma: Con la solucion con expresiones regulares en cada iteracion tengo lo siguiente: d_value = [name,(valor del name),unit,(valor del unit),meta,(valor del meta),value,(valor del value)] En esa iteracion hago lo siguiente: if d_value[1] == "PF": mi_variable_PF = d_value[7] if d_value[1] == "Fac": mi_variable_Fac = d_value[7] ..... No necesito todos los values, solo los que corresponden a unos determinados name. Con la solucion con expresiones regulares tengo el siguiente bug: Alguna veces en el json aparece "unit":"". Es decir, la clave key no tiene valor, por lo que no consigo El 3 de junio de 2014, 22:40, Flavio Danesse escribió: > Si quieres pasame un string de ejemplo que esté completo y dime que hacer > con los values y te escribo la solución. > > > El 3 de junio de 2014, 17:38, Flavio Danesse > escribió: > > Lo que hago es tomar el string que tienes y guardarlo en un archivo como >> texto plano pero luego lo cargo utilizando json con lo cual obtengo un >> diccionario python. Para obtener las keys y values del diccionario solo >> tienes que hacer diccionario.keys() y diccionario.values() o puedes hacer >> también diccionario.items() lo cual te da la pareja key:value. >> >> En todos los casos obtendrás lista de keys, values o items. >> >> Ahora bien, el primer obstáculo está salvado, que era pasar el string a >> un diccionario donde tienes parejas key-value. >> >> El segundo obstaculo es hacer recursividad dentro del diccionario para >> seguir hacia adentro de la estructura obteniendo los diccionarios internos. >> No es tan complicado, puedes comenzar con algo como: >> >> for key in diccionario.keys(): >> valor = diccionario[key] >> . . . lo que quieras con el key y lo que quieras con value aca >> importa que tipo de dato es el value, porque por lo que veo tienes listas, >> diccionarios, string, etc, utiliza type(valor) para operar sobre ellos >> según su tipo. >> >> >> >> >> El 3 de junio de 2014, 17:13, Miguel Angel Rodriguez >> escribió: >> >> No entiendo que haces con archivo... >>> >>> Nunca he programado con json en python. >>> >>> ¿Como seria a partir de lo que indicas el parseo de los datos? Es decir, >>> ¿Como seria el bucle que me iria dando el name y el value? >>> >>> >>> >>> >>> 2014-06-03 22:08 GMT+02:00 Flavio Danesse : >>> >>> Voto por lo correcto que sería así: >>>> >>>> import os >>>> import json >>>> import codecs >>>> >>>> text = >>>> '{"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320", etc >>>> . . . >>>> >>>> path = "/tmp/x.json" >>>> >>>> archivo = open(path, "w") >>>> archivo.write(text) >>>> archivo.close() >>>> >>>> archivo = codecs.open(path, "r", "utf-8") >>>> diccionario = json.JSONDecoder("utf-8").decode(archivo.read()) >>>> >>>> >>>> El 3 de junio de 2014, 8:03, escribió: >>>> >>>> ejecutando esto: >>>>> >>>>> #!/usr/bin/python3 >>>>> import re >>>>> value_str = >>>>> >>>>> '{"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320","channels":[{"name":"PF","unit":"","meta":"PF","value":"1.000"},{"name":"P-WSpt","unit":"kW","meta":"P-WSpt","value":"935"},{"name":"Vac","unit":"V","meta":"Vac","value":"217.5"},{"name":"Iac","unit":"A","meta":"Iac","value":"513.8"},{"name":"Pac","unit":"kW","meta":"Pac","value":"335.2"},{"name":"Qac","unit":"kVAr","meta":"Qac","value":"-1.0"},{"name":"Sac","unit":"kVA","meta":"Sac","value":"335.1"},{"name":"Fac","unit":"Hz","meta":"Fac","value":"49.950"},{"name":"ErrNoFirst","unit":"","meta":"ErrNoFirst","value":"0"},{"name":"P-WModFailStt","unit":"","meta":"P-WModFailStt","value":"Off"},{"name":"P-WModStt","unit":"","meta":"P-WModStt","value":"Off"},{"name":"Dsc","unit":"","meta":"Dsc","value":"---"},{"name":"Firmware-9","unit":"","meta":"Firmware-9","value":""},{"name":"Cntry","unit":"","meta":"Cntry","value":"DE1"} >>>>> >>>>> ,{"name":"Type","unit":"","meta":"Type","value":"SCG"},{"name":"Mode","unit":"","meta":"Mode","value":"Operation"},{"name":"Error","unit":"","meta":"Error","value":"---"}]}]},"version":"1.0"' >>>>> >>>>> for channel_str in >>>>> re.findall("\"name\":\"[A-Za-z0-9\-.]+\"",value_str): >>>>> for channel_str1 in >>>>> re.findall("\"value\":\"[A-Za-z0-9\-.]+\"",value_str): >>>>> print ( channel_str + ";" + channel_str1 ) >>>>> >>>>> me da esto: >>>>> >>>>> "name":"Cntry";"value":"335.2" >>>>> "name":"Cntry";"value":"-1.0" >>>>> "name":"Cntry";"value":"335.1" >>>>> "name":"Cntry";"value":"49.950" >>>>> "name":"Cntry";"value":"0" >>>>> "name":"Cntry";"value":"Off" >>>>> "name":"Cntry";"value":"Off" >>>>> "name":"Cntry";"value":"---" >>>>> "name":"Cntry";"value":"DE1" >>>>> "name":"Cntry";"value":"SCG" >>>>> "name":"Cntry";"value":"Operation" >>>>> "name":"Cntry";"value":"---" >>>>> "name":"Type";"value":"1.000" >>>>> "name":"Type";"value":"935" >>>>> "name":"Type";"value":"217.5" >>>>> "name":"Type";"value":"513.8" >>>>> "name":"Type";"value":"335.2" >>>>> "name":"Type";"value":"-1.0" >>>>> "name":"Type";"value":"335.1" >>>>> "name":"Type";"value":"49.950" >>>>> >>>>> >>>>> te vale? >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> > Hola a todos, >>>>> > >>>>> > Estoy intentando parsear con Python una gran cadena que recibo en un >>>>> > software de comunicaciones que estoy programando. >>>>> > >>>>> > La cadena que yo recibo es la siguiente: >>>>> > >>>>> > value_str = >>>>> > >>>>> {"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320","channels":[{"name":"PF","unit":"","meta":"PF","value":"1.000"},{"name":"P-WSpt","unit":"kW","meta":"P-WSpt","value":"935"}, >>>>> > >>>>> > >>>>> {"name":"Vac","unit":"V","meta":"Vac","value":"217.5"},{"name":"Iac","unit":"A","meta":"Iac","value":"513.8"},{"name":"Pac","unit":"kW","meta":"Pac","value":"335.2"},{"name":"Qac","unit":"kV >>>>> > >>>>> > >>>>> Ar","meta":"Qac","value":"-1.0"},{"name":"Sac","unit":"kVA","meta":"Sac","value":"335.1"},{"name":"Fac","unit":"Hz","meta":"Fac","value":"49.950"},{"name":"ErrNoFirst","unit":"","meta":"ErrNoFirst","value":"0"},{" >>>>> > >>>>> > >>>>> name":"P-WModFailStt","unit":"","meta":"P-WModFailStt","value":"Off"},{"name":"P-WModStt","unit":"","meta":"P-WModStt","value":"Off"},{"name":"Dsc","unit":"","meta":"Dsc","value":"---"},{"name":"Firmware-9","unit":"","meta":"Firmware-9","value":" >>>>> > "},{"name":"Cntry","unit":"","meta":"Cntry","value":"DE1"} >>>>> > >>>>> ,{"name":"Type","unit":"","meta":"Type","value":"SCG"},{"name":"Mode","unit":"","meta":"Mode","value":"Operation"},{"name":"Error","unit":"","meta":"Error","value":"---"}]}]},"version":"1.0" >>>>> > >>>>> > >>>>> > Yo solo quiero quedarme con los name y value existente. >>>>> > >>>>> > LA forma en la que lo estoy intentando es la siguiente: >>>>> > >>>>> > for channel_str in re.findall("\"name\":\"[A-Za-z0-9\-. >>>>> > ]+\",\"value\":\"[A-Za-z0-9\-. ]*\"",value_str): >>>>> > d_value = re.findall("[A-Za-z0-9.\-]+",channel_str) >>>>> > >>>>> > Pero de esta forma no entra en el for. >>>>> > >>>>> > ¿Alguien me puede ayudar? >>>>> > >>>>> > Gracias y un saludo >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > -- >>>>> > Miguel Ángel Rodríguez de Alba >>>>> > 678304435 >>>>> > marodal en gmail.com >>>>> > _______________________________________________ >>>>> > Python-es mailing list >>>>> > Python-es en python.org >>>>> > https://mail.python.org/mailman/listinfo/python-es >>>>> > FAQ: http://python-es-faq.wikidot.com/ >>>>> > >>>>> >>>>> >>>>> _______________________________________________ >>>>> Python-es mailing list >>>>> Python-es en python.org >>>>> https://mail.python.org/mailman/listinfo/python-es >>>>> FAQ: http://python-es-faq.wikidot.com/ >>>>> >>>> >>>> >>>> _______________________________________________ >>>> Python-es mailing list >>>> Python-es en python.org >>>> https://mail.python.org/mailman/listinfo/python-es >>>> FAQ: http://python-es-faq.wikidot.com/ >>>> >>>> >>> >>> >>> -- >>> Miguel Ángel Rodríguez de Alba >>> 678304435 >>> marodal en gmail.com >>> >>> _______________________________________________ >>> Python-es mailing list >>> Python-es en python.org >>> https://mail.python.org/mailman/listinfo/python-es >>> FAQ: http://python-es-faq.wikidot.com/ >>> >>> >> > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > -- Miguel Ángel Rodríguez de Alba 678304435 marodal en gmail.com ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From marodal en gmail.com Tue Jun 3 22:55:44 2014 From: marodal en gmail.com (Miguel Angel Rodriguez) Date: Tue, 3 Jun 2014 22:55:44 +0200 Subject: [Python-es] Expresiones regulares In-Reply-To: References: <704038e702e0465d039664827a21bc9b.squirrel@correo.nodo50.org> Message-ID: Este es un ejemplo de lo que recibo: {"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320","channels":[{"name":"PF","unit":"","meta":"PF","value":"1.000"},{"name":"P-WSpt","unit":"kW","meta":"P-WSpt","value":"935"}, {"name":"Vac","unit":"V","meta":"Vac","value":"217.5"},{"name":"Iac","unit":"A","meta":"Iac","value":"513.8"},{"name":"Pac","unit":"kW","meta":"Pac","value":"335.2"},{"name":"Qac","unit":"kV Ar","meta":"Qac","value":"-1.0"},{"name":"Sac","unit":"kVA","meta":"Sac","value":"335.1"},{"name":"Fac","unit":"Hz","meta":"Fac","value":"49.950"},{"name":"ErrNoFirst","unit":"","meta":"ErrNoFirst","value":"0"},{" name":"P-WModFailStt","unit":"","meta":"P-WModFailStt","value":"Off"},{"name":"P-WModStt","unit":"","meta":"P-WModStt","value":"Off"},{"name":"Dsc","unit":"","meta":"Dsc","value":"---"},{"name":"Firmware-9","unit":"","meta":"Firmware-9","value":" "},{"name":"Cntry","unit":"","meta":"Cntry","value":"DE1"} ,{"name":"Type","unit":"","meta":"Type","value":"SCG"},{"name":"Mode","unit":"","meta":"Mode","value":"Operation"},{"name":"Error","unit":"","meta":"Error","value":"---"}]}]},"version":"1.0" Quiero parsearlo para poder almacenar en unas variables que tengo los values que aparecen en el JSON. De esta forma: Con la solucion con expresiones regulares en cada iteracion tengo lo siguiente: d_value = [name,(valor del name),unit,(valor del unit),meta,(valor del meta),value,(valor del value)] En esa iteracion hago lo siguiente: if d_value[1] == "PF": mi_variable_PF = d_value[7] if d_value[1] == "Fac": mi_variable_Fac = d_value[7] ..... No necesito todos los values, solo los que corresponden a unos determinados name. Con la solucion con expresiones regulares tengo el siguiente bug: Alguna veces en el json aparece "unit":"". Es decir, la clave key no tiene valor, por lo que obtengo un array de solo 7 elementos (sin el elemento valor del unit) y consigo recuperar el value para ese name. ¿Alguien me podría ayudar con esto? Por ultimo, con la solucion con JSON, ¿es necesario usar ficheros? No se como será el manejo de ficheros en el sistema donde va a funcionar este python. Gracias y un saludo El 3 de junio de 2014, 22:53, Miguel Angel Rodriguez escribió: > Este es un ejemplo de lo que recibo: > > {"format":"JSON","result":{"devices":[{"key":"SCGDE1BA: > 180340320","channels":[{"name":"PF","unit":"","meta":"PF"," > value":"1.000"},{"name":"P-WSpt","unit":"kW","meta":"P-WSpt","value":"935"}, > {"name":"Vac","unit":"V","meta":"Vac","value":"217.5"},{ > "name":"Iac","unit":"A","meta":"Iac","value":"513.8"},{" > name":"Pac","unit":"kW","meta":"Pac","value":"335.2"},{"name":"Qac","unit":"kV > Ar","meta":"Qac","value":"-1.0"},{"name":"Sac","unit":"kVA" > ,"meta":"Sac","value":"335.1"},{"name":"Fac","unit":"Hz"," > meta":"Fac","value":"49.950"},{"name":"ErrNoFirst","unit":"" > ,"meta":"ErrNoFirst","value":"0"},{" name":"P-WModFailStt","unit":" > ","meta":"P-WModFailStt","value":"Off"},{"name":"P- > WModStt","unit":"","meta":"P-WModStt","value":"Off"},{" > name":"Dsc","unit":"","meta":"Dsc","value":"---"},{"name":" > Firmware-9","unit":"","meta":"Firmware-9","value":" > "},{"name":"Cntry","unit":"","meta":"Cntry","value":"DE1"} > ,{"name":"Type","unit":"","meta":"Type","value":"SCG"},{" > name":"Mode","unit":"","meta":"Mode","value":"Operation"},{" > name":"Error","unit":"","meta":"Error","value":"---"}]}]},"version":"1.0" > > > > Quiero parsearlo para poder almacenar en unas variables que tengo los > values que aparecen en el JSON. De esta forma: > > Con la solucion con expresiones regulares en cada iteracion tengo lo > siguiente: > d_value = [name,(valor del name),unit,(valor del unit),meta,(valor del > meta),value,(valor del value)] > > En esa iteracion hago lo siguiente: > if d_value[1] == "PF": > mi_variable_PF = d_value[7] > if d_value[1] == "Fac": > mi_variable_Fac = d_value[7] > ..... > > No necesito todos los values, solo los que corresponden a unos > determinados name. > > Con la solucion con expresiones regulares tengo el siguiente bug: > Alguna veces en el json aparece "unit":"". Es decir, la clave key no > tiene valor, por lo que no consigo > > > El 3 de junio de 2014, 22:40, Flavio Danesse > escribió: > > Si quieres pasame un string de ejemplo que esté completo y dime que hacer >> con los values y te escribo la solución. >> >> >> El 3 de junio de 2014, 17:38, Flavio Danesse >> escribió: >> >> Lo que hago es tomar el string que tienes y guardarlo en un archivo como >>> texto plano pero luego lo cargo utilizando json con lo cual obtengo un >>> diccionario python. Para obtener las keys y values del diccionario solo >>> tienes que hacer diccionario.keys() y diccionario.values() o puedes hacer >>> también diccionario.items() lo cual te da la pareja key:value. >>> >>> En todos los casos obtendrás lista de keys, values o items. >>> >>> Ahora bien, el primer obstáculo está salvado, que era pasar el string a >>> un diccionario donde tienes parejas key-value. >>> >>> El segundo obstaculo es hacer recursividad dentro del diccionario para >>> seguir hacia adentro de la estructura obteniendo los diccionarios internos. >>> No es tan complicado, puedes comenzar con algo como: >>> >>> for key in diccionario.keys(): >>> valor = diccionario[key] >>> . . . lo que quieras con el key y lo que quieras con value aca >>> importa que tipo de dato es el value, porque por lo que veo tienes listas, >>> diccionarios, string, etc, utiliza type(valor) para operar sobre ellos >>> según su tipo. >>> >>> >>> >>> >>> El 3 de junio de 2014, 17:13, Miguel Angel Rodriguez >>> escribió: >>> >>> No entiendo que haces con archivo... >>>> >>>> Nunca he programado con json en python. >>>> >>>> ¿Como seria a partir de lo que indicas el parseo de los datos? Es >>>> decir, ¿Como seria el bucle que me iria dando el name y el value? >>>> >>>> >>>> >>>> >>>> 2014-06-03 22:08 GMT+02:00 Flavio Danesse : >>>> >>>> Voto por lo correcto que sería así: >>>>> >>>>> import os >>>>> import json >>>>> import codecs >>>>> >>>>> text = >>>>> '{"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320", etc >>>>> . . . >>>>> >>>>> path = "/tmp/x.json" >>>>> >>>>> archivo = open(path, "w") >>>>> archivo.write(text) >>>>> archivo.close() >>>>> >>>>> archivo = codecs.open(path, "r", "utf-8") >>>>> diccionario = json.JSONDecoder("utf-8").decode(archivo.read()) >>>>> >>>>> >>>>> El 3 de junio de 2014, 8:03, escribió: >>>>> >>>>> ejecutando esto: >>>>>> >>>>>> #!/usr/bin/python3 >>>>>> import re >>>>>> value_str = >>>>>> >>>>>> '{"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320","channels":[{"name":"PF","unit":"","meta":"PF","value":"1.000"},{"name":"P-WSpt","unit":"kW","meta":"P-WSpt","value":"935"},{"name":"Vac","unit":"V","meta":"Vac","value":"217.5"},{"name":"Iac","unit":"A","meta":"Iac","value":"513.8"},{"name":"Pac","unit":"kW","meta":"Pac","value":"335.2"},{"name":"Qac","unit":"kVAr","meta":"Qac","value":"-1.0"},{"name":"Sac","unit":"kVA","meta":"Sac","value":"335.1"},{"name":"Fac","unit":"Hz","meta":"Fac","value":"49.950"},{"name":"ErrNoFirst","unit":"","meta":"ErrNoFirst","value":"0"},{"name":"P-WModFailStt","unit":"","meta":"P-WModFailStt","value":"Off"},{"name":"P-WModStt","unit":"","meta":"P-WModStt","value":"Off"},{"name":"Dsc","unit":"","meta":"Dsc","value":"---"},{"name":"Firmware-9","unit":"","meta":"Firmware-9","value":""},{"name":"Cntry","unit":"","meta":"Cntry","value":"DE1"} >>>>>> >>>>>> ,{"name":"Type","unit":"","meta":"Type","value":"SCG"},{"name":"Mode","unit":"","meta":"Mode","value":"Operation"},{"name":"Error","unit":"","meta":"Error","value":"---"}]}]},"version":"1.0"' >>>>>> >>>>>> for channel_str in >>>>>> re.findall("\"name\":\"[A-Za-z0-9\-.]+\"",value_str): >>>>>> for channel_str1 in >>>>>> re.findall("\"value\":\"[A-Za-z0-9\-.]+\"",value_str): >>>>>> print ( channel_str + ";" + channel_str1 ) >>>>>> >>>>>> me da esto: >>>>>> >>>>>> "name":"Cntry";"value":"335.2" >>>>>> "name":"Cntry";"value":"-1.0" >>>>>> "name":"Cntry";"value":"335.1" >>>>>> "name":"Cntry";"value":"49.950" >>>>>> "name":"Cntry";"value":"0" >>>>>> "name":"Cntry";"value":"Off" >>>>>> "name":"Cntry";"value":"Off" >>>>>> "name":"Cntry";"value":"---" >>>>>> "name":"Cntry";"value":"DE1" >>>>>> "name":"Cntry";"value":"SCG" >>>>>> "name":"Cntry";"value":"Operation" >>>>>> "name":"Cntry";"value":"---" >>>>>> "name":"Type";"value":"1.000" >>>>>> "name":"Type";"value":"935" >>>>>> "name":"Type";"value":"217.5" >>>>>> "name":"Type";"value":"513.8" >>>>>> "name":"Type";"value":"335.2" >>>>>> "name":"Type";"value":"-1.0" >>>>>> "name":"Type";"value":"335.1" >>>>>> "name":"Type";"value":"49.950" >>>>>> >>>>>> >>>>>> te vale? >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> > Hola a todos, >>>>>> > >>>>>> > Estoy intentando parsear con Python una gran cadena que recibo en un >>>>>> > software de comunicaciones que estoy programando. >>>>>> > >>>>>> > La cadena que yo recibo es la siguiente: >>>>>> > >>>>>> > value_str = >>>>>> > >>>>>> {"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320","channels":[{"name":"PF","unit":"","meta":"PF","value":"1.000"},{"name":"P-WSpt","unit":"kW","meta":"P-WSpt","value":"935"}, >>>>>> > >>>>>> > >>>>>> {"name":"Vac","unit":"V","meta":"Vac","value":"217.5"},{"name":"Iac","unit":"A","meta":"Iac","value":"513.8"},{"name":"Pac","unit":"kW","meta":"Pac","value":"335.2"},{"name":"Qac","unit":"kV >>>>>> > >>>>>> > >>>>>> Ar","meta":"Qac","value":"-1.0"},{"name":"Sac","unit":"kVA","meta":"Sac","value":"335.1"},{"name":"Fac","unit":"Hz","meta":"Fac","value":"49.950"},{"name":"ErrNoFirst","unit":"","meta":"ErrNoFirst","value":"0"},{" >>>>>> > >>>>>> > >>>>>> name":"P-WModFailStt","unit":"","meta":"P-WModFailStt","value":"Off"},{"name":"P-WModStt","unit":"","meta":"P-WModStt","value":"Off"},{"name":"Dsc","unit":"","meta":"Dsc","value":"---"},{"name":"Firmware-9","unit":"","meta":"Firmware-9","value":" >>>>>> > "},{"name":"Cntry","unit":"","meta":"Cntry","value":"DE1"} >>>>>> > >>>>>> ,{"name":"Type","unit":"","meta":"Type","value":"SCG"},{"name":"Mode","unit":"","meta":"Mode","value":"Operation"},{"name":"Error","unit":"","meta":"Error","value":"---"}]}]},"version":"1.0" >>>>>> > >>>>>> > >>>>>> > Yo solo quiero quedarme con los name y value existente. >>>>>> > >>>>>> > LA forma en la que lo estoy intentando es la siguiente: >>>>>> > >>>>>> > for channel_str in re.findall("\"name\":\"[A-Za-z0-9\-. >>>>>> > ]+\",\"value\":\"[A-Za-z0-9\-. ]*\"",value_str): >>>>>> > d_value = re.findall("[A-Za-z0-9.\-]+",channel_str) >>>>>> > >>>>>> > Pero de esta forma no entra en el for. >>>>>> > >>>>>> > ¿Alguien me puede ayudar? >>>>>> > >>>>>> > Gracias y un saludo >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > -- >>>>>> > Miguel Ángel Rodríguez de Alba >>>>>> > 678304435 >>>>>> > marodal en gmail.com >>>>>> > _______________________________________________ >>>>>> > Python-es mailing list >>>>>> > Python-es en python.org >>>>>> > https://mail.python.org/mailman/listinfo/python-es >>>>>> > FAQ: http://python-es-faq.wikidot.com/ >>>>>> > >>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> Python-es mailing list >>>>>> Python-es en python.org >>>>>> https://mail.python.org/mailman/listinfo/python-es >>>>>> FAQ: http://python-es-faq.wikidot.com/ >>>>>> >>>>> >>>>> >>>>> _______________________________________________ >>>>> Python-es mailing list >>>>> Python-es en python.org >>>>> https://mail.python.org/mailman/listinfo/python-es >>>>> FAQ: http://python-es-faq.wikidot.com/ >>>>> >>>>> >>>> >>>> >>>> -- >>>> Miguel Ángel Rodríguez de Alba >>>> 678304435 >>>> marodal en gmail.com >>>> >>>> _______________________________________________ >>>> Python-es mailing list >>>> Python-es en python.org >>>> https://mail.python.org/mailman/listinfo/python-es >>>> FAQ: http://python-es-faq.wikidot.com/ >>>> >>>> >>> >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > > > -- > Miguel Ángel Rodríguez de Alba > 678304435 > marodal en gmail.com > -- Miguel Ángel Rodríguez de Alba 678304435 marodal en gmail.com ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From fdanesse en gmail.com Tue Jun 3 23:03:46 2014 From: fdanesse en gmail.com (Flavio Danesse) Date: Tue, 3 Jun 2014 18:03:46 -0300 Subject: [Python-es] Expresiones regulares In-Reply-To: References: <704038e702e0465d039664827a21bc9b.squirrel@correo.nodo50.org> Message-ID: ok, dame unos minutos, me pongo en esto y te aviso. El 3 de junio de 2014, 17:55, Miguel Angel Rodriguez escribió: > Este es un ejemplo de lo que recibo: > > {"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320","channels":[{"name":"PF","unit":"","meta":"PF","value":"1.000"},{"name":"P-WSpt","unit":"kW","meta":"P-WSpt","value":"935"}, > > {"name":"Vac","unit":"V","meta":"Vac","value":"217.5"},{"name":"Iac","unit":"A","meta":"Iac","value":"513.8"},{"name":"Pac","unit":"kW","meta":"Pac","value":"335.2"},{"name":"Qac","unit":"kV > > Ar","meta":"Qac","value":"-1.0"},{"name":"Sac","unit":"kVA","meta":"Sac","value":"335.1"},{"name":"Fac","unit":"Hz","meta":"Fac","value":"49.950"},{"name":"ErrNoFirst","unit":"","meta":"ErrNoFirst","value":"0"},{" > > name":"P-WModFailStt","unit":"","meta":"P-WModFailStt","value":"Off"},{"name":"P-WModStt","unit":"","meta":"P-WModStt","value":"Off"},{"name":"Dsc","unit":"","meta":"Dsc","value":"---"},{"name":"Firmware-9","unit":"","meta":"Firmware-9","value":" > "},{"name":"Cntry","unit":"","meta":"Cntry","value":"DE1"} > ,{"name":"Type","unit":"","meta":"Type","value":"SCG"},{"name":"Mode","unit":"","meta":"Mode","value":"Operation"},{"name":"Error","unit":"","meta":"Error","value":"---"}]}]},"version":"1.0" > > > > Quiero parsearlo para poder almacenar en unas variables que tengo los > values que aparecen en el JSON. De esta forma: > > Con la solucion con expresiones regulares en cada iteracion tengo lo > siguiente: > d_value = [name,(valor del name),unit,(valor del unit),meta,(valor del > meta),value,(valor del value)] > > En esa iteracion hago lo siguiente: > if d_value[1] == "PF": > mi_variable_PF = d_value[7] > if d_value[1] == "Fac": > mi_variable_Fac = d_value[7] > ..... > > No necesito todos los values, solo los que corresponden a unos > determinados name. > > Con la solucion con expresiones regulares tengo el siguiente bug: > Alguna veces en el json aparece "unit":"". Es decir, la clave key no > tiene valor, por lo que obtengo un array de solo 7 elementos (sin el > elemento valor del unit) y consigo recuperar el value para ese name. > ¿Alguien me podría ayudar con esto? > > Por ultimo, con la solucion con JSON, ¿es necesario usar ficheros? No se > como será el manejo de ficheros en el sistema donde va a funcionar este > python. > > > Gracias y un saludo > > > El 3 de junio de 2014, 22:53, Miguel Angel Rodriguez > escribió: > > Este es un ejemplo de lo que recibo: >> >> {"format":"JSON","result":{"devices":[{"key":"SCGDE1BA: >> 180340320","channels":[{"name":"PF","unit":"","meta":"PF"," >> value":"1.000"},{"name":"P-WSpt","unit":"kW","meta":"P-WSpt","value":"935"}, >> {"name":"Vac","unit":"V","meta":"Vac","value":"217.5"},{ >> "name":"Iac","unit":"A","meta":"Iac","value":"513.8"},{" >> name":"Pac","unit":"kW","meta":"Pac","value":"335.2"},{"name":"Qac","unit":"kV >> Ar","meta":"Qac","value":"-1.0"},{"name":"Sac","unit":"kVA" >> ,"meta":"Sac","value":"335.1"},{"name":"Fac","unit":"Hz"," >> meta":"Fac","value":"49.950"},{"name":"ErrNoFirst","unit":"" >> ,"meta":"ErrNoFirst","value":"0"},{" name":"P-WModFailStt","unit":" >> ","meta":"P-WModFailStt","value":"Off"},{"name":"P- >> WModStt","unit":"","meta":"P-WModStt","value":"Off"},{" >> name":"Dsc","unit":"","meta":"Dsc","value":"---"},{"name":" >> Firmware-9","unit":"","meta":"Firmware-9","value":" >> "},{"name":"Cntry","unit":"","meta":"Cntry","value":"DE1"} >> ,{"name":"Type","unit":"","meta":"Type","value":"SCG"},{" >> name":"Mode","unit":"","meta":"Mode","value":"Operation"},{" >> name":"Error","unit":"","meta":"Error","value":"---"}]}]},"version":"1.0" >> >> >> >> Quiero parsearlo para poder almacenar en unas variables que tengo los >> values que aparecen en el JSON. De esta forma: >> >> Con la solucion con expresiones regulares en cada iteracion tengo lo >> siguiente: >> d_value = [name,(valor del name),unit,(valor del unit),meta,(valor del >> meta),value,(valor del value)] >> >> En esa iteracion hago lo siguiente: >> if d_value[1] == "PF": >> mi_variable_PF = d_value[7] >> if d_value[1] == "Fac": >> mi_variable_Fac = d_value[7] >> ..... >> >> No necesito todos los values, solo los que corresponden a unos >> determinados name. >> >> Con la solucion con expresiones regulares tengo el siguiente bug: >> Alguna veces en el json aparece "unit":"". Es decir, la clave key no >> tiene valor, por lo que no consigo >> >> >> El 3 de junio de 2014, 22:40, Flavio Danesse >> escribió: >> >> Si quieres pasame un string de ejemplo que esté completo y dime que hacer >>> con los values y te escribo la solución. >>> >>> >>> El 3 de junio de 2014, 17:38, Flavio Danesse >>> escribió: >>> >>> Lo que hago es tomar el string que tienes y guardarlo en un archivo como >>>> texto plano pero luego lo cargo utilizando json con lo cual obtengo un >>>> diccionario python. Para obtener las keys y values del diccionario solo >>>> tienes que hacer diccionario.keys() y diccionario.values() o puedes hacer >>>> también diccionario.items() lo cual te da la pareja key:value. >>>> >>>> En todos los casos obtendrás lista de keys, values o items. >>>> >>>> Ahora bien, el primer obstáculo está salvado, que era pasar el string a >>>> un diccionario donde tienes parejas key-value. >>>> >>>> El segundo obstaculo es hacer recursividad dentro del diccionario para >>>> seguir hacia adentro de la estructura obteniendo los diccionarios internos. >>>> No es tan complicado, puedes comenzar con algo como: >>>> >>>> for key in diccionario.keys(): >>>> valor = diccionario[key] >>>> . . . lo que quieras con el key y lo que quieras con value aca >>>> importa que tipo de dato es el value, porque por lo que veo tienes listas, >>>> diccionarios, string, etc, utiliza type(valor) para operar sobre ellos >>>> según su tipo. >>>> >>>> >>>> >>>> >>>> El 3 de junio de 2014, 17:13, Miguel Angel Rodriguez >>> > escribió: >>>> >>>> No entiendo que haces con archivo... >>>>> >>>>> Nunca he programado con json en python. >>>>> >>>>> ¿Como seria a partir de lo que indicas el parseo de los datos? Es >>>>> decir, ¿Como seria el bucle que me iria dando el name y el value? >>>>> >>>>> >>>>> >>>>> >>>>> 2014-06-03 22:08 GMT+02:00 Flavio Danesse : >>>>> >>>>> Voto por lo correcto que sería así: >>>>>> >>>>>> import os >>>>>> import json >>>>>> import codecs >>>>>> >>>>>> text = >>>>>> '{"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320", etc >>>>>> . . . >>>>>> >>>>>> path = "/tmp/x.json" >>>>>> >>>>>> archivo = open(path, "w") >>>>>> archivo.write(text) >>>>>> archivo.close() >>>>>> >>>>>> archivo = codecs.open(path, "r", "utf-8") >>>>>> diccionario = json.JSONDecoder("utf-8").decode(archivo.read()) >>>>>> >>>>>> >>>>>> El 3 de junio de 2014, 8:03, escribió: >>>>>> >>>>>> ejecutando esto: >>>>>>> >>>>>>> #!/usr/bin/python3 >>>>>>> import re >>>>>>> value_str = >>>>>>> >>>>>>> '{"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320","channels":[{"name":"PF","unit":"","meta":"PF","value":"1.000"},{"name":"P-WSpt","unit":"kW","meta":"P-WSpt","value":"935"},{"name":"Vac","unit":"V","meta":"Vac","value":"217.5"},{"name":"Iac","unit":"A","meta":"Iac","value":"513.8"},{"name":"Pac","unit":"kW","meta":"Pac","value":"335.2"},{"name":"Qac","unit":"kVAr","meta":"Qac","value":"-1.0"},{"name":"Sac","unit":"kVA","meta":"Sac","value":"335.1"},{"name":"Fac","unit":"Hz","meta":"Fac","value":"49.950"},{"name":"ErrNoFirst","unit":"","meta":"ErrNoFirst","value":"0"},{"name":"P-WModFailStt","unit":"","meta":"P-WModFailStt","value":"Off"},{"name":"P-WModStt","unit":"","meta":"P-WModStt","value":"Off"},{"name":"Dsc","unit":"","meta":"Dsc","value":"---"},{"name":"Firmware-9","unit":"","meta":"Firmware-9","value":""},{"name":"Cntry","unit":"","meta":"Cntry","value":"DE1"} >>>>>>> >>>>>>> ,{"name":"Type","unit":"","meta":"Type","value":"SCG"},{"name":"Mode","unit":"","meta":"Mode","value":"Operation"},{"name":"Error","unit":"","meta":"Error","value":"---"}]}]},"version":"1.0"' >>>>>>> >>>>>>> for channel_str in >>>>>>> re.findall("\"name\":\"[A-Za-z0-9\-.]+\"",value_str): >>>>>>> for channel_str1 in >>>>>>> re.findall("\"value\":\"[A-Za-z0-9\-.]+\"",value_str): >>>>>>> print ( channel_str + ";" + channel_str1 ) >>>>>>> >>>>>>> me da esto: >>>>>>> >>>>>>> "name":"Cntry";"value":"335.2" >>>>>>> "name":"Cntry";"value":"-1.0" >>>>>>> "name":"Cntry";"value":"335.1" >>>>>>> "name":"Cntry";"value":"49.950" >>>>>>> "name":"Cntry";"value":"0" >>>>>>> "name":"Cntry";"value":"Off" >>>>>>> "name":"Cntry";"value":"Off" >>>>>>> "name":"Cntry";"value":"---" >>>>>>> "name":"Cntry";"value":"DE1" >>>>>>> "name":"Cntry";"value":"SCG" >>>>>>> "name":"Cntry";"value":"Operation" >>>>>>> "name":"Cntry";"value":"---" >>>>>>> "name":"Type";"value":"1.000" >>>>>>> "name":"Type";"value":"935" >>>>>>> "name":"Type";"value":"217.5" >>>>>>> "name":"Type";"value":"513.8" >>>>>>> "name":"Type";"value":"335.2" >>>>>>> "name":"Type";"value":"-1.0" >>>>>>> "name":"Type";"value":"335.1" >>>>>>> "name":"Type";"value":"49.950" >>>>>>> >>>>>>> >>>>>>> te vale? >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> > Hola a todos, >>>>>>> > >>>>>>> > Estoy intentando parsear con Python una gran cadena que recibo en >>>>>>> un >>>>>>> > software de comunicaciones que estoy programando. >>>>>>> > >>>>>>> > La cadena que yo recibo es la siguiente: >>>>>>> > >>>>>>> > value_str = >>>>>>> > >>>>>>> {"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320","channels":[{"name":"PF","unit":"","meta":"PF","value":"1.000"},{"name":"P-WSpt","unit":"kW","meta":"P-WSpt","value":"935"}, >>>>>>> > >>>>>>> > >>>>>>> {"name":"Vac","unit":"V","meta":"Vac","value":"217.5"},{"name":"Iac","unit":"A","meta":"Iac","value":"513.8"},{"name":"Pac","unit":"kW","meta":"Pac","value":"335.2"},{"name":"Qac","unit":"kV >>>>>>> > >>>>>>> > >>>>>>> Ar","meta":"Qac","value":"-1.0"},{"name":"Sac","unit":"kVA","meta":"Sac","value":"335.1"},{"name":"Fac","unit":"Hz","meta":"Fac","value":"49.950"},{"name":"ErrNoFirst","unit":"","meta":"ErrNoFirst","value":"0"},{" >>>>>>> > >>>>>>> > >>>>>>> name":"P-WModFailStt","unit":"","meta":"P-WModFailStt","value":"Off"},{"name":"P-WModStt","unit":"","meta":"P-WModStt","value":"Off"},{"name":"Dsc","unit":"","meta":"Dsc","value":"---"},{"name":"Firmware-9","unit":"","meta":"Firmware-9","value":" >>>>>>> > "},{"name":"Cntry","unit":"","meta":"Cntry","value":"DE1"} >>>>>>> > >>>>>>> ,{"name":"Type","unit":"","meta":"Type","value":"SCG"},{"name":"Mode","unit":"","meta":"Mode","value":"Operation"},{"name":"Error","unit":"","meta":"Error","value":"---"}]}]},"version":"1.0" >>>>>>> > >>>>>>> > >>>>>>> > Yo solo quiero quedarme con los name y value existente. >>>>>>> > >>>>>>> > LA forma en la que lo estoy intentando es la siguiente: >>>>>>> > >>>>>>> > for channel_str in re.findall("\"name\":\"[A-Za-z0-9\-. >>>>>>> > ]+\",\"value\":\"[A-Za-z0-9\-. ]*\"",value_str): >>>>>>> > d_value = re.findall("[A-Za-z0-9.\-]+",channel_str) >>>>>>> > >>>>>>> > Pero de esta forma no entra en el for. >>>>>>> > >>>>>>> > ¿Alguien me puede ayudar? >>>>>>> > >>>>>>> > Gracias y un saludo >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > -- >>>>>>> > Miguel Ángel Rodríguez de Alba >>>>>>> > 678304435 >>>>>>> > marodal en gmail.com >>>>>>> > _______________________________________________ >>>>>>> > Python-es mailing list >>>>>>> > Python-es en python.org >>>>>>> > https://mail.python.org/mailman/listinfo/python-es >>>>>>> > FAQ: http://python-es-faq.wikidot.com/ >>>>>>> > >>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> Python-es mailing list >>>>>>> Python-es en python.org >>>>>>> https://mail.python.org/mailman/listinfo/python-es >>>>>>> FAQ: http://python-es-faq.wikidot.com/ >>>>>>> >>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> Python-es mailing list >>>>>> Python-es en python.org >>>>>> https://mail.python.org/mailman/listinfo/python-es >>>>>> FAQ: http://python-es-faq.wikidot.com/ >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> Miguel Ángel Rodríguez de Alba >>>>> 678304435 >>>>> marodal en gmail.com >>>>> >>>>> _______________________________________________ >>>>> Python-es mailing list >>>>> Python-es en python.org >>>>> https://mail.python.org/mailman/listinfo/python-es >>>>> FAQ: http://python-es-faq.wikidot.com/ >>>>> >>>>> >>>> >>> >>> _______________________________________________ >>> Python-es mailing list >>> Python-es en python.org >>> https://mail.python.org/mailman/listinfo/python-es >>> FAQ: http://python-es-faq.wikidot.com/ >>> >>> >> >> >> -- >> Miguel Ángel Rodríguez de Alba >> 678304435 >> marodal en gmail.com >> > > > > -- > Miguel Ángel Rodríguez de Alba > 678304435 > marodal en gmail.com > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From sney2002 en gmail.com Wed Jun 4 00:56:27 2014 From: sney2002 en gmail.com (Jhonatan Sneider Salguero Villa) Date: Tue, 3 Jun 2014 17:56:27 -0500 Subject: [Python-es] Expresiones regulares In-Reply-To: References: <704038e702e0465d039664827a21bc9b.squirrel@correo.nodo50.org> Message-ID: Hola, por lo que veo el json esta mal formado (o le falta una parte a la cadena), para poder parsearlo hay que eliminar la parte sobrante: import json # remover la parte sobrante json_string = json_string = string.replace(',"version":"1.0" ', '}') data = json.loads(json_string) # si la cadena tiene la misma estructura siempre puedes hacer esto channels = data["result"]["devices"][0]["channels"] key_value = map(lambda a: a.items(), channels) con esto tienes una lista de listas con el formato [('value', valor_value), ('meta', valor_meta), ('name', valor_name), ('unit', valor_unit)] El 3 de junio de 2014, 15:55, Miguel Angel Rodriguez escribió: > Este es un ejemplo de lo que recibo: > > {"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320","channels":[{"name":"PF","unit":"","meta":"PF","value":"1.000"},{"name":"P-WSpt","unit":"kW","meta":"P-WSpt","value":"935"}, > > {"name":"Vac","unit":"V","meta":"Vac","value":"217.5"},{"name":"Iac","unit":"A","meta":"Iac","value":"513.8"},{"name":"Pac","unit":"kW","meta":"Pac","value":"335.2"},{"name":"Qac","unit":"kV > > Ar","meta":"Qac","value":"-1.0"},{"name":"Sac","unit":"kVA","meta":"Sac","value":"335.1"},{"name":"Fac","unit":"Hz","meta":"Fac","value":"49.950"},{"name":"ErrNoFirst","unit":"","meta":"ErrNoFirst","value":"0"},{" > > name":"P-WModFailStt","unit":"","meta":"P-WModFailStt","value":"Off"},{"name":"P-WModStt","unit":"","meta":"P-WModStt","value":"Off"},{"name":"Dsc","unit":"","meta":"Dsc","value":"---"},{"name":"Firmware-9","unit":"","meta":"Firmware-9","value":" > "},{"name":"Cntry","unit":"","meta":"Cntry","value":"DE1"} > ,{"name":"Type","unit":"","meta":"Type","value":"SCG"},{"name":"Mode","unit":"","meta":"Mode","value":"Operation"},{"name":"Error","unit":"","meta":"Error","value":"---"}]}]},"version":"1.0" > > > > Quiero parsearlo para poder almacenar en unas variables que tengo los > values que aparecen en el JSON. De esta forma: > > Con la solucion con expresiones regulares en cada iteracion tengo lo > siguiente: > d_value = [name,(valor del name),unit,(valor del unit),meta,(valor del > meta),value,(valor del value)] > > En esa iteracion hago lo siguiente: > if d_value[1] == "PF": > mi_variable_PF = d_value[7] > if d_value[1] == "Fac": > mi_variable_Fac = d_value[7] > ..... > > No necesito todos los values, solo los que corresponden a unos > determinados name. > > Con la solucion con expresiones regulares tengo el siguiente bug: > Alguna veces en el json aparece "unit":"". Es decir, la clave key no > tiene valor, por lo que obtengo un array de solo 7 elementos (sin el > elemento valor del unit) y consigo recuperar el value para ese name. > ¿Alguien me podría ayudar con esto? > > Por ultimo, con la solucion con JSON, ¿es necesario usar ficheros? No se > como será el manejo de ficheros en el sistema donde va a funcionar este > python. > > > Gracias y un saludo > > > El 3 de junio de 2014, 22:53, Miguel Angel Rodriguez > escribió: > > Este es un ejemplo de lo que recibo: >> >> {"format":"JSON","result":{"devices":[{"key":"SCGDE1BA: >> 180340320","channels":[{"name":"PF","unit":"","meta":"PF"," >> value":"1.000"},{"name":"P-WSpt","unit":"kW","meta":"P-WSpt","value":"935"}, >> {"name":"Vac","unit":"V","meta":"Vac","value":"217.5"},{ >> "name":"Iac","unit":"A","meta":"Iac","value":"513.8"},{" >> name":"Pac","unit":"kW","meta":"Pac","value":"335.2"},{"name":"Qac","unit":"kV >> Ar","meta":"Qac","value":"-1.0"},{"name":"Sac","unit":"kVA" >> ,"meta":"Sac","value":"335.1"},{"name":"Fac","unit":"Hz"," >> meta":"Fac","value":"49.950"},{"name":"ErrNoFirst","unit":"" >> ,"meta":"ErrNoFirst","value":"0"},{" name":"P-WModFailStt","unit":" >> ","meta":"P-WModFailStt","value":"Off"},{"name":"P- >> WModStt","unit":"","meta":"P-WModStt","value":"Off"},{" >> name":"Dsc","unit":"","meta":"Dsc","value":"---"},{"name":" >> Firmware-9","unit":"","meta":"Firmware-9","value":" >> "},{"name":"Cntry","unit":"","meta":"Cntry","value":"DE1"} >> ,{"name":"Type","unit":"","meta":"Type","value":"SCG"},{" >> name":"Mode","unit":"","meta":"Mode","value":"Operation"},{" >> name":"Error","unit":"","meta":"Error","value":"---"}]}]},"version":"1.0" >> >> >> >> Quiero parsearlo para poder almacenar en unas variables que tengo los >> values que aparecen en el JSON. De esta forma: >> >> Con la solucion con expresiones regulares en cada iteracion tengo lo >> siguiente: >> d_value = [name,(valor del name),unit,(valor del unit),meta,(valor del >> meta),value,(valor del value)] >> >> En esa iteracion hago lo siguiente: >> if d_value[1] == "PF": >> mi_variable_PF = d_value[7] >> if d_value[1] == "Fac": >> mi_variable_Fac = d_value[7] >> ..... >> >> No necesito todos los values, solo los que corresponden a unos >> determinados name. >> >> Con la solucion con expresiones regulares tengo el siguiente bug: >> Alguna veces en el json aparece "unit":"". Es decir, la clave key no >> tiene valor, por lo que no consigo >> >> >> El 3 de junio de 2014, 22:40, Flavio Danesse >> escribió: >> >> Si quieres pasame un string de ejemplo que esté completo y dime que hacer >>> con los values y te escribo la solución. >>> >>> >>> El 3 de junio de 2014, 17:38, Flavio Danesse >>> escribió: >>> >>> Lo que hago es tomar el string que tienes y guardarlo en un archivo como >>>> texto plano pero luego lo cargo utilizando json con lo cual obtengo un >>>> diccionario python. Para obtener las keys y values del diccionario solo >>>> tienes que hacer diccionario.keys() y diccionario.values() o puedes hacer >>>> también diccionario.items() lo cual te da la pareja key:value. >>>> >>>> En todos los casos obtendrás lista de keys, values o items. >>>> >>>> Ahora bien, el primer obstáculo está salvado, que era pasar el string a >>>> un diccionario donde tienes parejas key-value. >>>> >>>> El segundo obstaculo es hacer recursividad dentro del diccionario para >>>> seguir hacia adentro de la estructura obteniendo los diccionarios internos. >>>> No es tan complicado, puedes comenzar con algo como: >>>> >>>> for key in diccionario.keys(): >>>> valor = diccionario[key] >>>> . . . lo que quieras con el key y lo que quieras con value aca >>>> importa que tipo de dato es el value, porque por lo que veo tienes listas, >>>> diccionarios, string, etc, utiliza type(valor) para operar sobre ellos >>>> según su tipo. >>>> >>>> >>>> >>>> >>>> El 3 de junio de 2014, 17:13, Miguel Angel Rodriguez >>> > escribió: >>>> >>>> No entiendo que haces con archivo... >>>>> >>>>> Nunca he programado con json en python. >>>>> >>>>> ¿Como seria a partir de lo que indicas el parseo de los datos? Es >>>>> decir, ¿Como seria el bucle que me iria dando el name y el value? >>>>> >>>>> >>>>> >>>>> >>>>> 2014-06-03 22:08 GMT+02:00 Flavio Danesse : >>>>> >>>>> Voto por lo correcto que sería así: >>>>>> >>>>>> import os >>>>>> import json >>>>>> import codecs >>>>>> >>>>>> text = >>>>>> '{"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320", etc >>>>>> . . . >>>>>> >>>>>> path = "/tmp/x.json" >>>>>> >>>>>> archivo = open(path, "w") >>>>>> archivo.write(text) >>>>>> archivo.close() >>>>>> >>>>>> archivo = codecs.open(path, "r", "utf-8") >>>>>> diccionario = json.JSONDecoder("utf-8").decode(archivo.read()) >>>>>> >>>>>> >>>>>> El 3 de junio de 2014, 8:03, escribió: >>>>>> >>>>>> ejecutando esto: >>>>>>> >>>>>>> #!/usr/bin/python3 >>>>>>> import re >>>>>>> value_str = >>>>>>> >>>>>>> '{"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320","channels":[{"name":"PF","unit":"","meta":"PF","value":"1.000"},{"name":"P-WSpt","unit":"kW","meta":"P-WSpt","value":"935"},{"name":"Vac","unit":"V","meta":"Vac","value":"217.5"},{"name":"Iac","unit":"A","meta":"Iac","value":"513.8"},{"name":"Pac","unit":"kW","meta":"Pac","value":"335.2"},{"name":"Qac","unit":"kVAr","meta":"Qac","value":"-1.0"},{"name":"Sac","unit":"kVA","meta":"Sac","value":"335.1"},{"name":"Fac","unit":"Hz","meta":"Fac","value":"49.950"},{"name":"ErrNoFirst","unit":"","meta":"ErrNoFirst","value":"0"},{"name":"P-WModFailStt","unit":"","meta":"P-WModFailStt","value":"Off"},{"name":"P-WModStt","unit":"","meta":"P-WModStt","value":"Off"},{"name":"Dsc","unit":"","meta":"Dsc","value":"---"},{"name":"Firmware-9","unit":"","meta":"Firmware-9","value":""},{"name":"Cntry","unit":"","meta":"Cntry","value":"DE1"} >>>>>>> >>>>>>> ,{"name":"Type","unit":"","meta":"Type","value":"SCG"},{"name":"Mode","unit":"","meta":"Mode","value":"Operation"},{"name":"Error","unit":"","meta":"Error","value":"---"}]}]},"version":"1.0"' >>>>>>> >>>>>>> for channel_str in >>>>>>> re.findall("\"name\":\"[A-Za-z0-9\-.]+\"",value_str): >>>>>>> for channel_str1 in >>>>>>> re.findall("\"value\":\"[A-Za-z0-9\-.]+\"",value_str): >>>>>>> print ( channel_str + ";" + channel_str1 ) >>>>>>> >>>>>>> me da esto: >>>>>>> >>>>>>> "name":"Cntry";"value":"335.2" >>>>>>> "name":"Cntry";"value":"-1.0" >>>>>>> "name":"Cntry";"value":"335.1" >>>>>>> "name":"Cntry";"value":"49.950" >>>>>>> "name":"Cntry";"value":"0" >>>>>>> "name":"Cntry";"value":"Off" >>>>>>> "name":"Cntry";"value":"Off" >>>>>>> "name":"Cntry";"value":"---" >>>>>>> "name":"Cntry";"value":"DE1" >>>>>>> "name":"Cntry";"value":"SCG" >>>>>>> "name":"Cntry";"value":"Operation" >>>>>>> "name":"Cntry";"value":"---" >>>>>>> "name":"Type";"value":"1.000" >>>>>>> "name":"Type";"value":"935" >>>>>>> "name":"Type";"value":"217.5" >>>>>>> "name":"Type";"value":"513.8" >>>>>>> "name":"Type";"value":"335.2" >>>>>>> "name":"Type";"value":"-1.0" >>>>>>> "name":"Type";"value":"335.1" >>>>>>> "name":"Type";"value":"49.950" >>>>>>> >>>>>>> >>>>>>> te vale? >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> > Hola a todos, >>>>>>> > >>>>>>> > Estoy intentando parsear con Python una gran cadena que recibo en >>>>>>> un >>>>>>> > software de comunicaciones que estoy programando. >>>>>>> > >>>>>>> > La cadena que yo recibo es la siguiente: >>>>>>> > >>>>>>> > value_str = >>>>>>> > >>>>>>> {"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320","channels":[{"name":"PF","unit":"","meta":"PF","value":"1.000"},{"name":"P-WSpt","unit":"kW","meta":"P-WSpt","value":"935"}, >>>>>>> > >>>>>>> > >>>>>>> {"name":"Vac","unit":"V","meta":"Vac","value":"217.5"},{"name":"Iac","unit":"A","meta":"Iac","value":"513.8"},{"name":"Pac","unit":"kW","meta":"Pac","value":"335.2"},{"name":"Qac","unit":"kV >>>>>>> > >>>>>>> > >>>>>>> Ar","meta":"Qac","value":"-1.0"},{"name":"Sac","unit":"kVA","meta":"Sac","value":"335.1"},{"name":"Fac","unit":"Hz","meta":"Fac","value":"49.950"},{"name":"ErrNoFirst","unit":"","meta":"ErrNoFirst","value":"0"},{" >>>>>>> > >>>>>>> > >>>>>>> name":"P-WModFailStt","unit":"","meta":"P-WModFailStt","value":"Off"},{"name":"P-WModStt","unit":"","meta":"P-WModStt","value":"Off"},{"name":"Dsc","unit":"","meta":"Dsc","value":"---"},{"name":"Firmware-9","unit":"","meta":"Firmware-9","value":" >>>>>>> > "},{"name":"Cntry","unit":"","meta":"Cntry","value":"DE1"} >>>>>>> > >>>>>>> ,{"name":"Type","unit":"","meta":"Type","value":"SCG"},{"name":"Mode","unit":"","meta":"Mode","value":"Operation"},{"name":"Error","unit":"","meta":"Error","value":"---"}]}]},"version":"1.0" >>>>>>> > >>>>>>> > >>>>>>> > Yo solo quiero quedarme con los name y value existente. >>>>>>> > >>>>>>> > LA forma en la que lo estoy intentando es la siguiente: >>>>>>> > >>>>>>> > for channel_str in re.findall("\"name\":\"[A-Za-z0-9\-. >>>>>>> > ]+\",\"value\":\"[A-Za-z0-9\-. ]*\"",value_str): >>>>>>> > d_value = re.findall("[A-Za-z0-9.\-]+",channel_str) >>>>>>> > >>>>>>> > Pero de esta forma no entra en el for. >>>>>>> > >>>>>>> > ¿Alguien me puede ayudar? >>>>>>> > >>>>>>> > Gracias y un saludo >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > -- >>>>>>> > Miguel Ángel Rodríguez de Alba >>>>>>> > 678304435 >>>>>>> > marodal en gmail.com >>>>>>> > _______________________________________________ >>>>>>> > Python-es mailing list >>>>>>> > Python-es en python.org >>>>>>> > https://mail.python.org/mailman/listinfo/python-es >>>>>>> > FAQ: http://python-es-faq.wikidot.com/ >>>>>>> > >>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> Python-es mailing list >>>>>>> Python-es en python.org >>>>>>> https://mail.python.org/mailman/listinfo/python-es >>>>>>> FAQ: http://python-es-faq.wikidot.com/ >>>>>>> >>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> Python-es mailing list >>>>>> Python-es en python.org >>>>>> https://mail.python.org/mailman/listinfo/python-es >>>>>> FAQ: http://python-es-faq.wikidot.com/ >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> Miguel Ángel Rodríguez de Alba >>>>> 678304435 >>>>> marodal en gmail.com >>>>> >>>>> _______________________________________________ >>>>> Python-es mailing list >>>>> Python-es en python.org >>>>> https://mail.python.org/mailman/listinfo/python-es >>>>> FAQ: http://python-es-faq.wikidot.com/ >>>>> >>>>> >>>> >>> >>> _______________________________________________ >>> Python-es mailing list >>> Python-es en python.org >>> https://mail.python.org/mailman/listinfo/python-es >>> FAQ: http://python-es-faq.wikidot.com/ >>> >>> >> >> >> -- >> Miguel Ángel Rodríguez de Alba >> 678304435 >> marodal en gmail.com >> > > > > -- > Miguel Ángel Rodríguez de Alba > 678304435 > marodal en gmail.com > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From fdanesse en gmail.com Wed Jun 4 01:01:14 2014 From: fdanesse en gmail.com (Flavio Danesse) Date: Tue, 3 Jun 2014 20:01:14 -0300 Subject: [Python-es] Expresiones regulares In-Reply-To: References: <704038e702e0465d039664827a21bc9b.squirrel@correo.nodo50.org> Message-ID: Solucionado, dejo adjunto. El 3 de junio de 2014, 19:56, Jhonatan Sneider Salguero Villa < sney2002 en gmail.com> escribió: > Hola, > > por lo que veo el json esta mal formado (o le falta una parte a la > cadena), para poder parsearlo hay que eliminar la parte sobrante: > > import json > > # remover la parte sobrante > json_string = json_string = string.replace(',"version":"1.0" ', '}') > > data = json.loads(json_string) > > # si la cadena tiene la misma estructura siempre puedes hacer esto > channels = data["result"]["devices"][0]["channels"] > > key_value = map(lambda a: a.items(), channels) > > con esto tienes una lista de listas con el formato > > [('value', valor_value), ('meta', valor_meta), ('name', valor_name), > ('unit', valor_unit)] > > > El 3 de junio de 2014, 15:55, Miguel Angel Rodriguez > escribió: > > Este es un ejemplo de lo que recibo: >> >> {"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320","channels":[{"name":"PF","unit":"","meta":"PF","value":"1.000"},{"name":"P-WSpt","unit":"kW","meta":"P-WSpt","value":"935"}, >> >> {"name":"Vac","unit":"V","meta":"Vac","value":"217.5"},{"name":"Iac","unit":"A","meta":"Iac","value":"513.8"},{"name":"Pac","unit":"kW","meta":"Pac","value":"335.2"},{"name":"Qac","unit":"kV >> >> Ar","meta":"Qac","value":"-1.0"},{"name":"Sac","unit":"kVA","meta":"Sac","value":"335.1"},{"name":"Fac","unit":"Hz","meta":"Fac","value":"49.950"},{"name":"ErrNoFirst","unit":"","meta":"ErrNoFirst","value":"0"},{" >> >> name":"P-WModFailStt","unit":"","meta":"P-WModFailStt","value":"Off"},{"name":"P-WModStt","unit":"","meta":"P-WModStt","value":"Off"},{"name":"Dsc","unit":"","meta":"Dsc","value":"---"},{"name":"Firmware-9","unit":"","meta":"Firmware-9","value":" >> "},{"name":"Cntry","unit":"","meta":"Cntry","value":"DE1"} >> ,{"name":"Type","unit":"","meta":"Type","value":"SCG"},{"name":"Mode","unit":"","meta":"Mode","value":"Operation"},{"name":"Error","unit":"","meta":"Error","value":"---"}]}]},"version":"1.0" >> >> >> >> Quiero parsearlo para poder almacenar en unas variables que tengo los >> values que aparecen en el JSON. De esta forma: >> >> Con la solucion con expresiones regulares en cada iteracion tengo lo >> siguiente: >> d_value = [name,(valor del name),unit,(valor del unit),meta,(valor del >> meta),value,(valor del value)] >> >> En esa iteracion hago lo siguiente: >> if d_value[1] == "PF": >> mi_variable_PF = d_value[7] >> if d_value[1] == "Fac": >> mi_variable_Fac = d_value[7] >> ..... >> >> No necesito todos los values, solo los que corresponden a unos >> determinados name. >> >> Con la solucion con expresiones regulares tengo el siguiente bug: >> Alguna veces en el json aparece "unit":"". Es decir, la clave key no >> tiene valor, por lo que obtengo un array de solo 7 elementos (sin el >> elemento valor del unit) y consigo recuperar el value para ese name. >> ¿Alguien me podría ayudar con esto? >> >> Por ultimo, con la solucion con JSON, ¿es necesario usar ficheros? No se >> como será el manejo de ficheros en el sistema donde va a funcionar este >> python. >> >> >> Gracias y un saludo >> >> >> El 3 de junio de 2014, 22:53, Miguel Angel Rodriguez >> escribió: >> >> Este es un ejemplo de lo que recibo: >>> >>> {"format":"JSON","result":{"devices":[{"key":"SCGDE1BA: >>> 180340320","channels":[{"name":"PF","unit":"","meta":"PF"," >>> value":"1.000"},{"name":"P-WSpt","unit":"kW","meta":"P-WSpt","value":"935"}, >>> {"name":"Vac","unit":"V","meta":"Vac","value":"217.5"},{ >>> "name":"Iac","unit":"A","meta":"Iac","value":"513.8"},{" >>> name":"Pac","unit":"kW","meta":"Pac","value":"335.2"},{"name":"Qac","unit":"kV >>> Ar","meta":"Qac","value":"-1.0"},{"name":"Sac","unit":"kVA" >>> ,"meta":"Sac","value":"335.1"},{"name":"Fac","unit":"Hz"," >>> meta":"Fac","value":"49.950"},{"name":"ErrNoFirst","unit":"" >>> ,"meta":"ErrNoFirst","value":"0"},{" >>> name":"P-WModFailStt","unit":"","meta":"P-WModFailStt"," >>> value":"Off"},{"name":"P-WModStt","unit":"","meta":"P- >>> WModStt","value":"Off"},{"name":"Dsc","unit":"","meta":" >>> Dsc","value":"---"},{"name":"Firmware-9","unit":"","meta":"Firmware-9","value":" >>> "},{"name":"Cntry","unit":"","meta":"Cntry","value":"DE1"} >>> ,{"name":"Type","unit":"","meta":"Type","value":"SCG"},{" >>> name":"Mode","unit":"","meta":"Mode","value":"Operation"},{" >>> name":"Error","unit":"","meta":"Error","value":"---"}]}]},"version":"1.0" >>> >>> >>> >>> Quiero parsearlo para poder almacenar en unas variables que tengo los >>> values que aparecen en el JSON. De esta forma: >>> >>> Con la solucion con expresiones regulares en cada iteracion tengo lo >>> siguiente: >>> d_value = [name,(valor del name),unit,(valor del unit),meta,(valor del >>> meta),value,(valor del value)] >>> >>> En esa iteracion hago lo siguiente: >>> if d_value[1] == "PF": >>> mi_variable_PF = d_value[7] >>> if d_value[1] == "Fac": >>> mi_variable_Fac = d_value[7] >>> ..... >>> >>> No necesito todos los values, solo los que corresponden a unos >>> determinados name. >>> >>> Con la solucion con expresiones regulares tengo el siguiente bug: >>> Alguna veces en el json aparece "unit":"". Es decir, la clave key no >>> tiene valor, por lo que no consigo >>> >>> >>> El 3 de junio de 2014, 22:40, Flavio Danesse >>> escribió: >>> >>> Si quieres pasame un string de ejemplo que esté completo y dime que >>>> hacer con los values y te escribo la solución. >>>> >>>> >>>> El 3 de junio de 2014, 17:38, Flavio Danesse >>>> escribió: >>>> >>>> Lo que hago es tomar el string que tienes y guardarlo en un archivo >>>>> como texto plano pero luego lo cargo utilizando json con lo cual obtengo un >>>>> diccionario python. Para obtener las keys y values del diccionario solo >>>>> tienes que hacer diccionario.keys() y diccionario.values() o puedes hacer >>>>> también diccionario.items() lo cual te da la pareja key:value. >>>>> >>>>> En todos los casos obtendrás lista de keys, values o items. >>>>> >>>>> Ahora bien, el primer obstáculo está salvado, que era pasar el string >>>>> a un diccionario donde tienes parejas key-value. >>>>> >>>>> El segundo obstaculo es hacer recursividad dentro del diccionario para >>>>> seguir hacia adentro de la estructura obteniendo los diccionarios internos. >>>>> No es tan complicado, puedes comenzar con algo como: >>>>> >>>>> for key in diccionario.keys(): >>>>> valor = diccionario[key] >>>>> . . . lo que quieras con el key y lo que quieras con value aca >>>>> importa que tipo de dato es el value, porque por lo que veo tienes listas, >>>>> diccionarios, string, etc, utiliza type(valor) para operar sobre ellos >>>>> según su tipo. >>>>> >>>>> >>>>> >>>>> >>>>> El 3 de junio de 2014, 17:13, Miguel Angel Rodriguez < >>>>> marodal en gmail.com> escribió: >>>>> >>>>> No entiendo que haces con archivo... >>>>>> >>>>>> Nunca he programado con json en python. >>>>>> >>>>>> ¿Como seria a partir de lo que indicas el parseo de los datos? Es >>>>>> decir, ¿Como seria el bucle que me iria dando el name y el value? >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> 2014-06-03 22:08 GMT+02:00 Flavio Danesse : >>>>>> >>>>>> Voto por lo correcto que sería así: >>>>>>> >>>>>>> import os >>>>>>> import json >>>>>>> import codecs >>>>>>> >>>>>>> text = >>>>>>> '{"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320", etc >>>>>>> . . . >>>>>>> >>>>>>> path = "/tmp/x.json" >>>>>>> >>>>>>> archivo = open(path, "w") >>>>>>> archivo.write(text) >>>>>>> archivo.close() >>>>>>> >>>>>>> archivo = codecs.open(path, "r", "utf-8") >>>>>>> diccionario = json.JSONDecoder("utf-8").decode(archivo.read()) >>>>>>> >>>>>>> >>>>>>> El 3 de junio de 2014, 8:03, escribió: >>>>>>> >>>>>>> ejecutando esto: >>>>>>>> >>>>>>>> #!/usr/bin/python3 >>>>>>>> import re >>>>>>>> value_str = >>>>>>>> >>>>>>>> '{"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320","channels":[{"name":"PF","unit":"","meta":"PF","value":"1.000"},{"name":"P-WSpt","unit":"kW","meta":"P-WSpt","value":"935"},{"name":"Vac","unit":"V","meta":"Vac","value":"217.5"},{"name":"Iac","unit":"A","meta":"Iac","value":"513.8"},{"name":"Pac","unit":"kW","meta":"Pac","value":"335.2"},{"name":"Qac","unit":"kVAr","meta":"Qac","value":"-1.0"},{"name":"Sac","unit":"kVA","meta":"Sac","value":"335.1"},{"name":"Fac","unit":"Hz","meta":"Fac","value":"49.950"},{"name":"ErrNoFirst","unit":"","meta":"ErrNoFirst","value":"0"},{"name":"P-WModFailStt","unit":"","meta":"P-WModFailStt","value":"Off"},{"name":"P-WModStt","unit":"","meta":"P-WModStt","value":"Off"},{"name":"Dsc","unit":"","meta":"Dsc","value":"---"},{"name":"Firmware-9","unit":"","meta":"Firmware-9","value":""},{"name":"Cntry","unit":"","meta":"Cntry","value":"DE1"} >>>>>>>> >>>>>>>> ,{"name":"Type","unit":"","meta":"Type","value":"SCG"},{"name":"Mode","unit":"","meta":"Mode","value":"Operation"},{"name":"Error","unit":"","meta":"Error","value":"---"}]}]},"version":"1.0"' >>>>>>>> >>>>>>>> for channel_str in >>>>>>>> re.findall("\"name\":\"[A-Za-z0-9\-.]+\"",value_str): >>>>>>>> for channel_str1 in >>>>>>>> re.findall("\"value\":\"[A-Za-z0-9\-.]+\"",value_str): >>>>>>>> print ( channel_str + ";" + channel_str1 ) >>>>>>>> >>>>>>>> me da esto: >>>>>>>> >>>>>>>> "name":"Cntry";"value":"335.2" >>>>>>>> "name":"Cntry";"value":"-1.0" >>>>>>>> "name":"Cntry";"value":"335.1" >>>>>>>> "name":"Cntry";"value":"49.950" >>>>>>>> "name":"Cntry";"value":"0" >>>>>>>> "name":"Cntry";"value":"Off" >>>>>>>> "name":"Cntry";"value":"Off" >>>>>>>> "name":"Cntry";"value":"---" >>>>>>>> "name":"Cntry";"value":"DE1" >>>>>>>> "name":"Cntry";"value":"SCG" >>>>>>>> "name":"Cntry";"value":"Operation" >>>>>>>> "name":"Cntry";"value":"---" >>>>>>>> "name":"Type";"value":"1.000" >>>>>>>> "name":"Type";"value":"935" >>>>>>>> "name":"Type";"value":"217.5" >>>>>>>> "name":"Type";"value":"513.8" >>>>>>>> "name":"Type";"value":"335.2" >>>>>>>> "name":"Type";"value":"-1.0" >>>>>>>> "name":"Type";"value":"335.1" >>>>>>>> "name":"Type";"value":"49.950" >>>>>>>> >>>>>>>> >>>>>>>> te vale? >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> > Hola a todos, >>>>>>>> > >>>>>>>> > Estoy intentando parsear con Python una gran cadena que recibo en >>>>>>>> un >>>>>>>> > software de comunicaciones que estoy programando. >>>>>>>> > >>>>>>>> > La cadena que yo recibo es la siguiente: >>>>>>>> > >>>>>>>> > value_str = >>>>>>>> > >>>>>>>> {"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320","channels":[{"name":"PF","unit":"","meta":"PF","value":"1.000"},{"name":"P-WSpt","unit":"kW","meta":"P-WSpt","value":"935"}, >>>>>>>> > >>>>>>>> > >>>>>>>> {"name":"Vac","unit":"V","meta":"Vac","value":"217.5"},{"name":"Iac","unit":"A","meta":"Iac","value":"513.8"},{"name":"Pac","unit":"kW","meta":"Pac","value":"335.2"},{"name":"Qac","unit":"kV >>>>>>>> > >>>>>>>> > >>>>>>>> Ar","meta":"Qac","value":"-1.0"},{"name":"Sac","unit":"kVA","meta":"Sac","value":"335.1"},{"name":"Fac","unit":"Hz","meta":"Fac","value":"49.950"},{"name":"ErrNoFirst","unit":"","meta":"ErrNoFirst","value":"0"},{" >>>>>>>> > >>>>>>>> > >>>>>>>> name":"P-WModFailStt","unit":"","meta":"P-WModFailStt","value":"Off"},{"name":"P-WModStt","unit":"","meta":"P-WModStt","value":"Off"},{"name":"Dsc","unit":"","meta":"Dsc","value":"---"},{"name":"Firmware-9","unit":"","meta":"Firmware-9","value":" >>>>>>>> > "},{"name":"Cntry","unit":"","meta":"Cntry","value":"DE1"} >>>>>>>> > >>>>>>>> ,{"name":"Type","unit":"","meta":"Type","value":"SCG"},{"name":"Mode","unit":"","meta":"Mode","value":"Operation"},{"name":"Error","unit":"","meta":"Error","value":"---"}]}]},"version":"1.0" >>>>>>>> > >>>>>>>> > >>>>>>>> > Yo solo quiero quedarme con los name y value existente. >>>>>>>> > >>>>>>>> > LA forma en la que lo estoy intentando es la siguiente: >>>>>>>> > >>>>>>>> > for channel_str in re.findall("\"name\":\"[A-Za-z0-9\-. >>>>>>>> > ]+\",\"value\":\"[A-Za-z0-9\-. ]*\"",value_str): >>>>>>>> > d_value = re.findall("[A-Za-z0-9.\-]+",channel_str) >>>>>>>> > >>>>>>>> > Pero de esta forma no entra en el for. >>>>>>>> > >>>>>>>> > ¿Alguien me puede ayudar? >>>>>>>> > >>>>>>>> > Gracias y un saludo >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> > -- >>>>>>>> > Miguel Ángel Rodríguez de Alba >>>>>>>> > 678304435 >>>>>>>> > marodal en gmail.com >>>>>>>> > _______________________________________________ >>>>>>>> > Python-es mailing list >>>>>>>> > Python-es en python.org >>>>>>>> > https://mail.python.org/mailman/listinfo/python-es >>>>>>>> > FAQ: http://python-es-faq.wikidot.com/ >>>>>>>> > >>>>>>>> >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> Python-es mailing list >>>>>>>> Python-es en python.org >>>>>>>> https://mail.python.org/mailman/listinfo/python-es >>>>>>>> FAQ: http://python-es-faq.wikidot.com/ >>>>>>>> >>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> Python-es mailing list >>>>>>> Python-es en python.org >>>>>>> https://mail.python.org/mailman/listinfo/python-es >>>>>>> FAQ: http://python-es-faq.wikidot.com/ >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Miguel Ángel Rodríguez de Alba >>>>>> 678304435 >>>>>> marodal en gmail.com >>>>>> >>>>>> _______________________________________________ >>>>>> Python-es mailing list >>>>>> Python-es en python.org >>>>>> https://mail.python.org/mailman/listinfo/python-es >>>>>> FAQ: http://python-es-faq.wikidot.com/ >>>>>> >>>>>> >>>>> >>>> >>>> _______________________________________________ >>>> Python-es mailing list >>>> Python-es en python.org >>>> https://mail.python.org/mailman/listinfo/python-es >>>> FAQ: http://python-es-faq.wikidot.com/ >>>> >>>> >>> >>> >>> -- >>> Miguel Ángel Rodríguez de Alba >>> 678304435 >>> marodal en gmail.com >>> >> >> >> >> -- >> Miguel Ángel Rodríguez de Alba >> 678304435 >> marodal en gmail.com >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: ------------ próxima parte ------------ A non-text attachment was scrubbed... Name: parse_json.py Type: text/x-python Size: 2950 bytes Desc: no disponible URL: From carlos.zun en gmail.com Wed Jun 4 02:47:55 2014 From: carlos.zun en gmail.com (Carlos Zuniga) Date: Tue, 3 Jun 2014 19:47:55 -0500 Subject: [Python-es] =?utf-8?q?Micro_Python=2C_implementaci=C3=B3n_peque?= =?utf-8?q?=C3=B1a_y_eficiente_de_Python_3?= Message-ID: La noticia: https://mail.python.org/pipermail/python-list/2014-June/672994.html Probablemente la idea de aplicaciones Python en dispositivos Android deje de ser tan inviable ahora :) Saludos -- A menudo unas pocas horas de "Prueba y error" podrán ahorrarte minutos de leer manuales. From carlos.zun en gmail.com Wed Jun 4 02:52:35 2014 From: carlos.zun en gmail.com (Carlos Zuniga) Date: Tue, 3 Jun 2014 19:52:35 -0500 Subject: [Python-es] Expresiones regulares In-Reply-To: References: Message-ID: 2014-06-03 4:56 GMT-05:00 Miguel Angel Rodriguez : > En principio necesito hacerlo con expresiones regulares. ¿Lo veis muy > complicado? Se puede saber por qué? 2014-06-03 15:13 GMT-05:00 Miguel Angel Rodriguez : > > Nunca he programado con json en python. No hay mejor razón para comenzar ahora ;) Saludos -- A menudo unas pocas horas de "Prueba y error" podrán ahorrarte minutos de leer manuales. From agtugo en gmail.com Wed Jun 4 16:09:55 2014 From: agtugo en gmail.com (AGTUGO) Date: Wed, 4 Jun 2014 09:09:55 -0500 Subject: [Python-es] =?utf-8?q?Micro_Python=2C_implementaci=C3=B3n_peque?= =?utf-8?q?=C3=B1a_y_eficiente_de_Python_3?= In-Reply-To: References: Message-ID: Excelente aviso. Tal vez veamos una transición suave a desempeño mientras se mantiene alto nivel en el lenguaje, algo así como Julia. 2014-06-03 19:47 GMT-05:00 Carlos Zuniga : > La noticia: > https://mail.python.org/pipermail/python-list/2014-June/672994.html > > Probablemente la idea de aplicaciones Python en dispositivos Android > deje de ser tan inviable ahora :) > > > Saludos > -- > A menudo unas pocas horas de "Prueba y error" podrán ahorrarte minutos > de leer manuales. > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > -- Arturo Muñoz Tolosa ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From agtugo en gmail.com Wed Jun 4 16:12:21 2014 From: agtugo en gmail.com (AGTUGO) Date: Wed, 4 Jun 2014 09:12:21 -0500 Subject: [Python-es] =?utf-8?q?Micro_Python=2C_implementaci=C3=B3n_peque?= =?utf-8?q?=C3=B1a_y_eficiente_de_Python_3?= In-Reply-To: References: Message-ID: Visité la página y parece mas orientada a sistemas embebidos. Lo cual también suena excelente. 2014-06-04 9:09 GMT-05:00 AGTUGO : > Excelente aviso. Tal vez veamos una transición suave a desempeño mientras > se mantiene alto nivel en el lenguaje, algo así como Julia. > > > 2014-06-03 19:47 GMT-05:00 Carlos Zuniga : > > La noticia: >> https://mail.python.org/pipermail/python-list/2014-June/672994.html >> >> Probablemente la idea de aplicaciones Python en dispositivos Android >> deje de ser tan inviable ahora :) >> >> >> Saludos >> -- >> A menudo unas pocas horas de "Prueba y error" podrán ahorrarte minutos >> de leer manuales. >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> > > > > -- > Arturo Muñoz Tolosa > -- Arturo Muñoz Tolosa ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From pych3m4 en gmail.com Wed Jun 4 16:34:50 2014 From: pych3m4 en gmail.com (Chema Cortes) Date: Wed, 4 Jun 2014 16:34:50 +0200 Subject: [Python-es] =?utf-8?q?Micro_Python=2C_implementaci=C3=B3n_peque?= =?utf-8?q?=C3=B1a_y_eficiente_de_Python_3?= In-Reply-To: References: Message-ID: El 4 de junio de 2014, 16:12, AGTUGO escribió: > Visité la página y parece mas orientada a sistemas embebidos. Lo cual > también suena excelente. > > Una de las características de micropython es poder compilar a código nativo ARM en AOT (ahead of time), precisamente una de las características introducidas en las últimas versiones de android para compilar bytecode Dalvik. ¿Por qué no creer que se puedan colar por ahí algunos bytecodes de python? ;) > 2014-06-04 9:09 GMT-05:00 AGTUGO : > > Excelente aviso. Tal vez veamos una transición suave a desempeño mientras >> se mantiene alto nivel en el lenguaje, algo así como Julia. >> >> >> 2014-06-03 19:47 GMT-05:00 Carlos Zuniga : >> >> La noticia: >>> https://mail.python.org/pipermail/python-list/2014-June/672994.html >>> >>> Probablemente la idea de aplicaciones Python en dispositivos Android >>> deje de ser tan inviable ahora :) >>> >>> >>> Saludos >>> -- >>> A menudo unas pocas horas de "Prueba y error" podrán ahorrarte minutos >>> de leer manuales. >>> _______________________________________________ >>> Python-es mailing list >>> Python-es en python.org >>> https://mail.python.org/mailman/listinfo/python-es >>> FAQ: http://python-es-faq.wikidot.com/ >>> >> >> >> >> -- >> Arturo Muñoz Tolosa >> > > > > -- > Arturo Muñoz Tolosa > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > -- Hyperreals *R "Quarks, bits y otras criaturas infinitesimales": http://ch3m4.org/blog Buscador Python Hispano: http://ch3m4.org/python-es ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From carlos.zun en gmail.com Thu Jun 5 11:12:44 2014 From: carlos.zun en gmail.com (Carlos Zuniga) Date: Thu, 5 Jun 2014 04:12:44 -0500 Subject: [Python-es] =?utf-8?q?Micro_Python=2C_implementaci=C3=B3n_peque?= =?utf-8?q?=C3=B1a_y_eficiente_de_Python_3?= In-Reply-To: References: Message-ID: 2014-06-04 9:12 GMT-05:00 AGTUGO : > Visité la página y parece mas orientada a sistemas embebidos. Lo cual > también suena excelente. > Lo crearon para eso [0], pero puede servir para muchos màs casos como por ejemplo lenguaje de scripting para videojuegos, donde hasta ahora Lua es el rey. Otro caso puede ser para disminuir el tamaño de los ejecutables creados por py2exe y similares. O simplemente si necesitas un python que inicie más rápido (inicia más rapido que CPython 2 y 3) [1]. Saludos [0] https://www.kickstarter.com/projects/214379695/micro-python-python-for-microcontrollers [1] https://news.ycombinator.com/item?id=7841642 -- A menudo unas pocas horas de "Prueba y error" podrán ahorrarte minutos de leer manuales. From jmallegue en gmail.com Thu Jun 5 15:42:09 2014 From: jmallegue en gmail.com (Jose M.Allegue) Date: Thu, 5 Jun 2014 15:42:09 +0200 Subject: [Python-es] Tratamiento de datos. Message-ID: Buenas tardes. Estoy intentando manejar un archivo de datos pero no se como hacerlo. Se trata de un archivo de texto (.txt) con información en lineas. Parte de el es como sigue: Deployment Time: 26/04/2014 1:50:00 Transit Speed (knots): 120,00 Range (NM): 0,00 Total Endurance: 2 hrs 0 mins Distance to Search Area (NM): 62,076 Time to reach Search Area: 31 mins Search Speed (knots): 120,00 On-Scene Endurance: 49 mins SRU Coverage Area (NM):83,893 Track Spacing (NM): 1,00 Pattern Type: Parallel Leg Length (NM): 10,9847 Angle: 90,00 First Turn: Right Commence Search Course: 0,00 Probability of Detection (POD): 100,00 % Probability of Containment (POC): 100,00 % Probability of Success (POS): 100,00 % xxx Coverage Area (NM):83,893 E 37 3.49 N, 1 13.65 W F 37 15.47 N, 1 13.65 W (11,9847 NM) G 37 15.47 N, 1 4.87 W (6,9907 NM) H 37 3.49 N, 1 4.87 W (11,9847 NM) las lineas E F G H son posiciones que tengo que tratar, de manera que ahora son string pero las tengo que pasar a int o float, para realizar ciertas operaciones con ellas Eso ya lo tengo resuelto, pero la pregunta es; ¿ lo trato como una lista o como un string completo ? ¿ quizás como un csv ? Como abordar este problema ? Gracias -- jose m allegue jmallegue en gmail.com ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From nicolaslino1 en gmail.com Thu Jun 5 17:30:03 2014 From: nicolaslino1 en gmail.com (Nicolas lino) Date: Thu, 5 Jun 2014 12:30:03 -0300 Subject: [Python-es] Explicacion sobre with Message-ID: Buenas gente: Estoy retomando un proyecto en mi empresa (en el cual no aporte ni una linea) escrito en python, utiliza la libreria fabric. En si el proyecto es para hacer deploy's en produccion. Mi problema es que no estoy entendiendo a fondo para que hacen uso del with Les copio un metodo. Desde ya, agradesco las explicaciones que me puedan dar. def rollback(self, tag, environment): """ Apunta el current de un producto a una versión en particular """ env.tag = tag env.tagPath = '%s/%s' % (env.releasesPath, tag) *with settings():* self.config(environment) execute(self.set_current_link,tag,role='webservers') if env.flushMemcached: execute(memcached_flush) execute(varnish_flush,env.dominio) self.after_deploy() Saludos! ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From jsm en iaa.es Thu Jun 5 17:52:13 2014 From: jsm en iaa.es (=?iso-8859-1?Q?Jos=E9_Sabater_Montes?=) Date: Thu, 5 Jun 2014 16:52:13 +0100 Subject: [Python-es] Tratamiento de datos. In-Reply-To: References: Message-ID: <0BDA002C-CD83-4AE2-B350-81825BD624EA@iaa.es> Hola, El 05/06/2014, a las 14:42, Jose M.Allegue escribió: > Buenas tardes. > > Estoy intentando manejar un archivo de datos pero no se como hacerlo. > Se trata de un archivo de texto (.txt) con información en lineas. > > Parte de el es como sigue: > > > Deployment Time: 26/04/2014 1:50:00 > Transit Speed (knots): 120,00 > Range (NM): 0,00 > Total Endurance: 2 hrs 0 mins > Distance to Search Area (NM): 62,076 > Time to reach Search Area: 31 mins > Search Speed (knots): 120,00 > On-Scene Endurance: 49 mins > SRU Coverage Area (NM):83,893 > Track Spacing (NM): 1,00 > Pattern Type: Parallel > Leg Length (NM): 10,9847 > Angle: 90,00 > First Turn: Right > Commence Search Course: 0,00 > Probability of Detection (POD): 100,00 % > Probability of Containment (POC): 100,00 % > Probability of Success (POS): 100,00 % > > > xxx Coverage Area (NM):83,893 > E 37 3.49 N, 1 13.65 W > F 37 15.47 N, 1 13.65 W (11,9847 NM) > G 37 15.47 N, 1 4.87 W (6,9907 NM) > H 37 3.49 N, 1 4.87 W (11,9847 NM) > > las lineas E F G H son posiciones que tengo que tratar, de manera que ahora son string pero las tengo que pasar a int o float, para realizar ciertas operaciones con ellas Eso ya lo tengo resuelto, pero la pregunta es; > ¿ lo trato como una lista o como un string completo ? ¿ quizás como un csv ? Por lo que veo tienes 4 puntos delimitando un área de búsqueda de unas 84 millas náuticas cuadradas al sur de Cartagena :) > > Como abordar este problema ? Creo que este caso se presta a usar expresiones regulares. Suponiendo que has abierto el fichero para lectura con nombre f se puede hacer algo así: for line in f.readlines(): alt = re.findall("(?<= )(\d{1,2}) (\d{1,2}\.\d{1,2}) ([NS]),\s+(\d{1,2}) (\d{1,2}\.\d{1,2}) ([EW]).*", line) if len(alt) != 0: lat = float(alt[0][0])+float(alt[0][1])/60. if alt[0][2] == 'S': lat *= -1 lon = float(alt[0][3])+float(alt[0][4])/60. if alt[0][5] == 'W': lon *= -1 print lat, lon Puedes ir añadiendo las coordenadas a una lista para después trabajar con ellas. Un saludo. > > Gracias > -- > jose m allegue > > jmallegue en gmail.com > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ From davidmenhur en gmail.com Thu Jun 5 18:14:26 2014 From: davidmenhur en gmail.com (=?UTF-8?B?RGHPgGlk?=) Date: Thu, 5 Jun 2014 18:14:26 +0200 Subject: [Python-es] Tratamiento de datos. In-Reply-To: References: Message-ID: for line in inputfile: if line.startswith('xxx'): break # Ignora las líneas hasta xxx for line in inputfile: line = line.split(' ') # Separa por espacios lat = (int(line[1]), float(line[2])) long = (int(line[4]), float(line[5])) # Haz algo con lat y long Si tus coordendas pueden ser de cualquier lugar del mundo, tendrás que incluir el signo en función de los valores de line[3] y line[6], y según lo que quieras hacer, puedes convertirlo a decimal. Si los datos son muchos, lo mejor es guardarlos en Numpy o Pandas, pero no creo que las herramientas habituales de parseo de ficheros te sirvan, tu formato es un tanto "raro". /David. 2014-06-05 15:42 GMT+02:00 Jose M.Allegue : > Buenas tardes. > > Estoy intentando manejar un archivo de datos pero no se como hacerlo. > Se trata de un archivo de texto (.txt) con información en lineas. > > Parte de el es como sigue: > > > Deployment Time: 26/04/2014 1:50:00 > Transit Speed (knots): 120,00 > Range (NM): 0,00 > Total Endurance: 2 hrs 0 mins > Distance to Search Area (NM): 62,076 > Time to reach Search Area: 31 mins > Search Speed (knots): 120,00 > On-Scene Endurance: 49 mins > SRU Coverage Area (NM):83,893 > Track Spacing (NM): 1,00 > Pattern Type: Parallel > Leg Length (NM): 10,9847 > Angle: 90,00 > First Turn: Right > Commence Search Course: 0,00 > Probability of Detection (POD): 100,00 % > Probability of Containment (POC): 100,00 % > Probability of Success (POS): 100,00 % > > xxx Coverage Area (NM):83,893 > E 37 3.49 N, 1 13.65 W > F 37 15.47 N, 1 13.65 W (11,9847 NM) > G 37 15.47 N, 1 4.87 W (6,9907 NM) > H 37 3.49 N, 1 4.87 W (11,9847 NM) > > las lineas E F G H son posiciones que tengo que tratar, de manera que > ahora son string pero las tengo que pasar a int o float, para realizar > ciertas operaciones con ellas Eso ya lo tengo resuelto, pero la pregunta es; > ¿ lo trato como una lista o como un string completo ? ¿ quizás como un csv > ? > > Como abordar este problema ? > > Gracias > -- > jose m allegue > > jmallegue en gmail.com > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From jmallegue en gmail.com Thu Jun 5 19:08:17 2014 From: jmallegue en gmail.com (Jose M.Allegue) Date: Thu, 5 Jun 2014 19:08:17 +0200 Subject: [Python-es] Tratamiento de datos. In-Reply-To: References: Message-ID: Buenas. Gracias por vuestra ayuda. No entiendo esta linea de código: alt = re.findall("(?<= )(\d{1,2}) (\d{1,2}\.\d{1,2}) ([NS]),\s+(\d{1,2}) (\d{1,2}\.\d{1,2}) ([EW]).*", line) me lo puedes explicar un poco ? Enviado con MailTrack El 5 de junio de 2014, 18:14, Da?id escribió: > for line in inputfile: > if line.startswith('xxx'): > break # Ignora las líneas hasta xxx > > for line in inputfile: > line = line.split(' ') # Separa por espacios > lat = (int(line[1]), float(line[2])) > long = (int(line[4]), float(line[5])) > # Haz algo con lat y long > > Si tus coordendas pueden ser de cualquier lugar del mundo, tendrás que > incluir el signo en función de los valores de line[3] y line[6], y según lo > que quieras hacer, puedes convertirlo a decimal. > > Si los datos son muchos, lo mejor es guardarlos en Numpy o Pandas, pero no > creo que las herramientas habituales de parseo de ficheros te sirvan, tu > formato es un tanto "raro". > > > /David. > > > > 2014-06-05 15:42 GMT+02:00 Jose M.Allegue : > >> Buenas tardes. >> >> Estoy intentando manejar un archivo de datos pero no se como hacerlo. >> Se trata de un archivo de texto (.txt) con información en lineas. >> >> Parte de el es como sigue: >> >> >> Deployment Time: 26/04/2014 1:50:00 >> Transit Speed (knots): 120,00 >> Range (NM): 0,00 >> Total Endurance: 2 hrs 0 mins >> Distance to Search Area (NM): 62,076 >> Time to reach Search Area: 31 mins >> Search Speed (knots): 120,00 >> On-Scene Endurance: 49 mins >> SRU Coverage Area (NM):83,893 >> Track Spacing (NM): 1,00 >> Pattern Type: Parallel >> Leg Length (NM): 10,9847 >> Angle: 90,00 >> First Turn: Right >> Commence Search Course: 0,00 >> Probability of Detection (POD): 100,00 % >> Probability of Containment (POC): 100,00 % >> Probability of Success (POS): 100,00 % >> >> xxx Coverage Area (NM):83,893 >> E 37 3.49 N, 1 13.65 W >> F 37 15.47 N, 1 13.65 W (11,9847 NM) >> G 37 15.47 N, 1 4.87 W (6,9907 NM) >> H 37 3.49 N, 1 4.87 W (11,9847 NM) >> >> las lineas E F G H son posiciones que tengo que tratar, de manera que >> ahora son string pero las tengo que pasar a int o float, para realizar >> ciertas operaciones con ellas Eso ya lo tengo resuelto, pero la pregunta es; >> ¿ lo trato como una lista o como un string completo ? ¿ quizás como un >> csv ? >> >> Como abordar este problema ? >> >> Gracias >> -- >> jose m allegue >> >> jmallegue en gmail.com >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > -- jose m allegue jmallegue en gmail.com ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From lastvnm en gmail.com Thu Jun 5 19:15:29 2014 From: lastvnm en gmail.com (Hiko hitokiri) Date: Thu, 5 Jun 2014 11:15:29 -0600 Subject: [Python-es] Explicacion sobre with In-Reply-To: References: Message-ID: http://preshing.com/20110920/the-python-with-statement-by-example/ ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From yeiniel en uclv.cu Thu Jun 5 18:19:43 2014 From: yeiniel en uclv.cu (=?UTF-8?Q?Yeiniel_Su=C3=A1rez_Sosa?=) Date: Thu, 05 Jun 2014 12:19:43 -0400 Subject: [Python-es] Explicacion sobre with In-Reply-To: References: Message-ID: <6a2c6c72f2959725de401b31ff279fbf@uclv.cu> La palabra reservada with permite definir un contexto en el cual realizar un determinado grupo de operaciones. Por ejemplo una transaccion es un caso de uso de la palabra reservada with. Normalmente lo que hace es que al alcanzar el control de ejecución el punto donde se encuentra la sentencia with se invoca la funcion __enter__ del argumento y al terminar el bloque automáticamente se invoca la función __exit__ del mismo objeto. En el ejemplo específico que nos envías no es posible determinar que hace with porque no se emplea el valor de retorno de settings() ni se sabe que hace. El codigo de esta función podria ser de ayuda. Atentamente Ing. Yeiniel Suárez Sosa Profesor Instructor, Dep. Automática FIE, UCLV On 2014-06-05 11:30, Nicolas lino wrote: > Buenas gente: > > Estoy retomando un proyecto en mi empresa (en el cual no aporte ni > una linea) escrito en python, utiliza la libreria fabric. En si el > proyecto es para hacer deploy's en produccion. > > Mi problema es que no estoy entendiendo a fondo para que hacen uso > del with Les copio un metodo. > > Desde ya, agradesco las explicaciones que me puedan dar. > > def rollback(self, tag, environment): >         """ >         Apunta el current de un producto a una versión en particular >         """ >         env.tag = tag >         env.tagPath = '%s/%s' % (env.releasesPath, tag) >         _WITH SETTINGS():_ >             self.config(environment) >             execute(self.set_current_link,tag,role='webservers') >             if env.flushMemcached: >                 execute(memcached_flush) >             execute(varnish_flush,env.dominio) >             self.after_deploy() > > Saludos! > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ -- Ing. Yeiniel Suárez Sosa Profesor Instructor, Dep. Automática FIE, UCLV From jsm en iaa.es Thu Jun 5 19:36:06 2014 From: jsm en iaa.es (=?windows-1252?Q?Jos=E9_Sabater_Montes?=) Date: Thu, 5 Jun 2014 18:36:06 +0100 Subject: [Python-es] Tratamiento de datos. In-Reply-To: References: Message-ID: <153E9E0D-0185-4FA7-9787-DC77941ACF4C@iaa.es> Hola, El 05/06/2014, a las 18:08, Jose M.Allegue escribió: > No entiendo esta linea de código: > alt = re.findall("(?<= )(\d{1,2}) (\d{1,2}\.\d{1,2}) ([NS]),\s+(\d{1,2}) (\d{1,2}\.\d{1,2}) ([EW]).*", line) Jeje, es la expresión regular (https://es.wikipedia.org/wiki/Expresi%C3%B3n_regular). Son un pequeño mundo en sí mismas pero pueden ser muy potentes en estos casos. Lo que hace es introducir en ?alt" una lista (o varias) con los valores que extrae de la línea ?line? que se ajustan a las reglas de la expresión regular indicada. La expresión regular en sí es la cadena "(?<= )(\d{1,2}) (\d{1,2}\.\d{1,2}) ([NS]),\s+(\d{1,2}) (\d{1,2}\.\d{1,2}) ([EW]).*?. Quiero mencionar que hay otras alternativas que podrían funcionar e incluso adaptarse mejor pero esta es la que se me ha ocurrido. Si la miramos por partes: * "(?<= )" esto indica que lo que viene detrás empezaría con un carácter en blanco. * "(\d{1,2})" esto extrae uno o dos dígitos como primer elemento de la lista. * " (\d{1,2}\.\d{1,2})" después de un espacio en blanco extrae uno o dos dígitos seguidos de un punto y uno o dos dígitos más. * " ([NS])" después de otro espacio extrae un carácter ?N" o ?S?. * ",\s+(\d{1,2})" después de una coma y un número indeterminado de espacios extrae uno o dos dígitos. * " (\d{1,2}\.\d{1,2})" de nuevo se extrae una combinación como la de antes. * " ([EW])" después de un espacio extrae un carácter ?E" o ?W?. * ?.*" el resto de la cadena puede ser cualquier cosa. Al final tienes en alt una lista de listas de 6 elementos. En tu caso alt solo tiene un elemento, ya que solo encuentra el patrón para las coordenadas una vez como mucho en cada línea. Este elemento se compone de los grados de latitud, minutos decimales de latitud, N o S, grados de longitud, minutos decimales de longitud y E o W. Un saludo. From nicolaslino1 en gmail.com Thu Jun 5 20:02:49 2014 From: nicolaslino1 en gmail.com (Nicolas lino) Date: Thu, 5 Jun 2014 15:02:49 -0300 Subject: [Python-es] Explicacion sobre with In-Reply-To: References: Message-ID: Una muy buena explicacion, muchas gracias. Habia buscado, pero no encontre una tan buena como esta. Muchas gracias! 2014-06-05 14:15 GMT-03:00 Hiko hitokiri : > http://preshing.com/20110920/the-python-with-statement-by-example/ > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From nicolaslino1 en gmail.com Thu Jun 5 20:07:15 2014 From: nicolaslino1 en gmail.com (Nicolas lino) Date: Thu, 5 Jun 2014 15:07:15 -0300 Subject: [Python-es] Explicacion sobre with In-Reply-To: <6a2c6c72f2959725de401b31ff279fbf@uclv.cu> References: <6a2c6c72f2959725de401b31ff279fbf@uclv.cu> Message-ID: Hola Yeiniel: Primero que nada gracias por tu explicacion, muy buena y me esta ayudando junto con el otro articulo que me pasaron. Despues te comento que settings es parte de la libreria fabric, y ya estoy poniendome a leer sobre el modulo! from fabric.context_managers import settings, shell_env, hide Saludos. El 5 de junio de 2014, 13:19, Yeiniel Suárez Sosa escribió: > La palabra reservada with permite definir un contexto en el cual realizar > un determinado grupo de operaciones. Por ejemplo una transaccion es un caso > de uso de la palabra reservada with. Normalmente lo que hace es que al > alcanzar el control de ejecución el punto donde se encuentra la sentencia > with se invoca la funcion __enter__ del argumento y al terminar el bloque > automáticamente se invoca la función __exit__ del mismo objeto. En el > ejemplo específico que nos envías no es posible determinar que hace with > porque no se emplea el valor de retorno de settings() ni se sabe que hace. > El codigo de esta función podria ser de ayuda. > > Atentamente > Ing. Yeiniel Suárez Sosa > Profesor Instructor, Dep. Automática > FIE, UCLV > > > On 2014-06-05 11:30, Nicolas lino wrote: > >> Buenas gente: >> >> Estoy retomando un proyecto en mi empresa (en el cual no aporte ni >> una linea) escrito en python, utiliza la libreria fabric. En si el >> proyecto es para hacer deploy's en produccion. >> >> Mi problema es que no estoy entendiendo a fondo para que hacen uso >> del with Les copio un metodo. >> >> Desde ya, agradesco las explicaciones que me puedan dar. >> >> def rollback(self, tag, environment): >> """ >> Apunta el current de un producto a una versión en particular >> """ >> env.tag = tag >> env.tagPath = '%s/%s' % (env.releasesPath, tag) >> _WITH SETTINGS():_ >> >> self.config(environment) >> execute(self.set_current_link,tag,role='webservers') >> if env.flushMemcached: >> execute(memcached_flush) >> execute(varnish_flush,env.dominio) >> self.after_deploy() >> >> Saludos! >> >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> > > -- > Ing. Yeiniel Suárez Sosa > Profesor Instructor, Dep. Automática > FIE, UCLV > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From jmallegue en gmail.com Thu Jun 5 20:21:07 2014 From: jmallegue en gmail.com (Jose M.Allegue) Date: Thu, 5 Jun 2014 20:21:07 +0200 Subject: [Python-es] Tratamiento de datos. In-Reply-To: <153E9E0D-0185-4FA7-9787-DC77941ACF4C@iaa.es> References: <153E9E0D-0185-4FA7-9787-DC77941ACF4C@iaa.es> Message-ID: Muchas gracias. Enviado con MailTrack El 5 de junio de 2014, 19:36, José Sabater Montes escribió: > > Hola, > > El 05/06/2014, a las 18:08, Jose M.Allegue escribió: > > > No entiendo esta linea de código: > > alt = re.findall("(?<= )(\d{1,2}) (\d{1,2}\.\d{1,2}) ([NS]),\s+(\d{1,2}) > (\d{1,2}\.\d{1,2}) ([EW]).*", line) > > Jeje, es la expresión regular ( > https://es.wikipedia.org/wiki/Expresi%C3%B3n_regular). Son un pequeño > mundo en sí mismas pero pueden ser muy potentes en estos casos. > Lo que hace es introducir en ?alt" una lista (o varias) con los valores > que extrae de la línea ?line? que se ajustan a las reglas de la expresión > regular indicada. La expresión regular en sí es la cadena "(?<= )(\d{1,2}) > (\d{1,2}\.\d{1,2}) ([NS]),\s+(\d{1,2}) (\d{1,2}\.\d{1,2}) ([EW]).*?. Quiero > mencionar que hay otras alternativas que podrían funcionar e incluso > adaptarse mejor pero esta es la que se me ha ocurrido. > > Si la miramos por partes: > * "(?<= )" esto indica que lo que viene detrás empezaría con un carácter > en blanco. > * "(\d{1,2})" esto extrae uno o dos dígitos como primer elemento de la > lista. > * " (\d{1,2}\.\d{1,2})" después de un espacio en blanco extrae uno o dos > dígitos seguidos de un punto y uno o dos dígitos más. > * " ([NS])" después de otro espacio extrae un carácter ?N" o ?S?. > * ",\s+(\d{1,2})" después de una coma y un número indeterminado de > espacios extrae uno o dos dígitos. > * " (\d{1,2}\.\d{1,2})" de nuevo se extrae una combinación como la de > antes. > * " ([EW])" después de un espacio extrae un carácter ?E" o ?W?. > * ?.*" el resto de la cadena puede ser cualquier cosa. > Al final tienes en alt una lista de listas de 6 elementos. En tu caso alt > solo tiene un elemento, ya que solo encuentra el patrón para las > coordenadas una vez como mucho en cada línea. Este elemento se compone de > los grados de latitud, minutos decimales de latitud, N o S, grados de > longitud, minutos decimales de longitud y E o W. > > Un saludo. > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > -- jose m allegue jmallegue en gmail.com ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From kikocorreoso en gmail.com Fri Jun 6 08:56:07 2014 From: kikocorreoso en gmail.com (Kiko) Date: Fri, 6 Jun 2014 08:56:07 +0200 Subject: [Python-es] Tratamiento de datos. In-Reply-To: References: <153E9E0D-0185-4FA7-9787-DC77941ACF4C@iaa.es> Message-ID: > > >> >> > No entiendo esta linea de código: >> > alt = re.findall("(?<= )(\d{1,2}) (\d{1,2}\.\d{1,2}) >> ([NS]),\s+(\d{1,2}) (\d{1,2}\.\d{1,2}) ([EW]).*", line) >> >> Además de lo que te ha explicado José, aquí ( http://pybonacci.wordpress.com/2013/02/21/regex-mediante-ejemplos/) tienes un mini tutorial en castellano para adentrarte en el mundo de las expresiones regulares. Si está mal escrito pídele explicaciones al autor :-) De todas formas, si es algo sencillo como lo que quieres hacer en tu caso se puede resolver como ha puesto Da?id, resulta más sencillo y legible. ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From jmallegue en gmail.com Fri Jun 6 09:19:27 2014 From: jmallegue en gmail.com (Jose M.Allegue) Date: Fri, 6 Jun 2014 07:19:27 +0000 Subject: [Python-es] Tratamiento de datos. In-Reply-To: References: <153E9E0D-0185-4FA7-9787-DC77941ACF4C@iaa.es> Message-ID: Buenos días. Ya voy viendo un poco por donde se puede "atacar" el asunto. Gracias por todo. La pregunta, en realidad que se me plantea ¿ como trato el archivo completo? su contenido como str o como lista? Quizás esté preguntando un disparate de novato pero voy a intentar explicarlo. Pretendo "buscar el contenido de una linea determinada y extraer los caracteres, pasarlos a float o int y trabajar con ellos. Pero para eso necesito conocer cual es el indice de la linea donde está la información que quiero procesar. ejemplo: quiero buscar la linea que contiene el dato Track Spacing (NM): y extraer el valor 1,00 como hago para buscar linea que contenga un valor que comience pro Track* y me devuelva el indice de la linea ? a partir de ese índicie ya puedo procesar los caracteres. Otra cosa es que el archivo tiene una longitud variable, es decir, no siempre tiene el mismo número de líneas, por lo que necesito buscar en cada momento cual es el índice de la linea de la que quiero extraer la información. Ahora bien, todo esto lo he podido realizar en excel, pero se trata de automatizarlo y tener mayor control sobre el proceso. Por todo esto la pregunta; Lo proceso como una cadena con sus saltos de linea, etc o por el contrario lo "meto" todo en una lista y cada linea será un elemento de la misma, o "pasandolo" a csv ? Como dice David, el archivo es un poco 2raro!".... tiene esta "forma" para que pueda ser leido por un GIS en particular, es decir, estos datos leen y se presentan en pantalla, pero claro desde ese momento no se pueden procesar y la idea e tener mas control sobre ellos. Gracias por vuestra ayuda. El 6 de junio de 2014, 6:56, Kiko escribió: > >>> >>> > No entiendo esta linea de código: >>> > alt = re.findall("(?<= )(\d{1,2}) (\d{1,2}\.\d{1,2}) >>> ([NS]),\s+(\d{1,2}) (\d{1,2}\.\d{1,2}) ([EW]).*", line) >>> >>> > Además de lo que te ha explicado José, aquí ( > http://pybonacci.wordpress.com/2013/02/21/regex-mediante-ejemplos/) > tienes un mini tutorial en castellano para adentrarte en el mundo de las > expresiones regulares. Si está mal escrito pídele explicaciones al autor > :-) > > De todas formas, si es algo sencillo como lo que quieres hacer en tu caso > se puede resolver como ha puesto Da?id, resulta más sencillo y legible. > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > -- jose m allegue jmallegue en gmail.com ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From shaddycls en gmail.com Fri Jun 6 09:54:24 2014 From: shaddycls en gmail.com (Sherab Giovannini) Date: Fri, 6 Jun 2014 09:54:24 +0200 Subject: [Python-es] Tratamiento de datos. In-Reply-To: References: <153E9E0D-0185-4FA7-9787-DC77941ACF4C@iaa.es> Message-ID: Si conoces el contenido y siguiendo un poco los ejemplos que te han dado supongo que esto sería suficiente: re.findall("Track[\S ]+", contenido) ['Track Spacing (NM): 1,00'] Otra variante, podría ser utilizar un filtro, siendo contenido el texto: filter(lambda linea: linea.startswith("Track"), contenido.splitlines()) ['Track Spacing (NM): 1,00'] Ya que ambos devuelven una lista, tendrías que acceder al contenido (lista[0]) y luego procesar la cadena. Para procesarla puedes usar otra expresión regular o hacerlo directamente. linea = 'Track Spacing (NM): 1,00' match = re.search('[\d,.]+', linea) if match: print match.group() '1,00' O una opción un poco más de estar por casa: print linea.split(": ")[1] Pero en fin, no soy un experto así que seguramente aquí te den soluciones mucho más efectivas/elegantes. Un saludo! El 6 de junio de 2014, 9:19, Jose M.Allegue escribió: > Buenos días. > > Ya voy viendo un poco por donde se puede "atacar" el asunto. Gracias por > todo. > La pregunta, en realidad que se me plantea ¿ como trato el archivo > completo? su contenido como str o como lista? > Quizás esté preguntando un disparate de novato pero voy a intentar > explicarlo. > Pretendo "buscar el contenido de una linea determinada y extraer los > caracteres, pasarlos a float o int y trabajar con ellos. Pero para eso > necesito conocer cual es el indice de la linea donde está la información > que quiero procesar. > ejemplo: quiero buscar la linea que contiene el dato Track Spacing (NM): > y extraer el valor 1,00 > como hago para buscar linea que contenga un valor que comience pro > Track* y me devuelva el indice de la linea ? a partir de ese índicie ya > puedo procesar los caracteres. > Otra cosa es que el archivo tiene una longitud variable, es decir, no > siempre tiene el mismo número de líneas, por lo que necesito buscar en cada > momento cual es el índice de la linea de la que quiero extraer la > información. > > Ahora bien, todo esto lo he podido realizar en excel, pero se trata de > automatizarlo y tener mayor control sobre el proceso. > > Por todo esto la pregunta; Lo proceso como una cadena con sus saltos de > linea, etc o por el contrario lo "meto" todo en una lista y cada linea será > un elemento de la misma, o "pasandolo" a csv ? > > Como dice David, el archivo es un poco 2raro!".... tiene esta "forma" para > que pueda ser leido por un GIS en particular, es decir, estos datos leen y > se presentan en pantalla, pero claro desde ese momento no se pueden > procesar y la idea e tener mas control sobre ellos. > > Gracias por vuestra ayuda. > > > > El 6 de junio de 2014, 6:56, Kiko escribió: > >> >>>> >>>> > No entiendo esta linea de código: >>>> > alt = re.findall("(?<= )(\d{1,2}) (\d{1,2}\.\d{1,2}) >>>> ([NS]),\s+(\d{1,2}) (\d{1,2}\.\d{1,2}) ([EW]).*", line) >>>> >>>> >> Además de lo que te ha explicado José, aquí ( >> http://pybonacci.wordpress.com/2013/02/21/regex-mediante-ejemplos/) >> tienes un mini tutorial en castellano para adentrarte en el mundo de las >> expresiones regulares. Si está mal escrito pídele explicaciones al autor >> :-) >> >> De todas formas, si es algo sencillo como lo que quieres hacer en tu caso >> se puede resolver como ha puesto Da?id, resulta más sencillo y legible. >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > > > -- > jose m allegue > > jmallegue en gmail.com > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > -- HomePage @ Research Labs [AbsshA's Blog ] [PGP Public Key ] ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From pych3m4 en gmail.com Fri Jun 6 10:01:13 2014 From: pych3m4 en gmail.com (Chema Cortes) Date: Fri, 6 Jun 2014 10:01:13 +0200 Subject: [Python-es] Explicacion sobre with In-Reply-To: References: <6a2c6c72f2959725de401b31ff279fbf@uclv.cu> Message-ID: El 5 de junio de 2014, 20:07, Nicolas lino escribió: > Hola Yeiniel: > Primero que nada gracias por tu explicacion, muy buena y me esta ayudando > junto con el otro articulo que me pasaron. > > Despues te comento que settings es parte de la libreria fabric, y ya estoy > poniendome a leer sobre el modulo! > > from fabric.context_managers import settings, shell_env, hide > > Lo tienes todo bien explicado en la documentación de fabric: http://docs.fabfile.org/en/1.8/api/core/context_managers.html Con el manejador de contexto "settings" puedes parametrizar localmente algunas opciones de fabric sin que afecten al resto de tareas, lo que facilita el desacople entre tareas y su paralelización. Tienes otros manajadores que son más fáciles de usar que "settings()". Por ejemplo, en lugar de: with settings(hide('everything'), warn_only=True): .... queda más legible: with quiet(): .... > Saludos. > > > > El 5 de junio de 2014, 13:19, Yeiniel Suárez Sosa > escribió: > > La palabra reservada with permite definir un contexto en el cual realizar >> un determinado grupo de operaciones. Por ejemplo una transaccion es un caso >> de uso de la palabra reservada with. Normalmente lo que hace es que al >> alcanzar el control de ejecución el punto donde se encuentra la sentencia >> with se invoca la funcion __enter__ del argumento y al terminar el bloque >> automáticamente se invoca la función __exit__ del mismo objeto. En el >> ejemplo específico que nos envías no es posible determinar que hace with >> porque no se emplea el valor de retorno de settings() ni se sabe que hace. >> El codigo de esta función podria ser de ayuda. >> >> Atentamente >> Ing. Yeiniel Suárez Sosa >> Profesor Instructor, Dep. Automática >> FIE, UCLV >> >> >> On 2014-06-05 11:30, Nicolas lino wrote: >> >>> Buenas gente: >>> >>> Estoy retomando un proyecto en mi empresa (en el cual no aporte ni >>> una linea) escrito en python, utiliza la libreria fabric. En si el >>> proyecto es para hacer deploy's en produccion. >>> >>> Mi problema es que no estoy entendiendo a fondo para que hacen uso >>> del with Les copio un metodo. >>> >>> Desde ya, agradesco las explicaciones que me puedan dar. >>> >>> def rollback(self, tag, environment): >>> """ >>> Apunta el current de un producto a una versión en particular >>> """ >>> env.tag = tag >>> env.tagPath = '%s/%s' % (env.releasesPath, tag) >>> _WITH SETTINGS():_ >>> >>> self.config(environment) >>> execute(self.set_current_link,tag,role='webservers') >>> if env.flushMemcached: >>> execute(memcached_flush) >>> execute(varnish_flush,env.dominio) >>> self.after_deploy() >>> >>> Saludos! >>> >>> >>> _______________________________________________ >>> Python-es mailing list >>> Python-es en python.org >>> https://mail.python.org/mailman/listinfo/python-es >>> FAQ: http://python-es-faq.wikidot.com/ >>> >> >> -- >> Ing. Yeiniel Suárez Sosa >> Profesor Instructor, Dep. Automática >> FIE, UCLV >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > -- Hyperreals *R "Quarks, bits y otras criaturas infinitesimales": http://ch3m4.org/blog Buscador Python Hispano: http://ch3m4.org/python-es ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From kikocorreoso en gmail.com Fri Jun 6 10:01:36 2014 From: kikocorreoso en gmail.com (Kiko) Date: Fri, 6 Jun 2014 10:01:36 +0200 Subject: [Python-es] Tratamiento de datos. In-Reply-To: References: <153E9E0D-0185-4FA7-9787-DC77941ACF4C@iaa.es> Message-ID: El 6 de junio de 2014, 9:19, Jose M.Allegue escribió: > Buenos días. > > Ya voy viendo un poco por donde se puede "atacar" el asunto. Gracias por > todo. > La pregunta, en realidad que se me plantea ¿ como trato el archivo > completo? su contenido como str o como lista? > Quizás esté preguntando un disparate de novato pero voy a intentar > explicarlo. > Pretendo "buscar el contenido de una linea determinada y extraer los > caracteres, pasarlos a float o int y trabajar con ellos. Pero para eso > necesito conocer cual es el indice de la linea donde está la información > que quiero procesar. > ejemplo: quiero buscar la linea que contiene el dato Track Spacing (NM): > y extraer el valor 1,00 > como hago para buscar linea que contenga un valor que comience pro > Track* y me devuelva el indice de la linea ? a partir de ese índicie ya > puedo procesar los caracteres. > Otra cosa es que el archivo tiene una longitud variable, es decir, no > siempre tiene el mismo número de líneas, por lo que necesito buscar en cada > momento cual es el índice de la linea de la que quiero extraer la > información. > > Ahora bien, todo esto lo he podido realizar en excel, pero se trata de > automatizarlo y tener mayor control sobre el proceso. > > Por todo esto la pregunta; Lo proceso como una cadena con sus saltos de > linea, etc o por el contrario lo "meto" todo en una lista y cada linea será > un elemento de la misma, o "pasandolo" a csv ? > > Como dice David, el archivo es un poco 2raro!".... tiene esta "forma" para > que pueda ser leido por un GIS en particular, es decir, estos datos leen y > se presentan en pantalla, pero claro desde ese momento no se pueden > procesar y la idea e tener mas control sobre ellos. > Yo leo archivos "raros" todos los días. Normalmente, si lo puedo resolver sin expresiones regulares lo hago de la siguiente forma: Leo línea a línea, cada línea es un string y dentro de ese string busco lo que necesito: Para leer todo como un string (es Python 3): *data = open('kk.txt', 'r').read()* Para tener cada una de las filas: *data = data.split('\n')* De esta forma tengo cada línea como un string en una lista. Ahora puedo iterar por cada línea (i.e. elemento de la lista) y saber en qué línea está lo que busco. Lo que busco lo puedo obtener usando 'in' para saber si está contenido en el elemento/string/línea: *for i, linea in enumerate(data):* * if 'cadena_que_busco' in linea:* * # código para hacer lo que necesito, esto lo dejo para tí, aquí puedes usar una regex, métodos de la clase str,...* Espero que te clarifique un poco las cosas. > > Gracias por vuestra ayuda. > > > > El 6 de junio de 2014, 6:56, Kiko escribió: > >> >>>> >>>> > No entiendo esta linea de código: >>>> > alt = re.findall("(?<= )(\d{1,2}) (\d{1,2}\.\d{1,2}) >>>> ([NS]),\s+(\d{1,2}) (\d{1,2}\.\d{1,2}) ([EW]).*", line) >>>> >>>> >> Además de lo que te ha explicado José, aquí ( >> http://pybonacci.wordpress.com/2013/02/21/regex-mediante-ejemplos/) >> tienes un mini tutorial en castellano para adentrarte en el mundo de las >> expresiones regulares. Si está mal escrito pídele explicaciones al autor >> :-) >> >> De todas formas, si es algo sencillo como lo que quieres hacer en tu caso >> se puede resolver como ha puesto Da?id, resulta más sencillo y legible. >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > > > -- > jose m allegue > > jmallegue en gmail.com > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From jmallegue en gmail.com Fri Jun 6 11:19:55 2014 From: jmallegue en gmail.com (Jose M.Allegue) Date: Fri, 6 Jun 2014 09:19:55 +0000 Subject: [Python-es] Tratamiento de datos. In-Reply-To: References: <153E9E0D-0185-4FA7-9787-DC77941ACF4C@iaa.es> Message-ID: Ya voy viendo el "camino". Gracias por vuestra ayuda. El 6 de junio de 2014, 8:01, Kiko escribió: > > > > El 6 de junio de 2014, 9:19, Jose M.Allegue > escribió: > >> Buenos días. >> >> Ya voy viendo un poco por donde se puede "atacar" el asunto. Gracias por >> todo. >> La pregunta, en realidad que se me plantea ¿ como trato el archivo >> completo? su contenido como str o como lista? >> Quizás esté preguntando un disparate de novato pero voy a intentar >> explicarlo. >> Pretendo "buscar el contenido de una linea determinada y extraer los >> caracteres, pasarlos a float o int y trabajar con ellos. Pero para eso >> necesito conocer cual es el indice de la linea donde está la información >> que quiero procesar. >> ejemplo: quiero buscar la linea que contiene el dato Track Spacing (NM): >> y extraer el valor 1,00 >> como hago para buscar linea que contenga un valor que comience pro >> Track* y me devuelva el indice de la linea ? a partir de ese índicie ya >> puedo procesar los caracteres. >> Otra cosa es que el archivo tiene una longitud variable, es decir, no >> siempre tiene el mismo número de líneas, por lo que necesito buscar en cada >> momento cual es el índice de la linea de la que quiero extraer la >> información. >> >> Ahora bien, todo esto lo he podido realizar en excel, pero se trata de >> automatizarlo y tener mayor control sobre el proceso. >> >> Por todo esto la pregunta; Lo proceso como una cadena con sus saltos de >> linea, etc o por el contrario lo "meto" todo en una lista y cada linea será >> un elemento de la misma, o "pasandolo" a csv ? >> >> Como dice David, el archivo es un poco 2raro!".... tiene esta "forma" >> para que pueda ser leido por un GIS en particular, es decir, estos datos >> leen y se presentan en pantalla, pero claro desde ese momento no se pueden >> procesar y la idea e tener mas control sobre ellos. >> > > Yo leo archivos "raros" todos los días. > Normalmente, si lo puedo resolver sin expresiones regulares lo hago de la > siguiente forma: > > Leo línea a línea, cada línea es un string y dentro de ese string busco lo > que necesito: > > Para leer todo como un string (es Python 3): > *data = open('kk.txt', 'r').read()* > > Para tener cada una de las filas: > *data = data.split('\n')* > > De esta forma tengo cada línea como un string en una lista. Ahora puedo > iterar por cada línea (i.e. elemento de la lista) y saber en qué línea está > lo que busco. Lo que busco lo puedo obtener usando 'in' para saber si está > contenido en el elemento/string/línea: > *for i, linea in enumerate(data):* > * if 'cadena_que_busco' in linea:* > * # código para hacer lo que necesito, esto lo dejo para tí, aquí > puedes usar una regex, métodos de la clase str,...* > > Espero que te clarifique un poco las cosas. > > >> >> Gracias por vuestra ayuda. >> >> >> >> El 6 de junio de 2014, 6:56, Kiko escribió: >> >>> >>>>> >>>>> > No entiendo esta linea de código: >>>>> > alt = re.findall("(?<= )(\d{1,2}) (\d{1,2}\.\d{1,2}) >>>>> ([NS]),\s+(\d{1,2}) (\d{1,2}\.\d{1,2}) ([EW]).*", line) >>>>> >>>>> >>> Además de lo que te ha explicado José, aquí ( >>> http://pybonacci.wordpress.com/2013/02/21/regex-mediante-ejemplos/) >>> tienes un mini tutorial en castellano para adentrarte en el mundo de las >>> expresiones regulares. Si está mal escrito pídele explicaciones al autor >>> :-) >>> >>> De todas formas, si es algo sencillo como lo que quieres hacer en tu >>> caso se puede resolver como ha puesto Da?id, resulta más sencillo y >>> legible. >>> >>> _______________________________________________ >>> Python-es mailing list >>> Python-es en python.org >>> https://mail.python.org/mailman/listinfo/python-es >>> FAQ: http://python-es-faq.wikidot.com/ >>> >>> >> >> >> -- >> jose m allegue >> >> jmallegue en gmail.com >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > -- jose m allegue jmallegue en gmail.com ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From rubia.linux en gmail.com Sun Jun 8 12:05:45 2014 From: rubia.linux en gmail.com (ruben linux) Date: Sun, 8 Jun 2014 12:05:45 +0200 Subject: [Python-es] Buscar palabras en un archivo Message-ID: Saludos a todos, este es mi primer correo a la lista. Estoy empezando con Python, y este me pareció un buen sitio para empezar y aprender. Decirnos antes de nada que este tema ya se lo busque en Google, y no doy con la respuesta adecuada, o la que me soluciona el problema. Como parte de mi aprendizaje, me he propuesto hacer un suripanta que busque palabras en un archivo, esta palabras están en otro archivo. Os dejo un trozo del código ... for line in file (a, 'r') if palabra in líne: print line palabra es una función que lee el archivo fuente, donde se encuentran las palabras que quiero buscar. Esté el el fallo que me devuelve: TypeError: 'in ' requires string as left operand! nota file Entiendo que no le puedo pasar a if un archivo, ni una función, sólo palabras, y eso es lo que no se hacer. Necesito qué me guíen. Tal vez usando listas... En tal caso cual es el tamaño máximo de una lista???. Gracias a todos. ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From otrocorreoinutil en gmail.com Sun Jun 8 20:51:55 2014 From: otrocorreoinutil en gmail.com (David) Date: Sun, 08 Jun 2014 19:51:55 +0100 Subject: [Python-es] Buscar palabras en un archivo In-Reply-To: References: Message-ID: <5394B0CB.8070508@gmail.com> Primero tiens que abrir el archivo: f=open(a,'r') luego leer el fichero: lines = f.readlines() Y ya puedes hacer el bucle: for line in lines: if palabra in line: print line David El 08/06/14 11:05, ruben linux escribió: > Saludos a todos, este es mi primer correo a la lista. > > Estoy empezando con Python, y este me pareció un buen sitio para > empezar y aprender. Decirnos antes de nada que este tema ya se lo > busque en Google, y no doy con la respuesta adecuada, o la que me > soluciona el problema. > > Como parte de mi aprendizaje, me he propuesto hacer un suripanta que > busque palabras en un archivo, esta palabras están en otro archivo. Os > dejo un trozo del código > ... > for line in file (a, 'r') > if palabra in líne: > print line > > palabra es una función que lee el archivo fuente, donde se encuentran > las palabras que quiero buscar. Esté el el fallo que me devuelve: > > TypeError: 'in ' requires string as left operand! nota file > > Entiendo que no le puedo pasar a if un archivo, ni una función, sólo > palabras, y eso es lo que no se hacer. Necesito qué me guíen. > > Tal vez usando listas... En tal caso cual es el tamaño máximo de una > lista???. > > Gracias a todos. > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From monobot.soft en gmail.com Sun Jun 8 21:30:13 2014 From: monobot.soft en gmail.com (monoBOT) Date: Sun, 8 Jun 2014 20:30:13 +0100 Subject: [Python-es] Buscar palabras en un archivo In-Reply-To: <5394B0CB.8070508@gmail.com> References: <5394B0CB.8070508@gmail.com> Message-ID: Yo usaría with ... para no tener que cerrar el archivo, aunque en este caso no importa tanto porque estás en solo lectura. with open('fichero', 'r') as fichero: bla bla bla El 8 de junio de 2014, 19:51, David escribió: > Primero tiens que abrir el archivo: > > f=open(a,'r') > > luego leer el fichero: > > lines = f.readlines() > > Y ya puedes hacer el bucle: > > for line in lines: > if palabra in line: > print line > > David > > El 08/06/14 11:05, ruben linux escribió: > > Saludos a todos, este es mi primer correo a la lista. > > Estoy empezando con Python, y este me pareció un buen sitio para empezar > y aprender. Decirnos antes de nada que este tema ya se lo busque en Google, > y no doy con la respuesta adecuada, o la que me soluciona el problema. > > Como parte de mi aprendizaje, me he propuesto hacer un suripanta que > busque palabras en un archivo, esta palabras están en otro archivo. Os dejo > un trozo del código > ... > for line in file (a, 'r') > if palabra in líne: > print line > > palabra es una función que lee el archivo fuente, donde se encuentran > las palabras que quiero buscar. Esté el el fallo que me devuelve: > > TypeError: 'in ' requires string as left operand! nota file > > Entiendo que no le puedo pasar a if un archivo, ni una función, sólo > palabras, y eso es lo que no se hacer. Necesito qué me guíen. > > Tal vez usando listas... En tal caso cual es el tamaño máximo de una > lista???. > > Gracias a todos. > > > _______________________________________________ > Python-es mailing listPython-es en python.orghttps://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > -- *monoBOT* Visite mi sitio(Visit my site): monobotblog.alvarezalonso.es ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From pych3m4 en gmail.com Sun Jun 8 21:48:49 2014 From: pych3m4 en gmail.com (Chema Cortes) Date: Sun, 8 Jun 2014 21:48:49 +0200 Subject: [Python-es] Buscar palabras en un archivo In-Reply-To: References: Message-ID: El 8 de junio de 2014, 12:05, ruben linux escribió: > Saludos a todos, este es mi primer correo a la lista. > > Estoy empezando con Python, y este me pareció un buen sitio para empezar y > aprender. Decirnos antes de nada que este tema ya se lo busque en Google, y > no doy con la respuesta adecuada, o la que me soluciona el problema. > > Como parte de mi aprendizaje, me he propuesto hacer un suripanta que > busque palabras en un archivo, esta palabras están en otro archivo. Os dejo > un trozo del código > ... > for line in file (a, 'r') > if palabra in líne: > print line > > palabra es una función que lee el archivo fuente, donde se encuentran las > palabras que quiero buscar. Esté el el fallo que me devuelve: > > TypeError: 'in ' requires string as left operand! nota file > Según este error, 'palabra' es un 'file' (fichero), no una función.pyth > > Entiendo que no le puedo pasar a if un archivo, ni una función, sólo > palabras, y eso es lo que no se hacer. Necesito qué me guíen. > A un if hay que pasarle una expresión que se evalúe a true o false. El problema es que tienes que comparar contenidos comparables, una cadena dentro de otra cadena, o un elemento dentro de una lista. > > Tal vez usando listas... En tal caso cual es el tamaño máximo de una > lista???. > Puedes usar listas y su tamaño es ilimitado. Pero no te aconsejo que intentes llenar la memoria con una lista. Para estas cosas es mejor usar "iteradores" y sólo cargar en memoria los datos de un conjunto de datos con los que vayas a operar. Por ejemplo, los objetos ficheros se definen como iteradores. Para saber si una palabra está en un fichero: with open("fichero.txt") as f: for line in f: if palabra in line: print "Encontrada" El fichero puede contener Gigas o Teras de información, pero sólo se necesita la memoria suficiente para cargar una línea de texto. Con algo más de experiencia, se puede hacer cosas más sofisticadas con los iteradores: def allseen(words): state = set(words) def _aux(lst): state -= set(lst) return not bool(state) # have seen all the words? return _aux allfounds = allseen(words) # 'allfounds' is a function encontrada = any( allfounds(word for word in words if word in line) for line in open("fichero.txt")) La expresión es verdadera si todas las palabras de la lista "words" existen en el fichero. Además, no es necesario procesar el resto del fichero si se encuentran todas las palabras. En el momento que "allfounds" devuelve el primer true, la función "any" retorna true y se para todo el proceso. PD: no te agobies si no entiendes nada ahora mismo. Que se pueda hacer no quiere decir que todo el mundo lo haga así. Hazlo del modo que mejor comprendas y pregunta lo que te surga. > > Gracias a todos. > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > -- Hyperreals *R "Quarks, bits y otras criaturas infinitesimales": http://ch3m4.org/blog Buscador Python Hispano: http://ch3m4.org/python-es ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From fdanesse en gmail.com Mon Jun 9 22:08:28 2014 From: fdanesse en gmail.com (Flavio Danesse) Date: Mon, 9 Jun 2014 17:08:28 -0300 Subject: [Python-es] Buscar palabras en un archivo In-Reply-To: References: Message-ID: Si abres el archivo y lo lees, pasandole su contenido a una variable, esa variable será de tipo string. Y los objetos string tienen una función llamada *find* *find(s, *args)* *rfind(s, sub [,start [,end]]) -> in* Return the lowest index in s where substring sub is found, such that sub is contained within s[start,end]. Optional arguments start and end are interpreted as in slice notation. Return -1 on failure. El 8 de junio de 2014, 16:48, Chema Cortes escribió: > El 8 de junio de 2014, 12:05, ruben linux > escribió: > > Saludos a todos, este es mi primer correo a la lista. >> >> Estoy empezando con Python, y este me pareció un buen sitio para empezar >> y aprender. Decirnos antes de nada que este tema ya se lo busque en Google, >> y no doy con la respuesta adecuada, o la que me soluciona el problema. >> >> Como parte de mi aprendizaje, me he propuesto hacer un suripanta que >> busque palabras en un archivo, esta palabras están en otro archivo. Os dejo >> un trozo del código >> ... >> for line in file (a, 'r') >> if palabra in líne: >> print line >> >> palabra es una función que lee el archivo fuente, donde se encuentran las >> palabras que quiero buscar. Esté el el fallo que me devuelve: >> >> TypeError: 'in ' requires string as left operand! nota file >> > > Según este error, 'palabra' es un 'file' (fichero), no una función.pyth > > >> >> Entiendo que no le puedo pasar a if un archivo, ni una función, sólo >> palabras, y eso es lo que no se hacer. Necesito qué me guíen. >> > > A un if hay que pasarle una expresión que se evalúe a true o false. El > problema es que tienes que comparar contenidos comparables, una cadena > dentro de otra cadena, o un elemento dentro de una lista. > > >> >> Tal vez usando listas... En tal caso cual es el tamaño máximo de una >> lista???. >> > > > Puedes usar listas y su tamaño es ilimitado. Pero no te aconsejo que > intentes llenar la memoria con una lista. Para estas cosas es mejor usar > "iteradores" y sólo cargar en memoria los datos de un conjunto de datos con > los que vayas a operar. > > Por ejemplo, los objetos ficheros se definen como iteradores. Para saber > si una palabra está en un fichero: > > with open("fichero.txt") as f: > for line in f: > if palabra in line: > print "Encontrada" > > El fichero puede contener Gigas o Teras de información, pero sólo se > necesita la memoria suficiente para cargar una línea de texto. > > Con algo más de experiencia, se puede hacer cosas más sofisticadas con los > iteradores: > > def allseen(words): > state = set(words) > def _aux(lst): > state -= set(lst) > return not bool(state) # have seen all the words? > return _aux > > allfounds = allseen(words) # 'allfounds' is a function > encontrada = any( allfounds(word for word in words if word in line) for > line in open("fichero.txt")) > > La expresión es verdadera si todas las palabras de la lista "words" > existen en el fichero. > > Además, no es necesario procesar el resto del fichero si se encuentran > todas las palabras. En el momento que "allfounds" devuelve el primer true, > la función "any" retorna true y se para todo el proceso. > > > > PD: no te agobies si no entiendes nada ahora mismo. Que se pueda hacer no > quiere decir que todo el mundo lo haga así. Hazlo del modo que mejor > comprendas y pregunta lo que te surga. > > > > > >> >> Gracias a todos. >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > > > -- > Hyperreals *R "Quarks, bits y otras criaturas infinitesimales": > http://ch3m4.org/blog > Buscador Python Hispano: http://ch3m4.org/python-es > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From marco.kuait en gmail.com Tue Jun 10 04:45:17 2014 From: marco.kuait en gmail.com (Marco Herrarte) Date: Mon, 9 Jun 2014 20:45:17 -0600 Subject: [Python-es] Filtro de tabla en django Message-ID: Buenas gente, En django 1.6 genero la siguiente tabla: {% for user in user_list %} {% endfor %}
User Company
{{ user }} {{ user.userprofile.company }}
Tengo el requerimiento que debe existir un filtro, por tal he encontrado el siguiente plugin jquery: http://sunnywalker.github.io/jQuery.FilterTable/ Este plugin crea un input sobre la tabla para filtrar los campos el cual me funciona bien si utilizo una tabla ya definida pero si género el html desde django no me apaaqrece el input del filtro Alguien puede ayudarme indicando mi error o alguna solución? Muchas gracias ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From aymg01 en gmail.com Tue Jun 10 08:26:43 2014 From: aymg01 en gmail.com (Andres Marin) Date: Tue, 10 Jun 2014 01:26:43 -0500 Subject: [Python-es] Auto-completado con ayuda Message-ID: Hola, Estoy tratando de personalizar mi IDE con vim y encontre para autocompletar el omnicomplete, q tiene algo muy importante (la ayuda) pero no esta actualizado, por ejemplo, no tiene el argparse q viene en python 2.7. Por otro lado esta pydiction super bueno pq si no tiene un modulo solo le corres el script y ya queda actualizado, pero no tiene la ayuda. Algun autocomplete q tenga lo mejor de estos 2? Es decir q se pueda actualizar pero que tenga la ayuda. Gracias. ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From kikocorreoso en gmail.com Tue Jun 10 09:17:21 2014 From: kikocorreoso en gmail.com (Kiko) Date: Tue, 10 Jun 2014 09:17:21 +0200 Subject: [Python-es] Auto-completado con ayuda In-Reply-To: References: Message-ID: El 10 de junio de 2014, 8:26, Andres Marin escribió: > Hola, > > Estoy tratando de personalizar mi IDE con vim y encontre para > autocompletar el omnicomplete, q tiene algo muy importante (la ayuda) pero > no esta actualizado, por ejemplo, no tiene el argparse q viene en python > 2.7. Por otro lado esta pydiction super bueno pq si no tiene un modulo solo > le corres el script y ya queda actualizado, pero no tiene la ayuda. > > Algun autocomplete q tenga lo mejor de estos 2? Es decir q se pueda > actualizar pero que tenga la ayuda. > Aquí tienes una documentación muy completa para personalizar vim, incluyendo autocompletado: https://github.com/joedicastro/dotfiles/blob/a87b42deb9c1132c8f801bb91d119f0b26d21d68/vim/README.md > Gracias. > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From pych3m4 en gmail.com Tue Jun 10 11:59:20 2014 From: pych3m4 en gmail.com (Chema Cortes) Date: Tue, 10 Jun 2014 11:59:20 +0200 Subject: [Python-es] Auto-completado con ayuda In-Reply-To: References: Message-ID: El 10 de junio de 2014, 9:17, Kiko escribió: > > > > El 10 de junio de 2014, 8:26, Andres Marin escribió: > > Hola, >> >> Estoy tratando de personalizar mi IDE con vim y encontre para >> autocompletar el omnicomplete, q tiene algo muy importante (la ayuda) pero >> no esta actualizado, por ejemplo, no tiene el argparse q viene en python >> 2.7. Por otro lado esta pydiction super bueno pq si no tiene un modulo solo >> le corres el script y ya queda actualizado, pero no tiene la ayuda. >> >> Algun autocomplete q tenga lo mejor de estos 2? Es decir q se pueda >> actualizar pero que tenga la ayuda. >> > Aquí tienes una documentación muy completa para personalizar vim, > incluyendo autocompletado: > > https://github.com/joedicastro/dotfiles/blob/a87b42deb9c1132c8f801bb91d119f0b26d21d68/vim/README.md > > Tan sólo comentar que ese enlace es de un "commit" viejo. Es mejor usar la última revisión: https://github.com/joedicastro/dotfiles/tree/master/vim Un trabajo de recopilación impresionante de Joe di Castro. > >> Gracias. >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > -- Hyperreals *R "Quarks, bits y otras criaturas infinitesimales": http://ch3m4.org/blog Buscador Python Hispano: http://ch3m4.org/python-es ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From ivanroms en aol.com Mon Jun 9 22:55:10 2014 From: ivanroms en aol.com (Ivan Roms) Date: Mon, 9 Jun 2014 22:55:10 +0200 Subject: [Python-es] Crear imagenes como resultado de otras Message-ID: <5DA36A92-118B-43DE-84FD-BCB74850C887@aol.com> Hola, he aprendido a base de bien gracias a esta lista de mail. Ahora me he propuesto un pequeño reto que no consigo realizar del todo. Es el siguiente: # RETO 1 A partir de una 'imagenPequeña' y una 'imagenGrande', crear una tercera 'imagenResultado' del tamaño de 'imagenGrande' y fondo transparente, que contenga copias de la 'imagenPequeña' en las mismas posiciones detectadas en 'imagenGrande'. Un croquis de esto podría ser algo así: Gracias de antemano! ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: ------------ próxima parte ------------ A non-text attachment was scrubbed... Name: test.jpg Type: image/jpeg Size: 22345 bytes Desc: no disponible URL: From kikocorreoso en gmail.com Tue Jun 10 12:23:57 2014 From: kikocorreoso en gmail.com (Kiko) Date: Tue, 10 Jun 2014 12:23:57 +0200 Subject: [Python-es] Crear imagenes como resultado de otras In-Reply-To: <5DA36A92-118B-43DE-84FD-BCB74850C887@aol.com> References: <5DA36A92-118B-43DE-84FD-BCB74850C887@aol.com> Message-ID: El 9 de junio de 2014, 22:55, Ivan Roms escribió: > Hola, he aprendido a base de bien gracias a esta lista de mail. > Ahora me he propuesto un pequeño reto que no consigo realizar del todo. > Es el siguiente: > > # RETO 1 > A partir de una 'imagenPequeña' y una 'imagenGrande', crear una tercera > 'imagenResultado' del tamaño de 'imagenGrande' y fondo transparente, que > contenga copias de la 'imagenPequeña' en las mismas posiciones detectadas > en 'imagenGrande'. > Un croquis de esto podría ser algo así: > [image: test.jpg] > > Gracias de antemano! > > Puedes usar simpleCV u openCV. Aquí tienes un ejemplo que te podría ayudar: http://stackoverflow.com/questions/11424002/how-to-detect-simple-geometric-shapes-using-opencv Si conoces los colores de las formas que te interesa conservar y no se repiten con los colores de otras formas que no te interesan podrías simplemente usar numpy para manejar de forma eficiente la imagen y matplotlib o PIL/pillow para leer/guardar la imagen. Los colores que no te interesan les das el mismo valor que los colores del fondo. > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: ------------ próxima parte ------------ A non-text attachment was scrubbed... Name: test.jpg Type: image/jpeg Size: 22345 bytes Desc: no disponible URL: From pych3m4 en gmail.com Tue Jun 10 12:33:57 2014 From: pych3m4 en gmail.com (Chema Cortes) Date: Tue, 10 Jun 2014 12:33:57 +0200 Subject: [Python-es] Crear imagenes como resultado de otras In-Reply-To: <5DA36A92-118B-43DE-84FD-BCB74850C887@aol.com> References: <5DA36A92-118B-43DE-84FD-BCB74850C887@aol.com> Message-ID: El 9 de junio de 2014, 22:55, Ivan Roms escribió: > Hola, he aprendido a base de bien gracias a esta lista de mail. > Ahora me he propuesto un pequeño reto que no consigo realizar del todo. > Es el siguiente: > > # RETO 1 > A partir de una 'imagenPequeña' y una 'imagenGrande', crear una tercera > 'imagenResultado' del tamaño de 'imagenGrande' y fondo transparente, que > contenga copias de la 'imagenPequeña' en las mismas posiciones detectadas > en 'imagenGrande'. > Un croquis de esto podría ser algo así: > [image: test.jpg] > Así, tal como lo planteas, sería un problema de complejidad O(n^2 m^2) que podría costar bastante tiempo de cómputo. ¿Hay alguna suponsición más como que sean figuras regulares de colores planos?¿son formas de tamaños idénticos? ¿Sólo quieres detectar translaciones o también rotaciones? Hay técnicas de "machine learning" para reconocer formas y colores, pero creo que no es exactamente el reto que te propones. -- Hyperreals *R "Quarks, bits y otras criaturas infinitesimales": http://ch3m4.org/blog Buscador Python Hispano: http://ch3m4.org/python-es ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: ------------ próxima parte ------------ A non-text attachment was scrubbed... Name: test.jpg Type: image/jpeg Size: 22345 bytes Desc: no disponible URL: From faltet en gmail.com Tue Jun 10 13:35:59 2014 From: faltet en gmail.com (Francesc Alted) Date: Tue, 10 Jun 2014 13:35:59 +0200 Subject: [Python-es] Auto-completado con ayuda In-Reply-To: References: Message-ID: <5396ED9F.8050105@gmail.com> On 6/10/14, 11:59 AM, Chema Cortes wrote: > > > > El 10 de junio de 2014, 9:17, Kiko > escribió: > > > > > El 10 de junio de 2014, 8:26, Andres Marin > escribió: > > Hola, > > Estoy tratando de personalizar mi IDE con vim y encontre para > autocompletar el omnicomplete, q tiene algo muy importante (la > ayuda) pero no esta actualizado, por ejemplo, no tiene el > argparse q viene en python 2.7. Por otro lado esta pydiction > super bueno pq si no tiene un modulo solo le corres el script > y ya queda actualizado, pero no tiene la ayuda. > > Algun autocomplete q tenga lo mejor de estos 2? Es decir q se > pueda actualizar pero que tenga la ayuda. > > Aquí tienes una documentación muy completa para personalizar vim, > incluyendo autocompletado: > https://github.com/joedicastro/dotfiles/blob/a87b42deb9c1132c8f801bb91d119f0b26d21d68/vim/README.md > > > Tan sólo comentar que ese enlace es de un "commit" viejo. Es mejor > usar la última revisión: > > https://github.com/joedicastro/dotfiles/tree/master/vim > > Un trabajo de recopilación impresionante de Joe di Castro. Exacto: Im-presionante. Incluso a un usuario emacs de vieja escuela como yo le dan ganas de cambiar :P -- Francesc Alted From kikocorreoso en gmail.com Tue Jun 10 13:41:09 2014 From: kikocorreoso en gmail.com (Kiko) Date: Tue, 10 Jun 2014 13:41:09 +0200 Subject: [Python-es] Auto-completado con ayuda In-Reply-To: <5396ED9F.8050105@gmail.com> References: <5396ED9F.8050105@gmail.com> Message-ID: El 10 de junio de 2014, 13:35, Francesc Alted escribió: > On 6/10/14, 11:59 AM, Chema Cortes wrote: > >> >> >> >> El 10 de junio de 2014, 9:17, Kiko > kikocorreoso en gmail.com>> escribió: >> >> >> >> >> El 10 de junio de 2014, 8:26, Andres Marin > > escribió: >> >> Hola, >> >> Estoy tratando de personalizar mi IDE con vim y encontre para >> autocompletar el omnicomplete, q tiene algo muy importante (la >> ayuda) pero no esta actualizado, por ejemplo, no tiene el >> argparse q viene en python 2.7. Por otro lado esta pydiction >> super bueno pq si no tiene un modulo solo le corres el script >> y ya queda actualizado, pero no tiene la ayuda. >> >> Algun autocomplete q tenga lo mejor de estos 2? Es decir q se >> pueda actualizar pero que tenga la ayuda. >> >> Aquí tienes una documentación muy completa para personalizar vim, >> incluyendo autocompletado: >> https://github.com/joedicastro/dotfiles/blob/ >> a87b42deb9c1132c8f801bb91d119f0b26d21d68/vim/README.md >> >> >> Tan sólo comentar que ese enlace es de un "commit" viejo. Es mejor usar >> la última revisión: >> >> https://github.com/joedicastro/dotfiles/tree/master/vim >> >> Un trabajo de recopilación impresionante de Joe di Castro. >> > Gracias, Chema. > > Exacto: Im-presionante. Incluso a un usuario emacs de vieja escuela como > yo le dan ganas de cambiar :P Coincido con vosotros. Increible. Muchas gracias a Joe. > > > -- > Francesc Alted > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From faltet en gmail.com Tue Jun 10 13:43:53 2014 From: faltet en gmail.com (Francesc Alted) Date: Tue, 10 Jun 2014 13:43:53 +0200 Subject: [Python-es] Crear imagenes como resultado de otras In-Reply-To: <5DA36A92-118B-43DE-84FD-BCB74850C887@aol.com> References: <5DA36A92-118B-43DE-84FD-BCB74850C887@aol.com> Message-ID: <5396EF79.5080804@gmail.com> On 6/9/14, 10:55 PM, Ivan Roms wrote: > Hola, he aprendido a base de bien gracias a esta lista de mail. > Ahora me he propuesto un pequeño reto que no consigo realizar del todo. > Es el siguiente: > > # RETO 1 > A partir de una 'imagenPequeña' y una 'imagenGrande', crear una > tercera 'imagenResultado' del tamaño de 'imagenGrande' y fondo > transparente, que contenga copias de la 'imagenPequeña' en las mismas > posiciones detectadas en 'imagenGrande'. > Un croquis de esto podría ser algo así: > test.jpg > > Gracias de antemano! Scikit-image que te deja segmentar de manera bastante facil: http://scikit-image.org/docs/dev/auto_examples/plot_watershed.html Con los segmentos puedes calcular diferents propiedades: http://scikit-image.org/docs/dev/auto_examples/plot_regionprops.html#example-plot-regionprops-py de manera que, si coinciden con tu patron, puedes dejar la region original, y si no, la borras (la rellenas de ceros). Podrias incluso coger un conjunto de propiedades que sea invariante respecto a rotaciones o cambios de escala, pero eso ya depende del problema. -- Francesc Alted From jbc.develop en gmail.com Tue Jun 10 14:52:30 2014 From: jbc.develop en gmail.com (Juan BC) Date: Tue, 10 Jun 2014 09:52:30 -0300 Subject: [Python-es] Auto-completado con ayuda In-Reply-To: References: <5396ED9F.8050105@gmail.com> Message-ID: Mas orientado a python https://github.com/fisadev/fisa-vim-config El 10/06/2014 08:41, "Kiko" escribió: > > > > El 10 de junio de 2014, 13:35, Francesc Alted escribió: > >> On 6/10/14, 11:59 AM, Chema Cortes wrote: >> >>> >>> >>> >>> El 10 de junio de 2014, 9:17, Kiko >> kikocorreoso en gmail.com>> escribió: >>> >>> >>> >>> >>> El 10 de junio de 2014, 8:26, Andres Marin >> > escribió: >>> >>> Hola, >>> >>> Estoy tratando de personalizar mi IDE con vim y encontre para >>> autocompletar el omnicomplete, q tiene algo muy importante (la >>> ayuda) pero no esta actualizado, por ejemplo, no tiene el >>> argparse q viene en python 2.7. Por otro lado esta pydiction >>> super bueno pq si no tiene un modulo solo le corres el script >>> y ya queda actualizado, pero no tiene la ayuda. >>> >>> Algun autocomplete q tenga lo mejor de estos 2? Es decir q se >>> pueda actualizar pero que tenga la ayuda. >>> >>> Aquí tienes una documentación muy completa para personalizar vim, >>> incluyendo autocompletado: >>> https://github.com/joedicastro/dotfiles/blob/ >>> a87b42deb9c1132c8f801bb91d119f0b26d21d68/vim/README.md >>> >>> >>> Tan sólo comentar que ese enlace es de un "commit" viejo. Es mejor usar >>> la última revisión: >>> >>> https://github.com/joedicastro/dotfiles/tree/master/vim >>> >>> Un trabajo de recopilación impresionante de Joe di Castro. >>> >> > Gracias, Chema. > > >> >> Exacto: Im-presionante. Incluso a un usuario emacs de vieja escuela como >> yo le dan ganas de cambiar :P > > > Coincido con vosotros. Increible. > Muchas gracias a Joe. > > >> >> >> -- >> Francesc Alted >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From aymg01 en gmail.com Tue Jun 10 15:36:47 2014 From: aymg01 en gmail.com (Andres Marin) Date: Tue, 10 Jun 2014 08:36:47 -0500 Subject: [Python-es] Auto-completado con ayuda In-Reply-To: References: <5396ED9F.8050105@gmail.com> Message-ID: Sres muchas gracias, voy a leer y a tratar de implementar ya q sus comentarios son solo buenos. Slds. El 10/06/2014 06:41, "Kiko" escribió: > > > > El 10 de junio de 2014, 13:35, Francesc Alted escribió: > >> On 6/10/14, 11:59 AM, Chema Cortes wrote: >> >>> >>> >>> >>> El 10 de junio de 2014, 9:17, Kiko >> kikocorreoso en gmail.com>> escribió: >>> >>> >>> >>> >>> El 10 de junio de 2014, 8:26, Andres Marin >> > escribió: >>> >>> Hola, >>> >>> Estoy tratando de personalizar mi IDE con vim y encontre para >>> autocompletar el omnicomplete, q tiene algo muy importante (la >>> ayuda) pero no esta actualizado, por ejemplo, no tiene el >>> argparse q viene en python 2.7. Por otro lado esta pydiction >>> super bueno pq si no tiene un modulo solo le corres el script >>> y ya queda actualizado, pero no tiene la ayuda. >>> >>> Algun autocomplete q tenga lo mejor de estos 2? Es decir q se >>> pueda actualizar pero que tenga la ayuda. >>> >>> Aquí tienes una documentación muy completa para personalizar vim, >>> incluyendo autocompletado: >>> https://github.com/joedicastro/dotfiles/blob/ >>> a87b42deb9c1132c8f801bb91d119f0b26d21d68/vim/README.md >>> >>> >>> Tan sólo comentar que ese enlace es de un "commit" viejo. Es mejor usar >>> la última revisión: >>> >>> https://github.com/joedicastro/dotfiles/tree/master/vim >>> >>> Un trabajo de recopilación impresionante de Joe di Castro. >>> >> > Gracias, Chema. > > >> >> Exacto: Im-presionante. Incluso a un usuario emacs de vieja escuela como >> yo le dan ganas de cambiar :P > > > Coincido con vosotros. Increible. > Muchas gracias a Joe. > > >> >> >> -- >> Francesc Alted >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From diego.uribe.gamez en gmail.com Tue Jun 10 15:45:05 2014 From: diego.uribe.gamez en gmail.com (DiegoUG) Date: Tue, 10 Jun 2014 08:45:05 -0500 Subject: [Python-es] Filtro de tabla en django In-Reply-To: References: Message-ID: Hola, En principio esta es la lista de python, si vas a hablar de Django te recomiendo usar la lista correcta django-es en googlegroups.com Por otro lado esto parece una consulta de jquery, para estas consultas también tienen sus espacios, foros y listas de correo que aunque son en ingles pues son muy útiles Saludos. El jun 9, 2014 9:40 PM, "Marco Herrarte" escribió: > Buenas gente, > > En django 1.6 genero la siguiente tabla: > > > > > > > > > > {% for user in user_list %} > > > > > {% endfor %} >
UserCompany
{{ user }}{{ user.userprofile.company }}
> > Tengo el requerimiento que debe existir un filtro, por tal he encontrado > el siguiente plugin jquery: > http://sunnywalker.github.io/jQuery.FilterTable/ > > Este plugin crea un input sobre la tabla para filtrar los campos el cual > me funciona bien si utilizo una tabla ya definida pero si género el html > desde django no me apaaqrece el input del filtro > > Alguien puede ayudarme indicando mi error o alguna solución? > > Muchas gracias > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From marco.kuait en gmail.com Tue Jun 10 17:30:36 2014 From: marco.kuait en gmail.com (Marco Herrarte) Date: Tue, 10 Jun 2014 09:30:36 -0600 Subject: [Python-es] Filtro de tabla en django In-Reply-To: References: Message-ID: Muchas gracias Diego, Saludos, El 10 de junio de 2014, 7:45, DiegoUG escribió: > Hola, > > En principio esta es la lista de python, si vas a hablar de Django te > recomiendo usar la lista correcta django-es en googlegroups.com > > Por otro lado esto parece una consulta de jquery, para estas consultas > también tienen sus espacios, foros y listas de correo que aunque son en > ingles pues son muy útiles > > Saludos. > El jun 9, 2014 9:40 PM, "Marco Herrarte" escribió: > >> Buenas gente, >> >> En django 1.6 genero la siguiente tabla: >> >> >> >> >> >> >> >> >> >> {% for user in user_list %} >> >> >> >> >> {% endfor %} >>
UserCompany
{{ user }}{{ user.userprofile.company }}
>> >> Tengo el requerimiento que debe existir un filtro, por tal he encontrado >> el siguiente plugin jquery: >> http://sunnywalker.github.io/jQuery.FilterTable/ >> >> Este plugin crea un input sobre la tabla para filtrar los campos el cual >> me funciona bien si utilizo una tabla ya definida pero si género el html >> desde django no me apaaqrece el input del filtro >> >> Alguien puede ayudarme indicando mi error o alguna solución? >> >> Muchas gracias >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From ivanroms en aol.com Wed Jun 11 14:24:20 2014 From: ivanroms en aol.com (Ivan Roms) Date: Wed, 11 Jun 2014 14:24:20 +0200 Subject: [Python-es] Crear imagenes como resultado de otras In-Reply-To: <5396EF79.5080804@gmail.com> References: <5DA36A92-118B-43DE-84FD-BCB74850C887@aol.com> <5396EF79.5080804@gmail.com> Message-ID: Voy a seguir el consejo de Francesc y probaré con Scikit-image. Es bastante interesante lo que he visto en el link. Gracias por las respuestas. From artus.lla en autistici.org Wed Jun 11 15:25:53 2014 From: artus.lla en autistici.org (=?ISO-8859-1?Q?Arturo_Llaja_Alarc=F3n?=) Date: Wed, 11 Jun 2014 08:25:53 -0500 Subject: [Python-es] Auto-completado con ayuda In-Reply-To: References: <5396ED9F.8050105@gmail.com> Message-ID: <539858E1.4030006@autistici.org> On 10/06/14 08:36, Andres Marin wrote: > > Sres muchas gracias, voy a leer y a tratar de implementar ya q sus > comentarios son solo buenos. > > Slds. > > El 10/06/2014 06:41, "Kiko" > escribió: > > > > > El 10 de junio de 2014, 13:35, Francesc Alted > escribió: > > On 6/10/14, 11:59 AM, Chema Cortes wrote: > > > > > El 10 de junio de 2014, 9:17, Kiko > >> escribió: > > > > > El 10 de junio de 2014, 8:26, Andres Marin > > >> > escribió: > > Hola, > > Estoy tratando de personalizar mi IDE con vim y > encontre para > autocompletar el omnicomplete, q tiene algo muy > importante (la > ayuda) pero no esta actualizado, por ejemplo, no > tiene el > argparse q viene en python 2.7. Por otro lado esta > pydiction > super bueno pq si no tiene un modulo solo le > corres el script > y ya queda actualizado, pero no tiene la ayuda. > > Algun autocomplete q tenga lo mejor de estos 2? Es > decir q se > pueda actualizar pero que tenga la ayuda. > > Aquí tienes una documentación muy completa para > personalizar vim, > incluyendo autocompletado: > https://github.com/joedicastro/dotfiles/blob/a87b42deb9c1132c8f801bb91d119f0b26d21d68/vim/README.md > > > Tan sólo comentar que ese enlace es de un "commit" viejo. > Es mejor usar la última revisión: > > https://github.com/joedicastro/dotfiles/tree/master/vim > > Un trabajo de recopilación impresionante de Joe di Castro. > > > Gracias, Chema. > > > Exacto: Im-presionante. Incluso a un usuario emacs de vieja > escuela como yo le dan ganas de cambiar :P > > > Coincido con vosotros. Increible. > Muchas gracias a Joe. > > > > -- > Francesc Alted > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ Emacs también tiene lo suyo :) http://tkf.github.io/emacs-jedi/latest/ ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From fernando.oliva.hueto en gmail.com Wed Jun 11 16:23:50 2014 From: fernando.oliva.hueto en gmail.com (Fernando Oliva Hueto) Date: Wed, 11 Jun 2014 16:23:50 +0200 Subject: [Python-es] Auto-completado con ayuda In-Reply-To: <539858E1.4030006@autistici.org> References: <5396ED9F.8050105@gmail.com> <539858E1.4030006@autistici.org> Message-ID: Igual me meto en un jardín muy profundo y me odiáis (:P), pero yo uso eclipse con PyDev y va fantástico. El 11 de junio de 2014, 15:25, Arturo Llaja Alarcón escribió: > On 10/06/14 08:36, Andres Marin wrote: > > Sres muchas gracias, voy a leer y a tratar de implementar ya q sus > comentarios son solo buenos. > > Slds. > El 10/06/2014 06:41, "Kiko" escribió: > >> >> >> >> El 10 de junio de 2014, 13:35, Francesc Alted >> escribió: >> >>> On 6/10/14, 11:59 AM, Chema Cortes wrote: >>> >>>> >>>> >>>> >>>> El 10 de junio de 2014, 9:17, Kiko >>> kikocorreoso en gmail.com>> escribió: >>>> >>>> >>>> >>>> >>>> El 10 de junio de 2014, 8:26, Andres Marin >>> > escribió: >>>> >>>> Hola, >>>> >>>> Estoy tratando de personalizar mi IDE con vim y encontre para >>>> autocompletar el omnicomplete, q tiene algo muy importante (la >>>> ayuda) pero no esta actualizado, por ejemplo, no tiene el >>>> argparse q viene en python 2.7. Por otro lado esta pydiction >>>> super bueno pq si no tiene un modulo solo le corres el script >>>> y ya queda actualizado, pero no tiene la ayuda. >>>> >>>> Algun autocomplete q tenga lo mejor de estos 2? Es decir q se >>>> pueda actualizar pero que tenga la ayuda. >>>> >>>> Aquí tienes una documentación muy completa para personalizar vim, >>>> incluyendo autocompletado: >>>> >>>> https://github.com/joedicastro/dotfiles/blob/a87b42deb9c1132c8f801bb91d119f0b26d21d68/vim/README.md >>>> >>>> >>>> Tan sólo comentar que ese enlace es de un "commit" viejo. Es mejor usar >>>> la última revisión: >>>> >>>> https://github.com/joedicastro/dotfiles/tree/master/vim >>>> >>>> Un trabajo de recopilación impresionante de Joe di Castro. >>>> >>> >> Gracias, Chema. >> >> >>> >>> Exacto: Im-presionante. Incluso a un usuario emacs de vieja escuela >>> como yo le dan ganas de cambiar :P >> >> >> Coincido con vosotros. Increible. >> Muchas gracias a Joe. >> >> >>> >>> >>> -- >>> Francesc Alted >>> >>> _______________________________________________ >>> Python-es mailing list >>> Python-es en python.org >>> https://mail.python.org/mailman/listinfo/python-es >>> FAQ: http://python-es-faq.wikidot.com/ >>> >> >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > > _______________________________________________ > Python-es mailing listPython-es en python.orghttps://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > Emacs también tiene lo suyo :) > > http://tkf.github.io/emacs-jedi/latest/ > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > -- *Fernando Oliva Hueto* *?Los programas deben ser escritos para que los lean las personas, y sólo incidentalmente, para que lo ejecuten las máquinas?. * ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From faltet en gmail.com Wed Jun 11 19:38:31 2014 From: faltet en gmail.com (Francesc Alted) Date: Wed, 11 Jun 2014 19:38:31 +0200 Subject: [Python-es] Auto-completado con ayuda In-Reply-To: References: <5396ED9F.8050105@gmail.com> <539858E1.4030006@autistici.org> Message-ID: <53989417.1050805@gmail.com> De que te vamos a odiar? :) De hecho Chema siempre ha dicho que Eclipse/PyDev deberia ser parte de la gran unificacion de herramientas de programacion. En mi caso (e imagino que en la mayoria), el hecho de usar cierto editor y no otro es un tema de pereza para hacer que mis dedos dejen de ir a ciertas partes del teclado para hacer ciertas operaciones. Despues de años de uso, esas combinaciones estan grabadas a fuego en mi cerebro y luchar contra ello seria tanto como renunciar a parte de mi yo. Dicho esto, es verdad que las guerras sobre editores e IDEs en general siempre ha sido bastante religiosas. Aunque es necesario decir que emacs siempre sale victorioso: http://xkcd.com/378/ Francesc On 6/11/14, 4:23 PM, Fernando Oliva Hueto wrote: > Igual me meto en un jardín muy profundo y me odiáis (:P), pero yo uso > eclipse con PyDev y va fantástico. > > > El 11 de junio de 2014, 15:25, Arturo Llaja Alarcón > > escribió: > > On 10/06/14 08:36, Andres Marin wrote: >> >> Sres muchas gracias, voy a leer y a tratar de implementar ya q >> sus comentarios son solo buenos. >> >> Slds. >> >> El 10/06/2014 06:41, "Kiko" > > escribió: >> >> >> >> >> El 10 de junio de 2014, 13:35, Francesc Alted >> > escribió: >> >> On 6/10/14, 11:59 AM, Chema Cortes wrote: >> >> >> >> >> El 10 de junio de 2014, 9:17, Kiko >> > >> > >> escribió: >> >> >> >> >> El 10 de junio de 2014, 8:26, Andres Marin >> >> >> >> escribió: >> >> Hola, >> >> Estoy tratando de personalizar mi IDE con vim y >> encontre para >> autocompletar el omnicomplete, q tiene algo muy >> importante (la >> ayuda) pero no esta actualizado, por ejemplo, no tiene el >> argparse q viene en python 2.7. Por otro lado esta >> pydiction >> super bueno pq si no tiene un modulo solo le corres >> el script >> y ya queda actualizado, pero no tiene la ayuda. >> >> Algun autocomplete q tenga lo mejor de estos 2? Es >> decir q se >> pueda actualizar pero que tenga la ayuda. >> >> Aquí tienes una documentación muy completa para >> personalizar vim, >> incluyendo autocompletado: >> https://github.com/joedicastro/dotfiles/blob/a87b42deb9c1132c8f801bb91d119f0b26d21d68/vim/README.md >> >> >> Tan sólo comentar que ese enlace es de un "commit" >> viejo. Es mejor usar la última revisión: >> >> https://github.com/joedicastro/dotfiles/tree/master/vim >> >> Un trabajo de recopilación impresionante de Joe di >> Castro. >> >> >> Gracias, Chema. >> >> >> Exacto: Im-presionante. Incluso a un usuario emacs de >> vieja escuela como yo le dan ganas de cambiar :P >> >> >> Coincido con vosotros. Increible. >> Muchas gracias a Joe. >> >> >> >> -- >> Francesc Alted >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ:http://python-es-faq.wikidot.com/ > Emacs también tiene lo suyo :) > > http://tkf.github.io/emacs-jedi/latest/ > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > > > > -- > *Fernando Oliva Hueto* > * > * > /?Los programas deben ser escritos para que los lean las personas, y > sólo incidentalmente, para que lo ejecuten las máquinas?. / > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ -- Francesc Alted From revxfire en gmail.com Wed Jun 11 19:41:40 2014 From: revxfire en gmail.com (Victor Villalobos) Date: Wed, 11 Jun 2014 13:11:40 -0430 Subject: [Python-es] Auto-completado con ayuda In-Reply-To: <53989417.1050805@gmail.com> References: <5396ED9F.8050105@gmail.com> <539858E1.4030006@autistici.org> <53989417.1050805@gmail.com> Message-ID: Esta genial ese comando de emac.jaja. El 11 de junio de 2014, 13:08, Francesc Alted escribió: > De que te vamos a odiar? :) De hecho Chema siempre ha dicho que > Eclipse/PyDev deberia ser parte de la gran unificacion de herramientas de > programacion. > > En mi caso (e imagino que en la mayoria), el hecho de usar cierto editor y > no otro es un tema de pereza para hacer que mis dedos dejen de ir a ciertas > partes del teclado para hacer ciertas operaciones. Despues de años de uso, > esas combinaciones estan grabadas a fuego en mi cerebro y luchar contra > ello seria tanto como renunciar a parte de mi yo. > > Dicho esto, es verdad que las guerras sobre editores e IDEs en general > siempre ha sido bastante religiosas. Aunque es necesario decir que emacs > siempre sale victorioso: > > http://xkcd.com/378/ > > Francesc > > > On 6/11/14, 4:23 PM, Fernando Oliva Hueto wrote: > >> Igual me meto en un jardín muy profundo y me odiáis (:P), pero yo uso >> eclipse con PyDev y va fantástico. >> >> >> El 11 de junio de 2014, 15:25, Arturo Llaja Alarcón < >> artus.lla en autistici.org > escribió: >> >> >> On 10/06/14 08:36, Andres Marin wrote: >> >>> >>> Sres muchas gracias, voy a leer y a tratar de implementar ya q >>> sus comentarios son solo buenos. >>> >>> Slds. >>> >>> El 10/06/2014 06:41, "Kiko" >> > escribió: >>> >>> >>> >>> >>> El 10 de junio de 2014, 13:35, Francesc Alted >>> > escribió: >>> >>> >>> On 6/10/14, 11:59 AM, Chema Cortes wrote: >>> >>> >>> >>> >>> El 10 de junio de 2014, 9:17, Kiko >>> >> >>> >> >>> >> escribió: >>> >>> >>> >>> >>> El 10 de junio de 2014, 8:26, Andres Marin >>> >>> >> >>> >>> escribió: >>> >>> Hola, >>> >>> Estoy tratando de personalizar mi IDE con vim y >>> encontre para >>> autocompletar el omnicomplete, q tiene algo muy >>> importante (la >>> ayuda) pero no esta actualizado, por ejemplo, no tiene el >>> argparse q viene en python 2.7. Por otro lado esta >>> pydiction >>> super bueno pq si no tiene un modulo solo le corres >>> el script >>> y ya queda actualizado, pero no tiene la ayuda. >>> >>> Algun autocomplete q tenga lo mejor de estos 2? Es >>> decir q se >>> pueda actualizar pero que tenga la ayuda. >>> >>> Aquí tienes una documentación muy completa para >>> personalizar vim, >>> incluyendo autocompletado: >>> https://github.com/joedicastro/dotfiles/blob/ >>> a87b42deb9c1132c8f801bb91d119f0b26d21d68/vim/README.md >>> >>> >>> Tan sólo comentar que ese enlace es de un "commit" >>> viejo. Es mejor usar la última revisión: >>> >>> https://github.com/joedicastro/dotfiles/tree/master/vim >>> >>> Un trabajo de recopilación impresionante de Joe di >>> Castro. >>> >>> >>> Gracias, Chema. >>> >>> >>> Exacto: Im-presionante. Incluso a un usuario emacs de >>> vieja escuela como yo le dan ganas de cambiar :P >>> >>> >>> Coincido con vosotros. Increible. >>> Muchas gracias a Joe. >>> >>> >>> >>> -- Francesc Alted >>> >>> _______________________________________________ >>> Python-es mailing list >>> Python-es en python.org >>> >>> https://mail.python.org/mailman/listinfo/python-es >>> FAQ: http://python-es-faq.wikidot.com/ >>> >>> >>> >>> _______________________________________________ >>> Python-es mailing list >>> Python-es en python.org >>> >>> https://mail.python.org/mailman/listinfo/python-es >>> FAQ: http://python-es-faq.wikidot.com/ >>> >>> >>> >>> _______________________________________________ >>> Python-es mailing list >>> Python-es en python.org >>> >>> https://mail.python.org/mailman/listinfo/python-es >>> FAQ:http://python-es-faq.wikidot.com/ >>> >> Emacs también tiene lo suyo :) >> >> http://tkf.github.io/emacs-jedi/latest/ >> >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> >> >> >> -- >> *Fernando Oliva Hueto* >> * >> * >> /?Los programas deben ser escritos para que los lean las personas, y sólo >> incidentalmente, para que lo ejecuten las máquinas?. / >> >> >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> > > > -- > Francesc Alted > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > -- Victor Villalobos Bahia Pirata Inversiones Villalobos Balzan. 0412 6882141 ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From kikocorreoso en gmail.com Wed Jun 11 19:52:25 2014 From: kikocorreoso en gmail.com (Kiko) Date: Wed, 11 Jun 2014 19:52:25 +0200 Subject: [Python-es] Auto-completado con ayuda In-Reply-To: <53989417.1050805@gmail.com> References: <5396ED9F.8050105@gmail.com> <539858E1.4030006@autistici.org> <53989417.1050805@gmail.com> Message-ID: > > Dicho esto, es verdad que las guerras sobre editores e IDEs en general > siempre ha sido bastante religiosas. Aunque es necesario decir que emacs > siempre sale victorioso: > jajaja, ¡qué troll! ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From jdpd en gmx.es Wed Jun 11 19:53:21 2014 From: jdpd en gmx.es (Jaime Perea) Date: Wed, 11 Jun 2014 19:53:21 +0200 Subject: [Python-es] Auto-completado con ayuda In-Reply-To: <53989417.1050805@gmail.com> References: <53989417.1050805@gmail.com> Message-ID: <5198760.H6iHDoWRGG@cristina> Una pregunta técnica para los enterados en estos temas. Suelo usar emacs porque hasta ahora es el único que me proporciona un entorno común para mis lenguajes de programación: python, C y fortran (¡en la cara no por favor, que quedan marcas! ... es que soy físico, comprendedlo). ¿Tiene eclipse , pydev o algo similar, esa opción de varios lenguajes?. El que más se me acerca (de lo que conozco) es kate, pero no termina de llegar. Un saludo -- Jaime Perea El Miércoles, 11 de junio de 2014 19:38:31 Francesc Alted escribió: > De que te vamos a odiar? :) De hecho Chema siempre ha dicho que > Eclipse/PyDev deberia ser parte de la gran unificacion de herramientas > de programacion. > > En mi caso (e imagino que en la mayoria), el hecho de usar cierto editor > y no otro es un tema de pereza para hacer que mis dedos dejen de ir a > ciertas partes del teclado para hacer ciertas operaciones. Despues de > años de uso, esas combinaciones estan grabadas a fuego en mi cerebro y > luchar contra ello seria tanto como renunciar a parte de mi yo. > > Dicho esto, es verdad que las guerras sobre editores e IDEs en general > siempre ha sido bastante religiosas. Aunque es necesario decir que emacs > siempre sale victorioso: > > http://xkcd.com/378/ > > Francesc > > On 6/11/14, 4:23 PM, Fernando Oliva Hueto wrote: > > Igual me meto en un jardín muy profundo y me odiáis (:P), pero yo uso > > eclipse con PyDev y va fantástico. > > > > > > El 11 de junio de 2014, 15:25, Arturo Llaja Alarcón > > > > > escribió: > > On 10/06/14 08:36, Andres Marin wrote: > >> Sres muchas gracias, voy a leer y a tratar de implementar ya q > >> sus comentarios son solo buenos. > >> > >> Slds. > >> > >> El 10/06/2014 06:41, "Kiko" >> > >> > escribió: > >> El 10 de junio de 2014, 13:35, Francesc Alted > >> > >> > escribió: > >> On 6/10/14, 11:59 AM, Chema Cortes wrote: > >> El 10 de junio de 2014, 9:17, Kiko > >> >> > >> >> >> escribió: > >> > >> > >> > >> > >> El 10 de junio de 2014, 8:26, Andres Marin > >> > >> >> > >> escribió: > >> > >> Hola, > >> > >> Estoy tratando de personalizar mi IDE con vim y > >> encontre para > >> autocompletar el omnicomplete, q tiene algo muy > >> importante (la > >> ayuda) pero no esta actualizado, por ejemplo, no tiene el > >> argparse q viene en python 2.7. Por otro lado esta > >> pydiction > >> super bueno pq si no tiene un modulo solo le corres > >> el script > >> y ya queda actualizado, pero no tiene la ayuda. > >> > >> Algun autocomplete q tenga lo mejor de estos 2? Es > >> decir q se > >> pueda actualizar pero que tenga la ayuda. > >> > >> Aquí tienes una documentación muy completa para > >> personalizar vim, > >> incluyendo autocompletado: > >> https://github.com/joedicastro/dotfiles/blob/a87b42deb9c1 > >> 132c8f801bb91d119f0b26d21d68/vim/README.md > >> > >> > >> Tan sólo comentar que ese enlace es de un "commit" > >> viejo. Es mejor usar la última revisión: > >> > >> https://github.com/joedicastro/dotfiles/tree/master/vim > >> > >> Un trabajo de recopilación impresionante de Joe di > >> Castro. > >> > >> Gracias, Chema. > >> > >> Exacto: Im-presionante. Incluso a un usuario emacs de > >> vieja escuela como yo le dan ganas de cambiar :P > >> > >> Coincido con vosotros. Increible. > >> Muchas gracias a Joe. > >> > >> _______________________________________________ > >> Python-es mailing list > >> Python-es en python.org > >> https://mail.python.org/mailman/listinfo/python-es > >> FAQ: http://python-es-faq.wikidot.com/ > >> > >> _______________________________________________ > >> Python-es mailing list > >> Python-es en python.org > >> https://mail.python.org/mailman/listinfo/python-es > >> FAQ: http://python-es-faq.wikidot.com/ > >> > >> _______________________________________________ > >> Python-es mailing list > >> Python-es en python.org > >> https://mail.python.org/mailman/listinfo/python-es > >> FAQ:http://python-es-faq.wikidot.com/ > > > > Emacs también tiene lo suyo :) > > > > http://tkf.github.io/emacs-jedi/latest/ > > > > > > _______________________________________________ > > Python-es mailing list > > Python-es en python.org > > https://mail.python.org/mailman/listinfo/python-es > > FAQ: http://python-es-faq.wikidot.com/ > > > > _______________________________________________ > > Python-es mailing list > > Python-es en python.org > > https://mail.python.org/mailman/listinfo/python-es > > FAQ: http://python-es-faq.wikidot.com/ From kikocorreoso en gmail.com Wed Jun 11 19:58:47 2014 From: kikocorreoso en gmail.com (Kiko) Date: Wed, 11 Jun 2014 19:58:47 +0200 Subject: [Python-es] Auto-completado con ayuda In-Reply-To: <5198760.H6iHDoWRGG@cristina> References: <53989417.1050805@gmail.com> <5198760.H6iHDoWRGG@cristina> Message-ID: El 11 de junio de 2014, 19:53, Jaime Perea escribió: > Una pregunta técnica para los enterados en estos temas. > > Suelo usar emacs porque hasta ahora es el único que me proporciona un > entorno > común para mis lenguajes de programación: python, C y fortran (¡en la cara > no > por favor, que quedan marcas! ... es que soy físico, comprendedlo). ¿Tiene > eclipse , pydev o algo similar, esa opción de varios lenguajes?. El que > más se > me acerca (de lo que conozco) es kate, pero no termina de llegar. > > Qué pasa con los físicos?? ;-) http://www.eclipse.org/photran/ http://stackoverflow.com/questions/15602862/how-to-add-different-programming-languages-to-eclipse-c-c-java ... > Un saludo > > -- > Jaime Perea > > El Miércoles, 11 de junio de 2014 19:38:31 Francesc Alted escribió: > > De que te vamos a odiar? :) De hecho Chema siempre ha dicho que > > Eclipse/PyDev deberia ser parte de la gran unificacion de herramientas > > de programacion. > > > > En mi caso (e imagino que en la mayoria), el hecho de usar cierto editor > > y no otro es un tema de pereza para hacer que mis dedos dejen de ir a > > ciertas partes del teclado para hacer ciertas operaciones. Despues de > > años de uso, esas combinaciones estan grabadas a fuego en mi cerebro y > > luchar contra ello seria tanto como renunciar a parte de mi yo. > > > > Dicho esto, es verdad que las guerras sobre editores e IDEs en general > > siempre ha sido bastante religiosas. Aunque es necesario decir que emacs > > siempre sale victorioso: > > > > http://xkcd.com/378/ > > > > Francesc > > > > On 6/11/14, 4:23 PM, Fernando Oliva Hueto wrote: > > > Igual me meto en un jardín muy profundo y me odiáis (:P), pero yo uso > > > eclipse con PyDev y va fantástico. > > > > > > > > > El 11 de junio de 2014, 15:25, Arturo Llaja Alarcón > > > > > > > escribió: > > > On 10/06/14 08:36, Andres Marin wrote: > > >> Sres muchas gracias, voy a leer y a tratar de implementar ya q > > >> sus comentarios son solo buenos. > > >> > > >> Slds. > > >> > > >> El 10/06/2014 06:41, "Kiko" > >> > > >> > escribió: > > >> El 10 de junio de 2014, 13:35, Francesc Alted > > >> > > >> > escribió: > > >> On 6/10/14, 11:59 AM, Chema Cortes wrote: > > >> El 10 de junio de 2014, 9:17, Kiko > > >> > >> > > >> > >> >> escribió: > > >> > > >> > > >> > > >> > > >> El 10 de junio de 2014, 8:26, Andres Marin > > >> > > >> >> > > >> escribió: > > >> > > >> Hola, > > >> > > >> Estoy tratando de personalizar mi IDE con vim y > > >> encontre para > > >> autocompletar el omnicomplete, q tiene algo muy > > >> importante (la > > >> ayuda) pero no esta actualizado, por ejemplo, no > tiene el > > >> argparse q viene en python 2.7. Por otro lado esta > > >> pydiction > > >> super bueno pq si no tiene un modulo solo le corres > > >> el script > > >> y ya queda actualizado, pero no tiene la ayuda. > > >> > > >> Algun autocomplete q tenga lo mejor de estos 2? Es > > >> decir q se > > >> pueda actualizar pero que tenga la ayuda. > > >> > > >> Aquí tienes una documentación muy completa para > > >> personalizar vim, > > >> incluyendo autocompletado: > > >> > https://github.com/joedicastro/dotfiles/blob/a87b42deb9c1 > > >> 132c8f801bb91d119f0b26d21d68/vim/README.md > > >> > > >> > > >> Tan sólo comentar que ese enlace es de un "commit" > > >> viejo. Es mejor usar la última revisión: > > >> > > >> > https://github.com/joedicastro/dotfiles/tree/master/vim > > >> > > >> Un trabajo de recopilación impresionante de Joe di > > >> Castro. > > >> > > >> Gracias, Chema. > > >> > > >> Exacto: Im-presionante. Incluso a un usuario emacs de > > >> vieja escuela como yo le dan ganas de cambiar :P > > >> > > >> Coincido con vosotros. Increible. > > >> Muchas gracias a Joe. > > >> > > >> _______________________________________________ > > >> Python-es mailing list > > >> Python-es en python.org > > >> https://mail.python.org/mailman/listinfo/python-es > > >> FAQ: http://python-es-faq.wikidot.com/ > > >> > > >> _______________________________________________ > > >> Python-es mailing list > > >> Python-es en python.org > > >> https://mail.python.org/mailman/listinfo/python-es > > >> FAQ: http://python-es-faq.wikidot.com/ > > >> > > >> _______________________________________________ > > >> Python-es mailing list > > >> Python-es en python.org > > >> https://mail.python.org/mailman/listinfo/python-es > > >> FAQ:http://python-es-faq.wikidot.com/ > > > > > > Emacs también tiene lo suyo :) > > > > > > http://tkf.github.io/emacs-jedi/latest/ > > > > > > > > > _______________________________________________ > > > Python-es mailing list > > > Python-es en python.org > > > https://mail.python.org/mailman/listinfo/python-es > > > FAQ: http://python-es-faq.wikidot.com/ > > > > > > _______________________________________________ > > > Python-es mailing list > > > Python-es en python.org > > > https://mail.python.org/mailman/listinfo/python-es > > > FAQ: http://python-es-faq.wikidot.com/ > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From davidmenhur en gmail.com Wed Jun 11 20:06:39 2014 From: davidmenhur en gmail.com (=?UTF-8?B?RGHPgGlk?=) Date: Wed, 11 Jun 2014 20:06:39 +0200 Subject: [Python-es] Auto-completado con ayuda In-Reply-To: <5198760.H6iHDoWRGG@cristina> References: <53989417.1050805@gmail.com> <5198760.H6iHDoWRGG@cristina> Message-ID: 2014-06-11 19:53 GMT+02:00 Jaime Perea : > python, C y fortran (¡en la cara no > por favor, que quedan marcas! ... es que soy físico, comprendedlo) > Sólo mereces ser pegado si usas versiones de FORTRAN anteriores a f90. No hay razón* para traer a este mundo nuevos engendros en F77. ___ * Excepto Windows. Pero en física Windows es usado por menos de un 2% (dato recordado de una estadística no profesional). ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From jdpd en gmx.es Wed Jun 11 20:09:08 2014 From: jdpd en gmx.es (Jaime Perea) Date: Wed, 11 Jun 2014 20:09:08 +0200 Subject: [Python-es] Auto-completado con ayuda In-Reply-To: References: <5198760.H6iHDoWRGG@cristina> Message-ID: <3846775.NsNDYvkOJO@cristina> El Miércoles, 11 de junio de 2014 19:58:47 usted escribió: > El 11 de junio de 2014, 19:53, Jaime Perea escribió: > > Una pregunta técnica para los enterados en estos temas. > > > > Suelo usar emacs porque hasta ahora es el único que me proporciona un > > entorno > > común para mis lenguajes de programación: python, C y fortran (¡en la cara > > no > > por favor, que quedan marcas! ... es que soy físico, comprendedlo). ¿Tiene > > eclipse , pydev o algo similar, esa opción de varios lenguajes?. El que > > más se > > me acerca (de lo que conozco) es kate, pero no termina de llegar. > > Qué pasa con los físicos?? ;-) > > http://www.eclipse.org/photran/ > http://stackoverflow.com/questions/15602862/how-to-add-different-programming > -languages-to-eclipse-c-c-java ... > Muchas gracias! Por cierto, dándole vueltas a manuales de fortran, digamos más modernos, me empecé a encontrar módulos con métodos que tienen "self", con polimorfismo, herencia y cosas así, desde luego esto es ya no es lo que era cuando yo era joven :-) No si lo de físico está bien, que voy a decir. Siempre se puede mejorar siendo un ingeniero obligado a usar sólo matlab (que feo es el joio). Saludos a todos -- Jaime Perea > > Un saludo > > > > -- > > Jaime Perea > > > > El Miércoles, 11 de junio de 2014 19:38:31 Francesc Alted escribió: > > > De que te vamos a odiar? :) De hecho Chema siempre ha dicho que > > > Eclipse/PyDev deberia ser parte de la gran unificacion de herramientas > > > de programacion. > > > > > > En mi caso (e imagino que en la mayoria), el hecho de usar cierto editor > > > y no otro es un tema de pereza para hacer que mis dedos dejen de ir a > > > ciertas partes del teclado para hacer ciertas operaciones. Despues de > > > años de uso, esas combinaciones estan grabadas a fuego en mi cerebro y > > > luchar contra ello seria tanto como renunciar a parte de mi yo. > > > > > > Dicho esto, es verdad que las guerras sobre editores e IDEs en general > > > siempre ha sido bastante religiosas. Aunque es necesario decir que emacs > > > siempre sale victorioso: > > > > > > http://xkcd.com/378/ > > > > > > Francesc > > > > > > On 6/11/14, 4:23 PM, Fernando Oliva Hueto wrote: > > > > Igual me meto en un jardín muy profundo y me odiáis (:P), pero yo uso > > > > eclipse con PyDev y va fantástico. > > > > > > > > > > > > El 11 de junio de 2014, 15:25, Arturo Llaja Alarcón > > > > > > > > > escribió: > > > > On 10/06/14 08:36, Andres Marin wrote: > > > >> Sres muchas gracias, voy a leer y a tratar de implementar ya q > > > >> sus comentarios son solo buenos. > > > >> > > > >> Slds. > > > >> > > > >> El 10/06/2014 06:41, "Kiko" > > >> > > > >> > escribió: > > > >> El 10 de junio de 2014, 13:35, Francesc Alted > > > >> > > > >> > escribió: > > > >> On 6/10/14, 11:59 AM, Chema Cortes wrote: > > > >> El 10 de junio de 2014, 9:17, Kiko > > > >> > > >> > > > >> > > >> >> escribió: > > > >> > > > >> > > > >> > > > >> > > > >> El 10 de junio de 2014, 8:26, Andres Marin > > > >> > > > >> >> > > > >> escribió: > > > >> > > > >> Hola, > > > >> > > > >> Estoy tratando de personalizar mi IDE con vim y > > > >> encontre para > > > >> autocompletar el omnicomplete, q tiene algo muy > > > >> importante (la > > > >> ayuda) pero no esta actualizado, por ejemplo, no > > > > tiene el > > > > > >> argparse q viene en python 2.7. Por otro lado esta > > > >> pydiction > > > >> super bueno pq si no tiene un modulo solo le corres > > > >> el script > > > >> y ya queda actualizado, pero no tiene la ayuda. > > > >> > > > >> Algun autocomplete q tenga lo mejor de estos 2? Es > > > >> decir q se > > > >> pueda actualizar pero que tenga la ayuda. > > > >> > > > >> Aquí tienes una documentación muy completa para > > > >> personalizar vim, > > > > > >> incluyendo autocompletado: > > https://github.com/joedicastro/dotfiles/blob/a87b42deb9c1 > > > > > >> 132c8f801bb91d119f0b26d21d68/vim/README.md > > > >> > > > >> > > > >> Tan sólo comentar que ese enlace es de un "commit" > > > > > >> viejo. Es mejor usar la última revisión: > > https://github.com/joedicastro/dotfiles/tree/master/vim > > > > > >> Un trabajo de recopilación impresionante de Joe di > > > >> Castro. > > > >> > > > >> Gracias, Chema. > > > >> > > > >> Exacto: Im-presionante. Incluso a un usuario emacs de > > > >> vieja escuela como yo le dan ganas de cambiar :P > > > >> > > > >> Coincido con vosotros. Increible. > > > >> Muchas gracias a Joe. > > > >> > > > >> _______________________________________________ > > > >> Python-es mailing list > > > >> Python-es en python.org > > > >> https://mail.python.org/mailman/listinfo/python-es > > > >> FAQ: http://python-es-faq.wikidot.com/ > > > >> > > > >> _______________________________________________ > > > >> Python-es mailing list > > > >> Python-es en python.org > > > >> https://mail.python.org/mailman/listinfo/python-es > > > >> FAQ: http://python-es-faq.wikidot.com/ > > > >> > > > >> _______________________________________________ > > > >> Python-es mailing list > > > >> Python-es en python.org > > > >> https://mail.python.org/mailman/listinfo/python-es > > > >> FAQ:http://python-es-faq.wikidot.com/ > > > > > > > > Emacs también tiene lo suyo :) > > > > > > > > http://tkf.github.io/emacs-jedi/latest/ > > > > > > > > > > > > _______________________________________________ > > > > Python-es mailing list > > > > Python-es en python.org > > > > https://mail.python.org/mailman/listinfo/python-es > > > > FAQ: http://python-es-faq.wikidot.com/ > > > > > > > > _______________________________________________ > > > > Python-es mailing list > > > > Python-es en python.org > > > > https://mail.python.org/mailman/listinfo/python-es > > > > FAQ: http://python-es-faq.wikidot.com/ > > > > _______________________________________________ > > Python-es mailing list > > Python-es en python.org > > https://mail.python.org/mailman/listinfo/python-es > > FAQ: http://python-es-faq.wikidot.com/ From kikocorreoso en gmail.com Wed Jun 11 20:18:02 2014 From: kikocorreoso en gmail.com (Kiko) Date: Wed, 11 Jun 2014 20:18:02 +0200 Subject: [Python-es] Auto-completado con ayuda In-Reply-To: <3846775.NsNDYvkOJO@cristina> References: <5198760.H6iHDoWRGG@cristina> <3846775.NsNDYvkOJO@cristina> Message-ID: El 11 de junio de 2014, 20:09, Jaime Perea escribió: > El Miércoles, 11 de junio de 2014 19:58:47 usted escribió: > > El 11 de junio de 2014, 19:53, Jaime Perea escribió: > > > Una pregunta técnica para los enterados en estos temas. > > > > > > Suelo usar emacs porque hasta ahora es el único que me proporciona un > > > entorno > > > común para mis lenguajes de programación: python, C y fortran (¡en la > cara > > > no > > > por favor, que quedan marcas! ... es que soy físico, comprendedlo). > ¿Tiene > > > eclipse , pydev o algo similar, esa opción de varios lenguajes?. El que > > > más se > > > me acerca (de lo que conozco) es kate, pero no termina de llegar. > > > > Qué pasa con los físicos?? ;-) > > > > http://www.eclipse.org/photran/ > > > http://stackoverflow.com/questions/15602862/how-to-add-different-programming > > -languages-to-eclipse-c-c-java ... > > > > Muchas gracias! > > Por cierto, dándole vueltas a manuales de fortran, digamos más modernos, me > empecé a encontrar módulos con métodos que tienen "self", con polimorfismo, > herencia y cosas así, desde luego esto es ya no es lo que era cuando yo > era > joven :-) > > No si lo de físico está bien, que voy a decir. Siempre se puede mejorar > siendo un ingeniero obligado a usar sólo matlab (que feo es el joio). > > Seas lo que seas, no te lo tomes muy en serio y disfrútalo que son dos días: https://twitter.com/SciencePorn/status/466045190101557248 :-D > Saludos a todos > > -- > Jaime Perea > > > > > > Un saludo > > > > > > -- > > > Jaime Perea > > > > > > El Miércoles, 11 de junio de 2014 19:38:31 Francesc Alted escribió: > > > > De que te vamos a odiar? :) De hecho Chema siempre ha dicho que > > > > Eclipse/PyDev deberia ser parte de la gran unificacion de > herramientas > > > > de programacion. > > > > > > > > En mi caso (e imagino que en la mayoria), el hecho de usar cierto > editor > > > > y no otro es un tema de pereza para hacer que mis dedos dejen de ir a > > > > ciertas partes del teclado para hacer ciertas operaciones. Despues de > > > > años de uso, esas combinaciones estan grabadas a fuego en mi cerebro > y > > > > luchar contra ello seria tanto como renunciar a parte de mi yo. > > > > > > > > Dicho esto, es verdad que las guerras sobre editores e IDEs en > general > > > > siempre ha sido bastante religiosas. Aunque es necesario decir que > emacs > > > > siempre sale victorioso: > > > > > > > > http://xkcd.com/378/ > > > > > > > > Francesc > > > > > > > > On 6/11/14, 4:23 PM, Fernando Oliva Hueto wrote: > > > > > Igual me meto en un jardín muy profundo y me odiáis (:P), pero yo > uso > > > > > eclipse con PyDev y va fantástico. > > > > > > > > > > > > > > > El 11 de junio de 2014, 15:25, Arturo Llaja Alarcón > > > > > > > > > > > > escribió: > > > > > On 10/06/14 08:36, Andres Marin wrote: > > > > >> Sres muchas gracias, voy a leer y a tratar de implementar ya q > > > > >> sus comentarios son solo buenos. > > > > >> > > > > >> Slds. > > > > >> > > > > >> El 10/06/2014 06:41, "Kiko" > > > >> > > > > >> > escribió: > > > > >> El 10 de junio de 2014, 13:35, Francesc Alted > > > > >> > > > > >> > escribió: > > > > >> On 6/10/14, 11:59 AM, Chema Cortes wrote: > > > > >> El 10 de junio de 2014, 9:17, Kiko > > > > >> > > > >> > > > > >> > > > >> >> escribió: > > > > >> > > > > >> > > > > >> > > > > >> > > > > >> El 10 de junio de 2014, 8:26, Andres Marin > > > > >> > > > > >> >>> > > > > >> escribió: > > > > >> > > > > >> Hola, > > > > >> > > > > >> Estoy tratando de personalizar mi IDE con vim y > > > > >> encontre para > > > > >> autocompletar el omnicomplete, q tiene algo muy > > > > >> importante (la > > > > >> ayuda) pero no esta actualizado, por ejemplo, no > > > > > > tiene el > > > > > > > >> argparse q viene en python 2.7. Por otro lado esta > > > > >> pydiction > > > > >> super bueno pq si no tiene un modulo solo le > corres > > > > >> el script > > > > >> y ya queda actualizado, pero no tiene la ayuda. > > > > >> > > > > >> Algun autocomplete q tenga lo mejor de estos 2? Es > > > > >> decir q se > > > > >> pueda actualizar pero que tenga la ayuda. > > > > >> > > > > >> Aquí tienes una documentación muy completa para > > > > >> personalizar vim, > > > > > > > >> incluyendo autocompletado: > > > https://github.com/joedicastro/dotfiles/blob/a87b42deb9c1 > > > > > > > >> 132c8f801bb91d119f0b26d21d68/vim/README.md > > > > >> > > > > >> > > > > >> Tan sólo comentar que ese enlace es de un "commit" > > > > > > > >> viejo. Es mejor usar la última revisión: > > > https://github.com/joedicastro/dotfiles/tree/master/vim > > > > > > > >> Un trabajo de recopilación impresionante de Joe di > > > > >> Castro. > > > > >> > > > > >> Gracias, Chema. > > > > >> > > > > >> Exacto: Im-presionante. Incluso a un usuario emacs de > > > > >> vieja escuela como yo le dan ganas de cambiar :P > > > > >> > > > > >> Coincido con vosotros. Increible. > > > > >> Muchas gracias a Joe. > > > > >> > > > > >> _______________________________________________ > > > > >> Python-es mailing list > > > > >> Python-es en python.org > > > > >> https://mail.python.org/mailman/listinfo/python-es > > > > >> FAQ: http://python-es-faq.wikidot.com/ > > > > >> > > > > >> _______________________________________________ > > > > >> Python-es mailing list > > > > >> Python-es en python.org > > > > >> https://mail.python.org/mailman/listinfo/python-es > > > > >> FAQ: http://python-es-faq.wikidot.com/ > > > > >> > > > > >> _______________________________________________ > > > > >> Python-es mailing list > > > > >> Python-es en python.org > > > > >> https://mail.python.org/mailman/listinfo/python-es > > > > >> FAQ:http://python-es-faq.wikidot.com/ > > > > > > > > > > Emacs también tiene lo suyo :) > > > > > > > > > > http://tkf.github.io/emacs-jedi/latest/ > > > > > > > > > > > > > > > _______________________________________________ > > > > > Python-es mailing list > > > > > Python-es en python.org > > > > > https://mail.python.org/mailman/listinfo/python-es > > > > > FAQ: http://python-es-faq.wikidot.com/ > > > > > > > > > > _______________________________________________ > > > > > Python-es mailing list > > > > > Python-es en python.org > > > > > https://mail.python.org/mailman/listinfo/python-es > > > > > FAQ: http://python-es-faq.wikidot.com/ > > > > > > _______________________________________________ > > > Python-es mailing list > > > Python-es en python.org > > > https://mail.python.org/mailman/listinfo/python-es > > > FAQ: http://python-es-faq.wikidot.com/ > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From monobot.soft en gmail.com Wed Jun 11 20:43:26 2014 From: monobot.soft en gmail.com (monoBOT) Date: Wed, 11 Jun 2014 19:43:26 +0100 Subject: [Python-es] Auto-completado con ayuda In-Reply-To: <5198760.H6iHDoWRGG@cristina> References: <53989417.1050805@gmail.com> <5198760.H6iHDoWRGG@cristina> Message-ID: Cada pocos meses sale éste tema :-) Yo soy de ST3. Esto es un articulo que hice para animar a los que empiezan con ST3: http://monobotsoft.es/blog/articuloDetalle/530/st3-sublimetext3-como-ide-python/ El 11 de junio de 2014, 18:53, Jaime Perea escribió: > Una pregunta técnica para los enterados en estos temas. > > Suelo usar emacs porque hasta ahora es el único que me proporciona un > entorno > común para mis lenguajes de programación: python, C y fortran (¡en la cara > no > por favor, que quedan marcas! ... es que soy físico, comprendedlo). ¿Tiene > eclipse , pydev o algo similar, esa opción de varios lenguajes?. El que > más se > me acerca (de lo que conozco) es kate, pero no termina de llegar. > > Un saludo > > -- > Jaime Perea > > El Miércoles, 11 de junio de 2014 19:38:31 Francesc Alted escribió: > > De que te vamos a odiar? :) De hecho Chema siempre ha dicho que > > Eclipse/PyDev deberia ser parte de la gran unificacion de herramientas > > de programacion. > > > > En mi caso (e imagino que en la mayoria), el hecho de usar cierto editor > > y no otro es un tema de pereza para hacer que mis dedos dejen de ir a > > ciertas partes del teclado para hacer ciertas operaciones. Despues de > > años de uso, esas combinaciones estan grabadas a fuego en mi cerebro y > > luchar contra ello seria tanto como renunciar a parte de mi yo. > > > > Dicho esto, es verdad que las guerras sobre editores e IDEs en general > > siempre ha sido bastante religiosas. Aunque es necesario decir que emacs > > siempre sale victorioso: > > > > http://xkcd.com/378/ > > > > Francesc > > > > On 6/11/14, 4:23 PM, Fernando Oliva Hueto wrote: > > > Igual me meto en un jardín muy profundo y me odiáis (:P), pero yo uso > > > eclipse con PyDev y va fantástico. > > > > > > > > > El 11 de junio de 2014, 15:25, Arturo Llaja Alarcón > > > > > > > escribió: > > > On 10/06/14 08:36, Andres Marin wrote: > > >> Sres muchas gracias, voy a leer y a tratar de implementar ya q > > >> sus comentarios son solo buenos. > > >> > > >> Slds. > > >> > > >> El 10/06/2014 06:41, "Kiko" > >> > > >> > escribió: > > >> El 10 de junio de 2014, 13:35, Francesc Alted > > >> > > >> > escribió: > > >> On 6/10/14, 11:59 AM, Chema Cortes wrote: > > >> El 10 de junio de 2014, 9:17, Kiko > > >> > >> > > >> > >> >> escribió: > > >> > > >> > > >> > > >> > > >> El 10 de junio de 2014, 8:26, Andres Marin > > >> > > >> >> > > >> escribió: > > >> > > >> Hola, > > >> > > >> Estoy tratando de personalizar mi IDE con vim y > > >> encontre para > > >> autocompletar el omnicomplete, q tiene algo muy > > >> importante (la > > >> ayuda) pero no esta actualizado, por ejemplo, no > tiene el > > >> argparse q viene en python 2.7. Por otro lado esta > > >> pydiction > > >> super bueno pq si no tiene un modulo solo le corres > > >> el script > > >> y ya queda actualizado, pero no tiene la ayuda. > > >> > > >> Algun autocomplete q tenga lo mejor de estos 2? Es > > >> decir q se > > >> pueda actualizar pero que tenga la ayuda. > > >> > > >> Aquí tienes una documentación muy completa para > > >> personalizar vim, > > >> incluyendo autocompletado: > > >> > https://github.com/joedicastro/dotfiles/blob/a87b42deb9c1 > > >> 132c8f801bb91d119f0b26d21d68/vim/README.md > > >> > > >> > > >> Tan sólo comentar que ese enlace es de un "commit" > > >> viejo. Es mejor usar la última revisión: > > >> > > >> > https://github.com/joedicastro/dotfiles/tree/master/vim > > >> > > >> Un trabajo de recopilación impresionante de Joe di > > >> Castro. > > >> > > >> Gracias, Chema. > > >> > > >> Exacto: Im-presionante. Incluso a un usuario emacs de > > >> vieja escuela como yo le dan ganas de cambiar :P > > >> > > >> Coincido con vosotros. Increible. > > >> Muchas gracias a Joe. > > >> > > >> _______________________________________________ > > >> Python-es mailing list > > >> Python-es en python.org > > >> https://mail.python.org/mailman/listinfo/python-es > > >> FAQ: http://python-es-faq.wikidot.com/ > > >> > > >> _______________________________________________ > > >> Python-es mailing list > > >> Python-es en python.org > > >> https://mail.python.org/mailman/listinfo/python-es > > >> FAQ: http://python-es-faq.wikidot.com/ > > >> > > >> _______________________________________________ > > >> Python-es mailing list > > >> Python-es en python.org > > >> https://mail.python.org/mailman/listinfo/python-es > > >> FAQ:http://python-es-faq.wikidot.com/ > > > > > > Emacs también tiene lo suyo :) > > > > > > http://tkf.github.io/emacs-jedi/latest/ > > > > > > > > > _______________________________________________ > > > Python-es mailing list > > > Python-es en python.org > > > https://mail.python.org/mailman/listinfo/python-es > > > FAQ: http://python-es-faq.wikidot.com/ > > > > > > _______________________________________________ > > > Python-es mailing list > > > Python-es en python.org > > > https://mail.python.org/mailman/listinfo/python-es > > > FAQ: http://python-es-faq.wikidot.com/ > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > -- *monoBOT* Visite mi sitio(Visit my site): monobotblog.alvarezalonso.es ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From shaddycls en gmail.com Wed Jun 11 23:11:30 2014 From: shaddycls en gmail.com (Sherab Giovannini) Date: Wed, 11 Jun 2014 23:11:30 +0200 Subject: [Python-es] Auto-completado con ayuda In-Reply-To: References: <53989417.1050805@gmail.com> <5198760.H6iHDoWRGG@cristina> Message-ID: No puedo ver el artículo, dice que la página no existe :( El 11 de junio de 2014, 20:43, monoBOT escribió: > Cada pocos meses sale éste tema :-) Yo soy de ST3. > > Esto es un articulo que hice para animar a los que empiezan con ST3: > > http://monobotsoft.es/blog/articuloDetalle/530/st3-sublimetext3-como-ide-python/ > > > El 11 de junio de 2014, 18:53, Jaime Perea escribió: > > Una pregunta técnica para los enterados en estos temas. >> >> Suelo usar emacs porque hasta ahora es el único que me proporciona un >> entorno >> común para mis lenguajes de programación: python, C y fortran (¡en la >> cara no >> por favor, que quedan marcas! ... es que soy físico, comprendedlo). ¿Tiene >> eclipse , pydev o algo similar, esa opción de varios lenguajes?. El que >> más se >> me acerca (de lo que conozco) es kate, pero no termina de llegar. >> >> Un saludo >> >> -- >> Jaime Perea >> >> El Miércoles, 11 de junio de 2014 19:38:31 Francesc Alted escribió: >> > De que te vamos a odiar? :) De hecho Chema siempre ha dicho que >> > Eclipse/PyDev deberia ser parte de la gran unificacion de herramientas >> > de programacion. >> > >> > En mi caso (e imagino que en la mayoria), el hecho de usar cierto editor >> > y no otro es un tema de pereza para hacer que mis dedos dejen de ir a >> > ciertas partes del teclado para hacer ciertas operaciones. Despues de >> > años de uso, esas combinaciones estan grabadas a fuego en mi cerebro y >> > luchar contra ello seria tanto como renunciar a parte de mi yo. >> > >> > Dicho esto, es verdad que las guerras sobre editores e IDEs en general >> > siempre ha sido bastante religiosas. Aunque es necesario decir que emacs >> > siempre sale victorioso: >> > >> > http://xkcd.com/378/ >> > >> > Francesc >> > >> > On 6/11/14, 4:23 PM, Fernando Oliva Hueto wrote: >> > > Igual me meto en un jardín muy profundo y me odiáis (:P), pero yo uso >> > > eclipse con PyDev y va fantástico. >> > > >> > > >> > > El 11 de junio de 2014, 15:25, Arturo Llaja Alarcón >> > > >> > > > escribió: >> > > On 10/06/14 08:36, Andres Marin wrote: >> > >> Sres muchas gracias, voy a leer y a tratar de implementar ya q >> > >> sus comentarios son solo buenos. >> > >> >> > >> Slds. >> > >> >> > >> El 10/06/2014 06:41, "Kiko" > > >> >> > >> > escribió: >> > >> El 10 de junio de 2014, 13:35, Francesc Alted >> > >> >> > >> > escribió: >> > >> On 6/10/14, 11:59 AM, Chema Cortes wrote: >> > >> El 10 de junio de 2014, 9:17, Kiko >> > >> > > >> >> > >> > > >> >> escribió: >> > >> >> > >> >> > >> >> > >> >> > >> El 10 de junio de 2014, 8:26, Andres Marin >> > >> >> > >> >> >> > >> escribió: >> > >> >> > >> Hola, >> > >> >> > >> Estoy tratando de personalizar mi IDE con vim y >> > >> encontre para >> > >> autocompletar el omnicomplete, q tiene algo muy >> > >> importante (la >> > >> ayuda) pero no esta actualizado, por ejemplo, no >> tiene el >> > >> argparse q viene en python 2.7. Por otro lado esta >> > >> pydiction >> > >> super bueno pq si no tiene un modulo solo le corres >> > >> el script >> > >> y ya queda actualizado, pero no tiene la ayuda. >> > >> >> > >> Algun autocomplete q tenga lo mejor de estos 2? Es >> > >> decir q se >> > >> pueda actualizar pero que tenga la ayuda. >> > >> >> > >> Aquí tienes una documentación muy completa para >> > >> personalizar vim, >> > >> incluyendo autocompletado: >> > >> >> https://github.com/joedicastro/dotfiles/blob/a87b42deb9c1 >> > >> 132c8f801bb91d119f0b26d21d68/vim/README.md >> > >> >> > >> >> > >> Tan sólo comentar que ese enlace es de un "commit" >> > >> viejo. Es mejor usar la última revisión: >> > >> >> > >> >> https://github.com/joedicastro/dotfiles/tree/master/vim >> > >> >> > >> Un trabajo de recopilación impresionante de Joe di >> > >> Castro. >> > >> >> > >> Gracias, Chema. >> > >> >> > >> Exacto: Im-presionante. Incluso a un usuario emacs de >> > >> vieja escuela como yo le dan ganas de cambiar :P >> > >> >> > >> Coincido con vosotros. Increible. >> > >> Muchas gracias a Joe. >> > >> >> > >> _______________________________________________ >> > >> Python-es mailing list >> > >> Python-es en python.org >> > >> https://mail.python.org/mailman/listinfo/python-es >> > >> FAQ: http://python-es-faq.wikidot.com/ >> > >> >> > >> _______________________________________________ >> > >> Python-es mailing list >> > >> Python-es en python.org >> > >> https://mail.python.org/mailman/listinfo/python-es >> > >> FAQ: http://python-es-faq.wikidot.com/ >> > >> >> > >> _______________________________________________ >> > >> Python-es mailing list >> > >> Python-es en python.org >> > >> https://mail.python.org/mailman/listinfo/python-es >> > >> FAQ:http://python-es-faq.wikidot.com/ >> > > >> > > Emacs también tiene lo suyo :) >> > > >> > > http://tkf.github.io/emacs-jedi/latest/ >> > > >> > > >> > > _______________________________________________ >> > > Python-es mailing list >> > > Python-es en python.org >> > > https://mail.python.org/mailman/listinfo/python-es >> > > FAQ: http://python-es-faq.wikidot.com/ >> > > >> > > _______________________________________________ >> > > Python-es mailing list >> > > Python-es en python.org >> > > https://mail.python.org/mailman/listinfo/python-es >> > > FAQ: http://python-es-faq.wikidot.com/ >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> > > > > -- > *monoBOT* > Visite mi sitio(Visit my site): monobotblog.alvarezalonso.es > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > -- HomePage @ Research Labs [AbsshA's Blog ] [PGP Public Key ] ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From monobot.soft en gmail.com Thu Jun 12 00:25:52 2014 From: monobot.soft en gmail.com (monoBOT) Date: Wed, 11 Jun 2014 23:25:52 +0100 Subject: [Python-es] Auto-completado con ayuda In-Reply-To: References: <53989417.1050805@gmail.com> <5198760.H6iHDoWRGG@cristina> Message-ID: Disculpa ... http://www.monobotsoft.es/blog/articuloDetalle/530/st3-sublimetext3-como-ide-python/ El 11 de junio de 2014, 22:11, Sherab Giovannini escribió: > No puedo ver el artículo, dice que la página no existe :( > > > El 11 de junio de 2014, 20:43, monoBOT escribió: > > Cada pocos meses sale éste tema :-) Yo soy de ST3. >> >> Esto es un articulo que hice para animar a los que empiezan con ST3: >> >> http://monobotsoft.es/blog/articuloDetalle/530/st3-sublimetext3-como-ide-python/ >> >> >> El 11 de junio de 2014, 18:53, Jaime Perea escribió: >> >> Una pregunta técnica para los enterados en estos temas. >>> >>> Suelo usar emacs porque hasta ahora es el único que me proporciona un >>> entorno >>> común para mis lenguajes de programación: python, C y fortran (¡en la >>> cara no >>> por favor, que quedan marcas! ... es que soy físico, comprendedlo). >>> ¿Tiene >>> eclipse , pydev o algo similar, esa opción de varios lenguajes?. El que >>> más se >>> me acerca (de lo que conozco) es kate, pero no termina de llegar. >>> >>> Un saludo >>> >>> -- >>> Jaime Perea >>> >>> El Miércoles, 11 de junio de 2014 19:38:31 Francesc Alted escribió: >>> > De que te vamos a odiar? :) De hecho Chema siempre ha dicho que >>> > Eclipse/PyDev deberia ser parte de la gran unificacion de herramientas >>> > de programacion. >>> > >>> > En mi caso (e imagino que en la mayoria), el hecho de usar cierto >>> editor >>> > y no otro es un tema de pereza para hacer que mis dedos dejen de ir a >>> > ciertas partes del teclado para hacer ciertas operaciones. Despues de >>> > años de uso, esas combinaciones estan grabadas a fuego en mi cerebro y >>> > luchar contra ello seria tanto como renunciar a parte de mi yo. >>> > >>> > Dicho esto, es verdad que las guerras sobre editores e IDEs en general >>> > siempre ha sido bastante religiosas. Aunque es necesario decir que >>> emacs >>> > siempre sale victorioso: >>> > >>> > http://xkcd.com/378/ >>> > >>> > Francesc >>> > >>> > On 6/11/14, 4:23 PM, Fernando Oliva Hueto wrote: >>> > > Igual me meto en un jardín muy profundo y me odiáis (:P), pero yo uso >>> > > eclipse con PyDev y va fantástico. >>> > > >>> > > >>> > > El 11 de junio de 2014, 15:25, Arturo Llaja Alarcón >>> > > >>> > > > escribió: >>> > > On 10/06/14 08:36, Andres Marin wrote: >>> > >> Sres muchas gracias, voy a leer y a tratar de implementar ya q >>> > >> sus comentarios son solo buenos. >>> > >> >>> > >> Slds. >>> > >> >>> > >> El 10/06/2014 06:41, "Kiko" >> > >> >>> > >> > escribió: >>> > >> El 10 de junio de 2014, 13:35, Francesc Alted >>> > >> >>> > >> > escribió: >>> > >> On 6/10/14, 11:59 AM, Chema Cortes wrote: >>> > >> El 10 de junio de 2014, 9:17, Kiko >>> > >> >> > >> >>> > >> >> > >> >> escribió: >>> > >> >>> > >> >>> > >> >>> > >> >>> > >> El 10 de junio de 2014, 8:26, Andres Marin >>> > >> >>> > >> >> >>> >>> > >> escribió: >>> > >> >>> > >> Hola, >>> > >> >>> > >> Estoy tratando de personalizar mi IDE con vim y >>> > >> encontre para >>> > >> autocompletar el omnicomplete, q tiene algo muy >>> > >> importante (la >>> > >> ayuda) pero no esta actualizado, por ejemplo, no >>> tiene el >>> > >> argparse q viene en python 2.7. Por otro lado esta >>> > >> pydiction >>> > >> super bueno pq si no tiene un modulo solo le corres >>> > >> el script >>> > >> y ya queda actualizado, pero no tiene la ayuda. >>> > >> >>> > >> Algun autocomplete q tenga lo mejor de estos 2? Es >>> > >> decir q se >>> > >> pueda actualizar pero que tenga la ayuda. >>> > >> >>> > >> Aquí tienes una documentación muy completa para >>> > >> personalizar vim, >>> > >> incluyendo autocompletado: >>> > >> >>> https://github.com/joedicastro/dotfiles/blob/a87b42deb9c1 >>> > >> 132c8f801bb91d119f0b26d21d68/vim/README.md >>> > >> >>> > >> >>> > >> Tan sólo comentar que ese enlace es de un "commit" >>> > >> viejo. Es mejor usar la última revisión: >>> > >> >>> > >> >>> https://github.com/joedicastro/dotfiles/tree/master/vim >>> > >> >>> > >> Un trabajo de recopilación impresionante de Joe di >>> > >> Castro. >>> > >> >>> > >> Gracias, Chema. >>> > >> >>> > >> Exacto: Im-presionante. Incluso a un usuario emacs de >>> > >> vieja escuela como yo le dan ganas de cambiar :P >>> > >> >>> > >> Coincido con vosotros. Increible. >>> > >> Muchas gracias a Joe. >>> > >> >>> > >> _______________________________________________ >>> > >> Python-es mailing list >>> > >> Python-es en python.org >>> > >> https://mail.python.org/mailman/listinfo/python-es >>> > >> FAQ: http://python-es-faq.wikidot.com/ >>> > >> >>> > >> _______________________________________________ >>> > >> Python-es mailing list >>> > >> Python-es en python.org >>> > >> https://mail.python.org/mailman/listinfo/python-es >>> > >> FAQ: http://python-es-faq.wikidot.com/ >>> > >> >>> > >> _______________________________________________ >>> > >> Python-es mailing list >>> > >> Python-es en python.org >>> > >> https://mail.python.org/mailman/listinfo/python-es >>> > >> FAQ:http://python-es-faq.wikidot.com/ >>> > > >>> > > Emacs también tiene lo suyo :) >>> > > >>> > > http://tkf.github.io/emacs-jedi/latest/ >>> > > >>> > > >>> > > _______________________________________________ >>> > > Python-es mailing list >>> > > Python-es en python.org >>> > > https://mail.python.org/mailman/listinfo/python-es >>> > > FAQ: http://python-es-faq.wikidot.com/ >>> > > >>> > > _______________________________________________ >>> > > Python-es mailing list >>> > > Python-es en python.org >>> > > https://mail.python.org/mailman/listinfo/python-es >>> > > FAQ: http://python-es-faq.wikidot.com/ >>> >>> _______________________________________________ >>> Python-es mailing list >>> Python-es en python.org >>> https://mail.python.org/mailman/listinfo/python-es >>> FAQ: http://python-es-faq.wikidot.com/ >>> >> >> >> >> -- >> *monoBOT* >> Visite mi sitio(Visit my site): monobotblog.alvarezalonso.es >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > > > -- > HomePage @ Research Labs > > > [AbsshA's Blog ] > > [PGP Public Key > > ] > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > -- *monoBOT* Visite mi sitio(Visit my site): monobotblog.alvarezalonso.es ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From pych3m4 en gmail.com Thu Jun 12 10:52:27 2014 From: pych3m4 en gmail.com (Chema Cortes) Date: Thu, 12 Jun 2014 10:52:27 +0200 Subject: [Python-es] Auto-completado con ayuda In-Reply-To: <53989417.1050805@gmail.com> References: <5396ED9F.8050105@gmail.com> <539858E1.4030006@autistici.org> <53989417.1050805@gmail.com> Message-ID: El 11 de junio de 2014, 19:38, Francesc Alted escribió: > De que te vamos a odiar? :) De hecho Chema siempre ha dicho que > Eclipse/PyDev deberia ser parte de la gran unificacion de herramientas de > programacion. > Bueno, éso de siempre, siempre... una vez lo comparé con la unificación del Modelo Estándar,... pero me lo hice mirar. Spyder también está muy bien para trabajar con python, integrando varias herramientas de desarrollo como ipython, pyflakes, rope, pylint, pep8, hg,.., Es una acierto que lo hayáis integrado en anaconda. Pero no quisiera entrar a comparar IDEs. Es mejor verse la entrada de " python.majibu.org" que trata de ello: http://python.majibu.org/preguntas/1/cual-es-el-mejor-ide-para-programar-en-python > En mi caso (e imagino que en la mayoria), el hecho de usar cierto editor y > no otro es un tema de pereza para hacer que mis dedos dejen de ir a ciertas > partes del teclado para hacer ciertas operaciones. Despues de años de uso, > esas combinaciones estan grabadas a fuego en mi cerebro y luchar contra > ello seria tanto como renunciar a parte de mi yo. > Pues en mi caso debo sufrir algún trastorno de personalidad múltiple porque uso habitualmente varios IDEs y editores de texto, además de programar en varios lenguajes. Veo más interesante la ayuda que puedan aportar los IDEs modernos para descubrir problemas en un estadío temprano. Con python, si activas todos los chequeos ves un montón de avisos que tienes que resolver manualmente; pero echo de menos algo más "proactivo" que te oriente a escribir código correcto, aunque lo veo bastante complicado de lograr con un lenguaje dinámico. > Dicho esto, es verdad que las guerras sobre editores e IDEs en general > siempre ha sido bastante religiosas. Aunque es necesario decir que emacs > siempre sale victorioso: > > http://xkcd.com/378/ > > Francesc > > -- Hyperreals *R "Quarks, bits y otras criaturas infinitesimales": http://ch3m4.org/blog Buscador Python Hispano: http://ch3m4.org/python-es ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From invite en feedspotmailer.com Fri Jun 13 22:10:09 2014 From: invite en feedspotmailer.com (GEIS AUGUSTO GARCIA ROMERO via Feedspot.com) Date: Fri, 13 Jun 2014 20:10:09 +0000 Subject: [Python-es] GEIS AUGUSTO GARCIA ROMERO has invited you to try Feedspot Message-ID: <0000014696da0529-38dcc0e5-46c4-4bed-b0f4-5d01b3e52bdd-000000@email.amazonses.com> GEIS AUGUSTO GARCIA ROMERO has invited you to join Feedspot - A place to read everything you need to stay informed and live and work smarter.\n\n http://www.feedspot.com/r_f46a7acccbc8_*_python-es en python.org#monthlycode \n\n Feedspot is a place to organize and read all the news sites and blogs you visit in one place, where keeping up with your favorite sites is as easy as checking your email.\n\n Start using Feedspot today to get a complimentary month of Feedspot Premium, with even more of the features that make Feedspot great. And just for trying Feedspot, your friend will get rewards too.\n\n - The Feedspot Team ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From flxpaz en gmail.com Sat Jun 14 20:26:41 2014 From: flxpaz en gmail.com (Rolando Paz) Date: Sat, 14 Jun 2014 12:26:41 -0600 Subject: [Python-es] Software para Radioastronomia Message-ID: Hola buenos dias a todos. Nuevamente pidiendo su apoyo. Hace algún tiempo converse con ustedes respecto al software que debo usar para un proyecto que inicie sobre la construcción de un pequeño radiointerferómetro. El software que debo usar es el que se observa en el siguiente link: https://casper.berkeley.edu/svn/trunk/projects/pocketcorrelator/poco-0.1.1/ Allí existe un documento en donde se lee el procedimiento que debe usar para utilizar unos scripts en python y obtener los datos que genera el equipo, pero aún no logro hacerlos funcionar. Alguien de ustedes puede ayudarme revisar y a actualizar los scripts de Python? Estos fueron escritos en el 2008 y ya no hubo actualizaciones. Se los agradecere bastante, ya llevo varios meses atascado con estos scripts y, desde mi ignorancia en python, no logro hacerlos funcionar :-) Saludos a todos. Rolando Paz ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From juanlu001 en gmail.com Sun Jun 15 14:07:14 2014 From: juanlu001 en gmail.com (Juan Luis Cano) Date: Sun, 15 Jun 2014 14:07:14 +0200 Subject: [Python-es] Software para Radioastronomia In-Reply-To: References: Message-ID: <539D8C72.4030308@gmail.com> On 06/14/2014 08:26 PM, Rolando Paz wrote: > > Hola buenos dias a todos. > > Nuevamente pidiendo su apoyo. Hace algún tiempo converse con ustedes > respecto al software que debo usar para un proyecto que inicie sobre > la construcción de un pequeño radiointerferómetro. El software que > debo usar es el que se observa en el siguiente link: > > https://casper.berkeley.edu/svn/trunk/projects/pocketcorrelator/poco-0.1.1/ > > Allí existe un documento en donde se lee el procedimiento que debe > usar para utilizar unos scripts en python y obtener los datos que > genera el equipo, pero aún no logro hacerlos funcionar. > > Alguien de ustedes puede ayudarme revisar y a actualizar los scripts > de Python? > > Estos fueron escritos en el 2008 y ya no hubo actualizaciones. > > Se los agradecere bastante, ya llevo varios meses atascado con estos > scripts y, desde mi ignorancia en python, no logro hacerlos funcionar :-) > > Saludos a todos. > > Rolando Paz > Hola Rolando: No me queda claro por tu pregunta si tienes problemas al instalarlos, o los has instalado correctamente pero hay algo que no funciona. Y por cierto ¿qué versión de Python estás usando? Por la fecha esos scripts pueden estar programados con Python 2.5 en mente. Otra pregunta más: ¿qué sistema operativo tienes? Parece que hace falta la biblioteca Grace (http://plasma-gate.weizmann.ac.il/Grace/) y dependiendo de si usas Windows o Linux tu situación cambiará bastante. Si tienes algún mensaje de error que podamos ver sería estupendo, y si es demasiado largo para pegarlo en este email puedes usar pastebin.com o gist.github.com. ¡Un saludo! Juanlu From flxpaz en gmail.com Sun Jun 15 19:39:18 2014 From: flxpaz en gmail.com (Rolando Paz) Date: Sun, 15 Jun 2014 11:39:18 -0600 Subject: [Python-es] Software para Radioastronomia In-Reply-To: References: <539D8C72.4030308@gmail.com> Message-ID: Hola Juanlu Gracias por el correo. Luego de leer el archivo doc, y realizar el procedimiento que describen, entiendo que si logro hacer funcionar parte de los script. Segun entiendo en el archivo doc se menciona que existen dos formas de obtener los datos de mi equipo, una es con los script en python y con ellos obtener los datos en un formato de interferometria llamado MIRIAD, y otra forma es con los script en C. Con estos ultimos los datos solo se obtienen para obtener los espectros con el programa GRACE. Ahora mismo estoy intentando usar solo los script en python, como se observa en los datos arriba. Para le version de python: rolando en rolando-MS-7815:~/ibob/ipoco-0.1.1$ python Python 2.7.3 (default, Feb 27 2014, 19:58:35) [GCC 4.6.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> El procedimiento que realizo es el siguiente: rolando en rolando-MS-7815:~/ibob/ipoco-0.1.1$ sudo python setup.py install running install running build running build_py running build_scripts running install_lib running install_scripts changing mode of /usr/local/bin/poco_rx_i8_c256.py to 755 changing mode of /usr/local/bin/poco_rx.py to 755 changing mode of /usr/local/bin/poco_rx_i8_c128.py to 755 changing mode of /usr/local/bin/poco_rx_i4_c1024.py to 755 changing mode of /usr/local/bin/gen_config_file.py to 755 changing mode of /usr/local/bin/poco_rx_i8_c32.py to 755 changing mode of /usr/local/bin/init_poco.py to 755 running install_egg_info Removing /usr/local/lib/python2.7/dist-packages/poco-0.1.1.egg-info Writing /usr/local/lib/python2.7/dist-packages/poco-0.1.1.egg-info rolando en rolando-MS-7815:~/ibob/ipoco-0.1.1$ init_poco.py config_scripts/i8_c256.config Parsing config file config_scripts/i8_c256.config...OK Writing override variables... OK Connecting to iBOB... OK rolando en rolando-MS-7815:~/ibob/ipoco-0.1.1$ poco_rx_i8_c256.py config_scripts/i8_c256.config Parsing config file config_scripts/i8_c256.config...OK Listening on port 6969 Expecting integration sizes of 18432 vectors, or 73728 bytes C2M Parameters: N Antennas: 8 Bandwidth: 0.100000 GHz SDF: 0.000391 GHz Int Time: 1.495040 s Array location: ['38:25:59.24', '-79:51:02.1'] Recording Bandpass to file... OK Starting file: zen.uv.tmp Beginning RX thread... Expecting total dump size from each x engine: 65536 bytes ERR: Buffer is too small for header unpack ERR: could not unpack header Exception in thread Thread-1: Traceback (most recent call last): File "/usr/lib/python2.7/threading.py", line 551, in __bootstrap_inner self.run() File "/usr/lib/python2.7/threading.py", line 504, in run self.__target(*self.__args, **self.__kwargs) File "/usr/local/bin/poco_rx_i8_c256.py", line 243, in _process_packets last_offset = p['offset'] TypeError: 'NoneType' object has no attribute '__getitem__' Que opinas? Saludos y muchas gracias. Rolando Paz ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From flxpaz en gmail.com Mon Jun 16 01:34:59 2014 From: flxpaz en gmail.com (Rolando Paz) Date: Sun, 15 Jun 2014 17:34:59 -0600 Subject: [Python-es] Software para Radioastronomia In-Reply-To: References: <539D8C72.4030308@gmail.com> Message-ID: Por cierto, estoy usando linux Ubuntu 12.04LTS. El jun 15, 2014 11:39 AM, "Rolando Paz" escribió: > Hola Juanlu > > Gracias por el correo. > > Luego de leer el archivo doc, y realizar el procedimiento que describen, > entiendo que si logro hacer funcionar parte de los script. > > Segun entiendo en el archivo doc se menciona que existen dos formas de > obtener los datos de mi equipo, una es con los script en python y con ellos > obtener los datos en un formato de interferometria llamado MIRIAD, y otra > forma es con los script en C. Con estos ultimos los datos solo se obtienen > para obtener los espectros con el programa GRACE. > > Ahora mismo estoy intentando usar solo los script en python, como se > observa en los datos arriba. > > Para le version de python: > > rolando en rolando-MS-7815:~/ibob/ipoco-0.1.1$ python > > Python 2.7.3 (default, Feb 27 2014, 19:58:35) > > [GCC 4.6.3] on linux2 > > Type "help", "copyright", "credits" or "license" for more information. > > >>> > > El procedimiento que realizo es el siguiente: > > rolando en rolando-MS-7815:~/ibob/ipoco-0.1.1$ sudo python setup.py install > > running install > > running build > > running build_py > > running build_scripts > > running install_lib > > running install_scripts > > changing mode of /usr/local/bin/poco_rx_i8_c256.py to 755 > > changing mode of /usr/local/bin/poco_rx.py to 755 > > changing mode of /usr/local/bin/poco_rx_i8_c128.py to 755 > > changing mode of /usr/local/bin/poco_rx_i4_c1024.py to 755 > > changing mode of /usr/local/bin/gen_config_file.py to 755 > > changing mode of /usr/local/bin/poco_rx_i8_c32.py to 755 > > changing mode of /usr/local/bin/init_poco.py to 755 > > running install_egg_info > > Removing /usr/local/lib/python2.7/dist-packages/poco-0.1.1.egg-info > > Writing /usr/local/lib/python2.7/dist-packages/poco-0.1.1.egg-info > > rolando en rolando-MS-7815:~/ibob/ipoco-0.1.1$ init_poco.py > config_scripts/i8_c256.config > > Parsing config file config_scripts/i8_c256.config...OK > > Writing override variables... OK > > Connecting to iBOB... OK > > rolando en rolando-MS-7815:~/ibob/ipoco-0.1.1$ poco_rx_i8_c256.py > config_scripts/i8_c256.config > > Parsing config file config_scripts/i8_c256.config...OK > > Listening on port 6969 > > Expecting integration sizes of 18432 vectors, or 73728 bytes > > C2M Parameters: > > N Antennas: 8 > > Bandwidth: 0.100000 GHz > > SDF: 0.000391 GHz > > Int Time: 1.495040 s > > Array location: ['38:25:59.24', '-79:51:02.1'] > > Recording Bandpass to file... OK > > Starting file: zen.uv.tmp > > Beginning RX thread... > > Expecting total dump size from each x engine: 65536 bytes > > ERR: Buffer is too small for header unpack > > ERR: could not unpack header > > Exception in thread Thread-1: > > Traceback (most recent call last): > > File "/usr/lib/python2.7/threading.py", line 551, in __bootstrap_inner > > self.run() > > File "/usr/lib/python2.7/threading.py", line 504, in run > > self.__target(*self.__args, **self.__kwargs) > > File "/usr/local/bin/poco_rx_i8_c256.py", line 243, in _process_packets > > last_offset = p['offset'] > > TypeError: 'NoneType' object has no attribute '__getitem__' > > Que opinas? > > Saludos y muchas gracias. > > Rolando Paz > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From davidmenhur en gmail.com Mon Jun 16 02:00:34 2014 From: davidmenhur en gmail.com (=?UTF-8?B?RGHPgGlk?=) Date: Mon, 16 Jun 2014 02:00:34 +0200 Subject: [Python-es] Software para Radioastronomia In-Reply-To: References: <539D8C72.4030308@gmail.com> Message-ID: On 15 June 2014 19:39, Rolando Paz wrote: > last_offset = p['offset'] > > TypeError: 'NoneType' object has no attribute '__getitem__' > Esto debería ser un diccionario: p = pkt.unpack(correlator.get_a_packet()) pero es None, que parece significar que no ha conseguido un buen paquete, y por el error el buffer es demasiado pequeño. Por defecto, ese valor es de 8192, pero en el fichero de configuración parece usar 2048. Para estar seguros, prueba a añadir un print con el valor de self.buffer_size antes del error. Una opción es aumentarlo manualmente, a ver si tira. ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From rubia.linux en gmail.com Mon Jun 16 08:29:02 2014 From: rubia.linux en gmail.com (ruben linux) Date: Mon, 16 Jun 2014 08:29:02 +0200 Subject: [Python-es] Buscar palabras en un archivo In-Reply-To: References: Message-ID: El proposito de este programa es buscar palabras dentro de un archivo, pasandole como argumento otro archivo que contiene una lista de palabras. Funciona a medias, me explico!!! solo lee la primera palabra de cada linea. Por ejemplo, supongamos esta linea: "uno, dos, tres, cuatro,..." y en el archivo de palabras, las tengo todas pero, solo me encuentra la primera. Por que????? Eso es lo que necesito saber. Os dejo el codigo, y asi lo entendereis mejor. #!/usr/bin/env python import os,argparse # Argumentos parser = argparse.ArgumentParser(description='busca las cadenas de archivo1 en archivo2') parser.add_argument('-a','--archivo1', help='archvio contine cadenas', required=True) parser.add_argument('-A','--archivo2', help='archivo en el que buscamos', required=True) args = parser.parse_args() file1 = args.archivo1 file2 = args.archivo2 try: # Abro el archivo 1 archivo1 = open(file1,'r') # Leo todo el archivo1 lee1 = archivo1.readlines() for i in lee1: # Abro archivo 2 archivo2 = open(file2,'r') # Leo completamente el archivo2 lee2 = archivo2.read() # -1 no esta, distinto de -1, si esta if lee2.find(i) != -1: # Muestra coincidencias print i archivo2.close() archivo1.close() except IOError: print 'El archivo indicado no existe' El 9/6/14, Flavio Danesse escribió: > Si abres el archivo y lo lees, pasandole su contenido a una variable, esa > variable será de tipo string. > Y los objetos string tienen una función llamada *find* > > *find(s, *args)* > > *rfind(s, sub [,start [,end]]) -> in* > > > > Return the lowest index in s where substring sub is found, > such that sub is contained within s[start,end]. Optional > arguments start and end are interpreted as in slice notation. > > Return -1 on failure. > > > > El 8 de junio de 2014, 16:48, Chema Cortes escribió: > >> El 8 de junio de 2014, 12:05, ruben linux >> escribió: >> >> Saludos a todos, este es mi primer correo a la lista. >>> >>> Estoy empezando con Python, y este me pareció un buen sitio para empezar >>> y aprender. Decirnos antes de nada que este tema ya se lo busque en >>> Google, >>> y no doy con la respuesta adecuada, o la que me soluciona el problema. >>> >>> Como parte de mi aprendizaje, me he propuesto hacer un suripanta que >>> busque palabras en un archivo, esta palabras están en otro archivo. Os >>> dejo >>> un trozo del código >>> ... >>> for line in file (a, 'r') >>> if palabra in líne: >>> print line >>> >>> palabra es una función que lee el archivo fuente, donde se encuentran >>> las >>> palabras que quiero buscar. Esté el el fallo que me devuelve: >>> >>> TypeError: 'in ' requires string as left operand! nota file >>> >> >> Según este error, 'palabra' es un 'file' (fichero), no una función.pyth >> >> >>> >>> Entiendo que no le puedo pasar a if un archivo, ni una función, sólo >>> palabras, y eso es lo que no se hacer. Necesito qué me guíen. >>> >> >> A un if hay que pasarle una expresión que se evalúe a true o false. El >> problema es que tienes que comparar contenidos comparables, una cadena >> dentro de otra cadena, o un elemento dentro de una lista. >> >> >>> >>> Tal vez usando listas... En tal caso cual es el tamaño máximo de una >>> lista???. >>> >> >> >> Puedes usar listas y su tamaño es ilimitado. Pero no te aconsejo que >> intentes llenar la memoria con una lista. Para estas cosas es mejor usar >> "iteradores" y sólo cargar en memoria los datos de un conjunto de datos >> con >> los que vayas a operar. >> >> Por ejemplo, los objetos ficheros se definen como iteradores. Para saber >> si una palabra está en un fichero: >> >> with open("fichero.txt") as f: >> for line in f: >> if palabra in line: >> print "Encontrada" >> >> El fichero puede contener Gigas o Teras de información, pero sólo se >> necesita la memoria suficiente para cargar una línea de texto. >> >> Con algo más de experiencia, se puede hacer cosas más sofisticadas con >> los >> iteradores: >> >> def allseen(words): >> state = set(words) >> def _aux(lst): >> state -= set(lst) >> return not bool(state) # have seen all the words? >> return _aux >> >> allfounds = allseen(words) # 'allfounds' is a function >> encontrada = any( allfounds(word for word in words if word in line) for >> line in open("fichero.txt")) >> >> La expresión es verdadera si todas las palabras de la lista "words" >> existen en el fichero. >> >> Además, no es necesario procesar el resto del fichero si se encuentran >> todas las palabras. En el momento que "allfounds" devuelve el primer >> true, >> la función "any" retorna true y se para todo el proceso. >> >> >> >> PD: no te agobies si no entiendes nada ahora mismo. Que se pueda hacer no >> quiere decir que todo el mundo lo haga así. Hazlo del modo que mejor >> comprendas y pregunta lo que te surga. >> >> >> >> >> >>> >>> Gracias a todos. >>> >>> _______________________________________________ >>> Python-es mailing list >>> Python-es en python.org >>> https://mail.python.org/mailman/listinfo/python-es >>> FAQ: http://python-es-faq.wikidot.com/ >>> >>> >> >> >> -- >> Hyperreals *R "Quarks, bits y otras criaturas infinitesimales": >> http://ch3m4.org/blog >> Buscador Python Hispano: http://ch3m4.org/python-es >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > From lastvnm en gmail.com Mon Jun 16 09:53:08 2014 From: lastvnm en gmail.com (Hiko hitokiri) Date: Mon, 16 Jun 2014 01:53:08 -0600 Subject: [Python-es] Buscar palabras en un archivo In-Reply-To: References: Message-ID: si estan asi digo que lo mejor es hacer un csv para tomar mas fácil los parámetros a buscar ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From pych3m4 en gmail.com Mon Jun 16 11:16:39 2014 From: pych3m4 en gmail.com (Chema Cortes) Date: Mon, 16 Jun 2014 11:16:39 +0200 Subject: [Python-es] Buscar palabras en un archivo In-Reply-To: References: Message-ID: El 16 de junio de 2014, 8:29, ruben linux escribió: > El proposito de este programa es buscar palabras dentro de un archivo, > pasandole como argumento otro archivo que contiene una lista de > palabras. > > Funciona a medias, me explico!!! solo lee la primera palabra de cada linea. > > Por ejemplo, supongamos esta linea: "uno, dos, tres, cuatro,..." y en > el archivo de palabras, las tengo todas pero, solo me encuentra la > primera. > > Por que????? > > Eso es lo que necesito saber. > > Os dejo el codigo, y asi lo entendereis mejor. > > #!/usr/bin/env python > > import os,argparse > > # Argumentos > parser = argparse.ArgumentParser(description='busca las cadenas de > archivo1 en archivo2') > parser.add_argument('-a','--archivo1', help='archvio contine cadenas', > required=True) > parser.add_argument('-A','--archivo2', help='archivo en el que > buscamos', required=True) > args = parser.parse_args() > > file1 = args.archivo1 > file2 = args.archivo2 > > try: > # Abro el archivo 1 > archivo1 = open(file1,'r') > # Leo todo el archivo1 > lee1 = archivo1.readlines() > Ten en cuenta que "readlines" lee líneas completas, añadiendo un '\n' al final que tendrías que quitar. Lo extraño es que encuentres alguna palabra. > > for i in lee1: > # Abro archivo 2 > archivo2 = open(file2,'r') > # Leo completamente el archivo2 > lee2 = archivo2.read() > # -1 no esta, distinto de -1, si esta > if lee2.find(i) != -1: > # Muestra coincidencias > print i > > archivo2.close() > > archivo1.close() > > except IOError: > print 'El archivo indicado no existe' > > > El 9/6/14, Flavio Danesse escribió: > > Si abres el archivo y lo lees, pasandole su contenido a una variable, esa > > variable será de tipo string. > > Y los objetos string tienen una función llamada *find* > > > > *find(s, *args)* > > > > *rfind(s, sub [,start [,end]]) -> in* > > > > > > > > Return the lowest index in s where substring sub is found, > > such that sub is contained within s[start,end]. Optional > > arguments start and end are interpreted as in slice notation. > > > > Return -1 on failure. > > > > > > > > El 8 de junio de 2014, 16:48, Chema Cortes escribió: > > > >> El 8 de junio de 2014, 12:05, ruben linux > >> escribió: > >> > >> Saludos a todos, este es mi primer correo a la lista. > >>> > >>> Estoy empezando con Python, y este me pareció un buen sitio para > empezar > >>> y aprender. Decirnos antes de nada que este tema ya se lo busque en > >>> Google, > >>> y no doy con la respuesta adecuada, o la que me soluciona el problema. > >>> > >>> Como parte de mi aprendizaje, me he propuesto hacer un suripanta que > >>> busque palabras en un archivo, esta palabras están en otro archivo. Os > >>> dejo > >>> un trozo del código > >>> ... > >>> for line in file (a, 'r') > >>> if palabra in líne: > >>> print line > >>> > >>> palabra es una función que lee el archivo fuente, donde se encuentran > >>> las > >>> palabras que quiero buscar. Esté el el fallo que me devuelve: > >>> > >>> TypeError: 'in ' requires string as left operand! nota file > >>> > >> > >> Según este error, 'palabra' es un 'file' (fichero), no una función.pyth > >> > >> > >>> > >>> Entiendo que no le puedo pasar a if un archivo, ni una función, sólo > >>> palabras, y eso es lo que no se hacer. Necesito qué me guíen. > >>> > >> > >> A un if hay que pasarle una expresión que se evalúe a true o false. El > >> problema es que tienes que comparar contenidos comparables, una cadena > >> dentro de otra cadena, o un elemento dentro de una lista. > >> > >> > >>> > >>> Tal vez usando listas... En tal caso cual es el tamaño máximo de una > >>> lista???. > >>> > >> > >> > >> Puedes usar listas y su tamaño es ilimitado. Pero no te aconsejo que > >> intentes llenar la memoria con una lista. Para estas cosas es mejor usar > >> "iteradores" y sólo cargar en memoria los datos de un conjunto de datos > >> con > >> los que vayas a operar. > >> > >> Por ejemplo, los objetos ficheros se definen como iteradores. Para saber > >> si una palabra está en un fichero: > >> > >> with open("fichero.txt") as f: > >> for line in f: > >> if palabra in line: > >> print "Encontrada" > >> > >> El fichero puede contener Gigas o Teras de información, pero sólo se > >> necesita la memoria suficiente para cargar una línea de texto. > >> > >> Con algo más de experiencia, se puede hacer cosas más sofisticadas con > >> los > >> iteradores: > >> > >> def allseen(words): > >> state = set(words) > >> def _aux(lst): > >> state -= set(lst) > >> return not bool(state) # have seen all the words? > >> return _aux > >> > >> allfounds = allseen(words) # 'allfounds' is a function > >> encontrada = any( allfounds(word for word in words if word in line) for > >> line in open("fichero.txt")) > >> > >> La expresión es verdadera si todas las palabras de la lista "words" > >> existen en el fichero. > >> > >> Además, no es necesario procesar el resto del fichero si se encuentran > >> todas las palabras. En el momento que "allfounds" devuelve el primer > >> true, > >> la función "any" retorna true y se para todo el proceso. > >> > >> > >> > >> PD: no te agobies si no entiendes nada ahora mismo. Que se pueda hacer > no > >> quiere decir que todo el mundo lo haga así. Hazlo del modo que mejor > >> comprendas y pregunta lo que te surga. > >> > >> > >> > >> > >> > >>> > >>> Gracias a todos. > >>> > >>> _______________________________________________ > >>> Python-es mailing list > >>> Python-es en python.org > >>> https://mail.python.org/mailman/listinfo/python-es > >>> FAQ: http://python-es-faq.wikidot.com/ > >>> > >>> > >> > >> > >> -- > >> Hyperreals *R "Quarks, bits y otras criaturas infinitesimales": > >> http://ch3m4.org/blog > >> Buscador Python Hispano: http://ch3m4.org/python-es > >> > >> _______________________________________________ > >> Python-es mailing list > >> Python-es en python.org > >> https://mail.python.org/mailman/listinfo/python-es > >> FAQ: http://python-es-faq.wikidot.com/ > >> > >> > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > -- Hyperreals *R "Quarks, bits y otras criaturas infinitesimales": http://ch3m4.org/blog Buscador Python Hispano: http://ch3m4.org/python-es ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From fdanesse en gmail.com Mon Jun 16 22:45:24 2014 From: fdanesse en gmail.com (Flavio Danesse) Date: Mon, 16 Jun 2014 17:45:24 -0300 Subject: [Python-es] Buscar palabras en un archivo In-Reply-To: References: Message-ID: Ruben, está bien ese programa, sólo que está incompleto porque find devuelve el indice de la primera coincidencia, es decir que no sigue buscando en el resto del texto. Yo solo te di una pista, pero hay que completarlo para que te encuentre todas las coincidencias. En realidad, el problema a resolver es muy fácil, hay muchas formas de resolverlo utilizando listas y strings y sus funciones. *Por ejemplo:* - Cargas las palabras a buscar en una lista (solo necesitas leer una sola vez ese archivo). - Luego, si lees el archivo donde debes buscar las coincidencias, y lo separas en lineas, tienes una lista de string. - Luego si cada una de esas lineas la separas en palabras (utilizando string.split()), entonces tienes una lista de palabras. - Ahora que tienes todo en listas, solo iteras y evalúas, (recuerda que las listas mantienen el orden de los elementos y por lo tanto poseen un indice) Obviamente hay muchas otras formas más elaboradas de hacerlo. El 16 de junio de 2014, 6:16, Chema Cortes escribió: > El 16 de junio de 2014, 8:29, ruben linux > escribió: > > El proposito de este programa es buscar palabras dentro de un archivo, >> pasandole como argumento otro archivo que contiene una lista de >> palabras. >> >> Funciona a medias, me explico!!! solo lee la primera palabra de cada >> linea. >> >> Por ejemplo, supongamos esta linea: "uno, dos, tres, cuatro,..." y en >> el archivo de palabras, las tengo todas pero, solo me encuentra la >> primera. >> >> Por que????? >> >> Eso es lo que necesito saber. >> >> Os dejo el codigo, y asi lo entendereis mejor. >> >> #!/usr/bin/env python >> >> import os,argparse >> >> # Argumentos >> parser = argparse.ArgumentParser(description='busca las cadenas de >> archivo1 en archivo2') >> parser.add_argument('-a','--archivo1', help='archvio contine cadenas', >> required=True) >> parser.add_argument('-A','--archivo2', help='archivo en el que >> buscamos', required=True) >> args = parser.parse_args() >> >> file1 = args.archivo1 >> file2 = args.archivo2 >> >> try: >> # Abro el archivo 1 >> archivo1 = open(file1,'r') >> # Leo todo el archivo1 >> lee1 = archivo1.readlines() >> > > Ten en cuenta que "readlines" lee líneas completas, añadiendo un '\n' al > final que tendrías que quitar. Lo extraño es que encuentres alguna palabra. > > > >> >> for i in lee1: >> # Abro archivo 2 >> archivo2 = open(file2,'r') >> # Leo completamente el archivo2 >> lee2 = archivo2.read() >> # -1 no esta, distinto de -1, si esta >> if lee2.find(i) != -1: >> # Muestra coincidencias >> print i >> >> archivo2.close() >> >> archivo1.close() >> >> except IOError: >> print 'El archivo indicado no existe' >> >> >> El 9/6/14, Flavio Danesse escribió: >> > Si abres el archivo y lo lees, pasandole su contenido a una variable, >> esa >> > variable será de tipo string. >> > Y los objetos string tienen una función llamada *find* >> > >> > *find(s, *args)* >> > >> > *rfind(s, sub [,start [,end]]) -> in* >> > >> > >> > >> > Return the lowest index in s where substring sub is found, >> > such that sub is contained within s[start,end]. Optional >> > arguments start and end are interpreted as in slice notation. >> > >> > Return -1 on failure. >> > >> > >> > >> > El 8 de junio de 2014, 16:48, Chema Cortes >> escribió: >> > >> >> El 8 de junio de 2014, 12:05, ruben linux >> >> escribió: >> >> >> >> Saludos a todos, este es mi primer correo a la lista. >> >>> >> >>> Estoy empezando con Python, y este me pareció un buen sitio para >> empezar >> >>> y aprender. Decirnos antes de nada que este tema ya se lo busque en >> >>> Google, >> >>> y no doy con la respuesta adecuada, o la que me soluciona el problema. >> >>> >> >>> Como parte de mi aprendizaje, me he propuesto hacer un suripanta que >> >>> busque palabras en un archivo, esta palabras están en otro archivo. Os >> >>> dejo >> >>> un trozo del código >> >>> ... >> >>> for line in file (a, 'r') >> >>> if palabra in líne: >> >>> print line >> >>> >> >>> palabra es una función que lee el archivo fuente, donde se encuentran >> >>> las >> >>> palabras que quiero buscar. Esté el el fallo que me devuelve: >> >>> >> >>> TypeError: 'in ' requires string as left operand! nota file >> >>> >> >> >> >> Según este error, 'palabra' es un 'file' (fichero), no una función.pyth >> >> >> >> >> >>> >> >>> Entiendo que no le puedo pasar a if un archivo, ni una función, sólo >> >>> palabras, y eso es lo que no se hacer. Necesito qué me guíen. >> >>> >> >> >> >> A un if hay que pasarle una expresión que se evalúe a true o false. El >> >> problema es que tienes que comparar contenidos comparables, una cadena >> >> dentro de otra cadena, o un elemento dentro de una lista. >> >> >> >> >> >>> >> >>> Tal vez usando listas... En tal caso cual es el tamaño máximo de una >> >>> lista???. >> >>> >> >> >> >> >> >> Puedes usar listas y su tamaño es ilimitado. Pero no te aconsejo que >> >> intentes llenar la memoria con una lista. Para estas cosas es mejor >> usar >> >> "iteradores" y sólo cargar en memoria los datos de un conjunto de datos >> >> con >> >> los que vayas a operar. >> >> >> >> Por ejemplo, los objetos ficheros se definen como iteradores. Para >> saber >> >> si una palabra está en un fichero: >> >> >> >> with open("fichero.txt") as f: >> >> for line in f: >> >> if palabra in line: >> >> print "Encontrada" >> >> >> >> El fichero puede contener Gigas o Teras de información, pero sólo se >> >> necesita la memoria suficiente para cargar una línea de texto. >> >> >> >> Con algo más de experiencia, se puede hacer cosas más sofisticadas con >> >> los >> >> iteradores: >> >> >> >> def allseen(words): >> >> state = set(words) >> >> def _aux(lst): >> >> state -= set(lst) >> >> return not bool(state) # have seen all the words? >> >> return _aux >> >> >> >> allfounds = allseen(words) # 'allfounds' is a function >> >> encontrada = any( allfounds(word for word in words if word in line) for >> >> line in open("fichero.txt")) >> >> >> >> La expresión es verdadera si todas las palabras de la lista "words" >> >> existen en el fichero. >> >> >> >> Además, no es necesario procesar el resto del fichero si se encuentran >> >> todas las palabras. En el momento que "allfounds" devuelve el primer >> >> true, >> >> la función "any" retorna true y se para todo el proceso. >> >> >> >> >> >> >> >> PD: no te agobies si no entiendes nada ahora mismo. Que se pueda hacer >> no >> >> quiere decir que todo el mundo lo haga así. Hazlo del modo que mejor >> >> comprendas y pregunta lo que te surga. >> >> >> >> >> >> >> >> >> >> >> >>> >> >>> Gracias a todos. >> >>> >> >>> _______________________________________________ >> >>> Python-es mailing list >> >>> Python-es en python.org >> >>> https://mail.python.org/mailman/listinfo/python-es >> >>> FAQ: http://python-es-faq.wikidot.com/ >> >>> >> >>> >> >> >> >> >> >> -- >> >> Hyperreals *R "Quarks, bits y otras criaturas infinitesimales": >> >> http://ch3m4.org/blog >> >> Buscador Python Hispano: http://ch3m4.org/python-es >> >> >> >> _______________________________________________ >> >> Python-es mailing list >> >> Python-es en python.org >> >> https://mail.python.org/mailman/listinfo/python-es >> >> FAQ: http://python-es-faq.wikidot.com/ >> >> >> >> >> > >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> > > > > -- > Hyperreals *R "Quarks, bits y otras criaturas infinitesimales": > http://ch3m4.org/blog > Buscador Python Hispano: http://ch3m4.org/python-es > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From flxpaz en gmail.com Tue Jun 17 00:17:32 2014 From: flxpaz en gmail.com (Rolando Paz) Date: Mon, 16 Jun 2014 16:17:32 -0600 Subject: [Python-es] Software para Radioastronomia In-Reply-To: References: <539D8C72.4030308@gmail.com> Message-ID: Muchas gracias por tus comentarios David. Hoy por la noche haré las pruebas y luego vuelvo a escribir por acá. Me puedes explicar cuál es la función del "buffer" y qué significa que sea "demasiado pequeño"? A qué fichero de configuración te refieres (2048)? Saludos Rolando Paz El 15 de junio de 2014, 18:00, Da?id escribió: > On 15 June 2014 19:39, Rolando Paz wrote: > >> last_offset = p['offset'] >> >> TypeError: 'NoneType' object has no attribute '__getitem__' >> > Esto debería ser un diccionario: > > p = pkt.unpack(correlator.get_a_packet()) > > pero es None, que parece significar que no ha conseguido un buen paquete, > y por el error el buffer es demasiado pequeño. Por defecto, ese valor es de > 8192, pero en el fichero de configuración parece usar 2048. > > Para estar seguros, prueba a añadir un print con el valor de > self.buffer_size antes del error. Una opción es aumentarlo manualmente, a > ver si tira. > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From davidmenhur en gmail.com Tue Jun 17 00:43:06 2014 From: davidmenhur en gmail.com (=?UTF-8?B?RGHPgGlk?=) Date: Tue, 17 Jun 2014 00:43:06 +0200 Subject: [Python-es] Software para Radioastronomia In-Reply-To: References: <539D8C72.4030308@gmail.com> Message-ID: 2014-06-17 0:17 GMT+02:00 Rolando Paz : > > Me puedes explicar cuál es la función del "buffer" y qué significa que sea > "demasiado pequeño"? > No sé, pero por tu mensaje de error: ERR: Buffer is too small for header unpack ERR: could not unpack header Imagino que tendrá que ver con cuánta memoria se reserva para almacenar los datos que lee, pero porque se llama "buffer". > A qué fichero de configuración te refieres (2048)? > Por el nombre de los ficheros, le corresponde este fichero: https://casper.berkeley.edu/svn/trunk/projects/pocketcorrelator/poco-0.1.1/config_scripts/i8_c256.config Ahí el tamaño del buffer se fija a 2048. Pero no sé si lo está leyendo, o cuándo le corresponde hacerlo. ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From flxpaz en gmail.com Tue Jun 17 02:08:08 2014 From: flxpaz en gmail.com (Rolando Paz) Date: Mon, 16 Jun 2014 18:08:08 -0600 Subject: [Python-es] Software para Radioastronomia In-Reply-To: References: <539D8C72.4030308@gmail.com> Message-ID: Gracias por la observación, voy a modificar este valor y veré que pasa... Saludos Rolando Paz El 16 de junio de 2014, 16:43, Da?id escribió: > 2014-06-17 0:17 GMT+02:00 Rolando Paz : > >> >> Me puedes explicar cuál es la función del "buffer" y qué significa que >> sea "demasiado pequeño"? >> > > No sé, pero por tu mensaje de error: > > > ERR: Buffer is too small for header unpack > > ERR: could not unpack header > > Imagino que tendrá que ver con cuánta memoria se reserva para almacenar > los datos que lee, pero porque se llama "buffer". > > >> A qué fichero de configuración te refieres (2048)? >> > > Por el nombre de los ficheros, le corresponde este fichero: > > > https://casper.berkeley.edu/svn/trunk/projects/pocketcorrelator/poco-0.1.1/config_scripts/i8_c256.config > > Ahí el tamaño del buffer se fija a 2048. Pero no sé si lo está leyendo, o > cuándo le corresponde hacerlo. > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From diego.uribe.gamez en gmail.com Tue Jun 17 23:09:33 2014 From: diego.uribe.gamez en gmail.com (DiegoUG) Date: Tue, 17 Jun 2014 16:09:33 -0500 Subject: [Python-es] Tengo un problema al intentar usar pillow Message-ID: Estoy intentado usar pillow para crear insertar texto en una imagen y me sale un error que no logro resolver, parece estar relacionado cion el sistema operativo: >>> font = ImageFont.truetype("PTMono.tcc",14) Traceback (most recent call last): File "", line 1, in File "/usr/local/lib/python2.7/dist-packages/PIL/ImageFont.py", line 228, in truetype return FreeTypeFont(font, size, index, encoding) File "/usr/local/lib/python2.7/dist-packages/PIL/ImageFont.py", line 131, in __init__ self.font = core.getfont(font, size, index, encoding) File "/usr/local/lib/python2.7/dist-packages/PIL/ImageFont.py", line 42, in __getattr__ raise ImportError("The _imagingft C module is not installed") intente arreglarlo de la siguiente manera, pero nada que lo logro: sudo pip uninstall pillow sudo apt-get install libjpeg-dev sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib/libjpeg.so sudo pip install pillow Alguna idea? -- *Diego Alonso Uribe Gamez* ------------------------------ *Desarrollador web* Twitter: @DiegoUG Google+: +DiegoAlonsoUribeGamez ------------------------------ ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From chack14rock en gmail.com Tue Jun 17 23:16:13 2014 From: chack14rock en gmail.com (=?UTF-8?Q?Charly_Rom=C3=A1n?=) Date: Tue, 17 Jun 2014 16:16:13 -0500 Subject: [Python-es] Tengo un problema al intentar usar pillow In-Reply-To: References: Message-ID: Es buena idea buscar los errores en Google ;) Te falta una librería: sudo apt-get install libfreetype6-dev Saludos! El 17 de junio de 2014, 16:09, DiegoUG escribió: > > Estoy intentado usar pillow para crear insertar texto en una imagen y me sale un error que no logro resolver, parece estar relacionado cion el sistema operativo: > > >>> font = ImageFont.truetype("PTMono.tcc",14) > Traceback (most recent call last): > File "", line 1, in > File "/usr/local/lib/python2.7/dist-packages/PIL/ImageFont.py", line 228, in truetype > return FreeTypeFont(font, size, index, encoding) > File "/usr/local/lib/python2.7/dist-packages/PIL/ImageFont.py", line 131, in __init__ > self.font = core.getfont(font, size, index, encoding) > File "/usr/local/lib/python2.7/dist-packages/PIL/ImageFont.py", line 42, in __getattr__ > raise ImportError("The _imagingft C module is not installed") > > intente arreglarlo de la siguiente manera, pero nada que lo logro: > > sudo pip uninstall pillow > sudo apt-get install libjpeg-dev > sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib/libjpeg.so > sudo pip install pillow > > Alguna idea? > > -- > Diego Alonso Uribe Gamez > ________________________________ > > Desarrollador web > > Twitter: @DiegoUG > > Google+: +DiegoAlonsoUribeGamez > > ________________________________ > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > From diego.uribe.gamez en gmail.com Wed Jun 18 16:49:00 2014 From: diego.uribe.gamez en gmail.com (DiegoUG) Date: Wed, 18 Jun 2014 09:49:00 -0500 Subject: [Python-es] Tengo un problema al intentar usar pillow In-Reply-To: References: Message-ID: No pienses que no lo hice, estaba buscando antes de preguntar pero esta no es la respuesta, no pregunto a menos de que me vea perdido, después de buscar mucho lo que me funciono fu esto: http://bubuzzz.wordpress.com/2012/11/25/django-simple-captcha-on-ubuntu-12-04/ :P Gracias de todos modos. El 17 de junio de 2014, 16:16, Charly Román escribió: > Es buena idea buscar los errores en Google ;) > > Te falta una librería: > > sudo apt-get install libfreetype6-dev > > > Saludos! > > > El 17 de junio de 2014, 16:09, DiegoUG > escribió: > > > > Estoy intentado usar pillow para crear insertar texto en una imagen y me > sale un error que no logro resolver, parece estar relacionado cion el > sistema operativo: > > > > >>> font = ImageFont.truetype("PTMono.tcc",14) > > Traceback (most recent call last): > > File "", line 1, in > > File "/usr/local/lib/python2.7/dist-packages/PIL/ImageFont.py", line > 228, in truetype > > return FreeTypeFont(font, size, index, encoding) > > File "/usr/local/lib/python2.7/dist-packages/PIL/ImageFont.py", line > 131, in __init__ > > self.font = core.getfont(font, size, index, encoding) > > File "/usr/local/lib/python2.7/dist-packages/PIL/ImageFont.py", line > 42, in __getattr__ > > raise ImportError("The _imagingft C module is not installed") > > > > intente arreglarlo de la siguiente manera, pero nada que lo logro: > > > > sudo pip uninstall pillow > > sudo apt-get install libjpeg-dev > > sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib/libjpeg.so > > sudo pip install pillow > > > > Alguna idea? > > > > -- > > Diego Alonso Uribe Gamez > > ________________________________ > > > > Desarrollador web > > > > Twitter: @DiegoUG > > > > Google+: +DiegoAlonsoUribeGamez > > > > ________________________________ > > > > > > _______________________________________________ > > Python-es mailing list > > Python-es en python.org > > https://mail.python.org/mailman/listinfo/python-es > > FAQ: http://python-es-faq.wikidot.com/ > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > -- *Diego Alonso Uribe Gamez* ------------------------------ *Desarrollador web* Twitter: @DiegoUG Google+: +DiegoAlonsoUribeGamez ------------------------------ ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From razpeitia en gmail.com Wed Jun 18 17:25:51 2014 From: razpeitia en gmail.com (Ricardo Azpeitia Pimentel) Date: Wed, 18 Jun 2014 10:25:51 -0500 Subject: [Python-es] Tengo un problema al intentar usar pillow In-Reply-To: References: Message-ID: Igual y te faltan mas librerias. Lee la documentación. http://pillow.readthedocs.org/en/latest/installation.html#linux-installation El 18 de junio de 2014, 9:49, DiegoUG escribió: > No pienses que no lo hice, estaba buscando antes de preguntar pero esta no > es la respuesta, no pregunto a menos de que me vea perdido, después de > buscar mucho lo que me funciono fu esto: > > > http://bubuzzz.wordpress.com/2012/11/25/django-simple-captcha-on-ubuntu-12-04/ > > :P > > Gracias de todos modos. > > > El 17 de junio de 2014, 16:16, Charly Román > escribió: > > Es buena idea buscar los errores en Google ;) >> >> Te falta una librería: >> >> sudo apt-get install libfreetype6-dev >> >> >> Saludos! >> >> >> El 17 de junio de 2014, 16:09, DiegoUG >> escribió: >> > >> > Estoy intentado usar pillow para crear insertar texto en una imagen y >> me sale un error que no logro resolver, parece estar relacionado cion el >> sistema operativo: >> > >> > >>> font = ImageFont.truetype("PTMono.tcc",14) >> > Traceback (most recent call last): >> > File "", line 1, in >> > File "/usr/local/lib/python2.7/dist-packages/PIL/ImageFont.py", line >> 228, in truetype >> > return FreeTypeFont(font, size, index, encoding) >> > File "/usr/local/lib/python2.7/dist-packages/PIL/ImageFont.py", line >> 131, in __init__ >> > self.font = core.getfont(font, size, index, encoding) >> > File "/usr/local/lib/python2.7/dist-packages/PIL/ImageFont.py", line >> 42, in __getattr__ >> > raise ImportError("The _imagingft C module is not installed") >> > >> > intente arreglarlo de la siguiente manera, pero nada que lo logro: >> > >> > sudo pip uninstall pillow >> > sudo apt-get install libjpeg-dev >> > sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib/libjpeg.so >> > sudo pip install pillow >> > >> > Alguna idea? >> > >> > -- >> > Diego Alonso Uribe Gamez >> > ________________________________ >> > >> > Desarrollador web >> > >> > Twitter: @DiegoUG >> > >> > Google+: +DiegoAlonsoUribeGamez >> > >> > ________________________________ >> > >> > >> > _______________________________________________ >> > Python-es mailing list >> > Python-es en python.org >> > https://mail.python.org/mailman/listinfo/python-es >> > FAQ: http://python-es-faq.wikidot.com/ >> > >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> > > > > -- > *Diego Alonso Uribe Gamez* > ------------------------------ > > *Desarrollador web* > > Twitter: @DiegoUG > > Google+: +DiegoAlonsoUribeGamez > > ------------------------------ > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From rubia.linux en gmail.com Thu Jun 26 05:51:40 2014 From: rubia.linux en gmail.com (ruben linux) Date: Thu, 26 Jun 2014 05:51:40 +0200 Subject: [Python-es] Buscar palabras en un archivo In-Reply-To: References: Message-ID: lo he resuelto, mas o menos. Pero funciona. #!/usr/bin/env python # python find_md5.py -a lista_palabras.txt -A texto_buscar.txt # linea 20. "while a < 11" cambiar 11 por las lineas de archivo1 # he pensado en usar len(archivo.readlines()) pero no me funciona :-(( import argparse #argumentos parser = argparse.ArgumentParser(description='busca las cadenas de archivo1 en archivo2') parser.add_argument('-a','--archivo1', help='archvio contine cadenas', required=True) parser.add_argument('-A','--archivo2', help='archivo en el que buscamos', required=True) args = parser.parse_args() archivo1 = open(args.archivo1, 'r') archivo2 = open(args.archivo2, 'r') lee2 = archivo2.readlines() try: a = 0 while a < 11: # recorre linea a linea archivo1. 11 = num de lineas archivo1 lee1 = archivo1.readline().rstrip() # lee1=valor de cada linea for i in lee2: if i.startswith(str(lee1)): #linea empieza por lee1 print i.rstrip() a = a + 1 archivo1.close() archivo2.close() except IOError: El 16/6/14, Flavio Danesse escribió: > Ruben, está bien ese programa, sólo que está incompleto porque find > devuelve el indice de la primera coincidencia, es decir que no sigue > buscando en el resto del texto. Yo solo te di una pista, pero hay que > completarlo para que te encuentre todas las coincidencias. > > En realidad, el problema a resolver es muy fácil, hay muchas formas de > resolverlo utilizando listas y strings y sus funciones. > > *Por ejemplo:* > > - Cargas las palabras a buscar en una lista (solo necesitas leer una > sola vez ese archivo). > - Luego, si lees el archivo donde debes buscar las coincidencias, y lo > separas en lineas, tienes una lista de string. > - Luego si cada una de esas lineas la separas en palabras (utilizando > string.split()), entonces tienes una lista de palabras. > - Ahora que tienes todo en listas, solo iteras y evalúas, (recuerda que > las listas mantienen el orden de los elementos y por lo tanto poseen un > indice) > > Obviamente hay muchas otras formas más elaboradas de hacerlo. > > > > El 16 de junio de 2014, 6:16, Chema Cortes escribió: > >> El 16 de junio de 2014, 8:29, ruben linux >> escribió: >> >> El proposito de este programa es buscar palabras dentro de un archivo, >>> pasandole como argumento otro archivo que contiene una lista de >>> palabras. >>> >>> Funciona a medias, me explico!!! solo lee la primera palabra de cada >>> linea. >>> >>> Por ejemplo, supongamos esta linea: "uno, dos, tres, cuatro,..." y en >>> el archivo de palabras, las tengo todas pero, solo me encuentra la >>> primera. >>> >>> Por que????? >>> >>> Eso es lo que necesito saber. >>> >>> Os dejo el codigo, y asi lo entendereis mejor. >>> >>> #!/usr/bin/env python >>> >>> import os,argparse >>> >>> # Argumentos >>> parser = argparse.ArgumentParser(description='busca las cadenas de >>> archivo1 en archivo2') >>> parser.add_argument('-a','--archivo1', help='archvio contine cadenas', >>> required=True) >>> parser.add_argument('-A','--archivo2', help='archivo en el que >>> buscamos', required=True) >>> args = parser.parse_args() >>> >>> file1 = args.archivo1 >>> file2 = args.archivo2 >>> >>> try: >>> # Abro el archivo 1 >>> archivo1 = open(file1,'r') >>> # Leo todo el archivo1 >>> lee1 = archivo1.readlines() >>> >> >> Ten en cuenta que "readlines" lee líneas completas, añadiendo un '\n' al >> final que tendrías que quitar. Lo extraño es que encuentres alguna >> palabra. >> >> >> >>> >>> for i in lee1: >>> # Abro archivo 2 >>> archivo2 = open(file2,'r') >>> # Leo completamente el archivo2 >>> lee2 = archivo2.read() >>> # -1 no esta, distinto de -1, si esta >>> if lee2.find(i) != -1: >>> # Muestra coincidencias >>> print i >>> >>> archivo2.close() >>> >>> archivo1.close() >>> >>> except IOError: >>> print 'El archivo indicado no existe' >>> >>> >>> El 9/6/14, Flavio Danesse escribió: >>> > Si abres el archivo y lo lees, pasandole su contenido a una variable, >>> esa >>> > variable será de tipo string. >>> > Y los objetos string tienen una función llamada *find* >>> > >>> > *find(s, *args)* >>> > >>> > *rfind(s, sub [,start [,end]]) -> in* >>> > >>> > >>> > >>> > Return the lowest index in s where substring sub is found, >>> > such that sub is contained within s[start,end]. Optional >>> > arguments start and end are interpreted as in slice notation. >>> > >>> > Return -1 on failure. >>> > >>> > >>> > >>> > El 8 de junio de 2014, 16:48, Chema Cortes >>> escribió: >>> > >>> >> El 8 de junio de 2014, 12:05, ruben linux >>> >> escribió: >>> >> >>> >> Saludos a todos, este es mi primer correo a la lista. >>> >>> >>> >>> Estoy empezando con Python, y este me pareció un buen sitio para >>> empezar >>> >>> y aprender. Decirnos antes de nada que este tema ya se lo busque en >>> >>> Google, >>> >>> y no doy con la respuesta adecuada, o la que me soluciona el >>> >>> problema. >>> >>> >>> >>> Como parte de mi aprendizaje, me he propuesto hacer un suripanta que >>> >>> busque palabras en un archivo, esta palabras están en otro archivo. >>> >>> Os >>> >>> dejo >>> >>> un trozo del código >>> >>> ... >>> >>> for line in file (a, 'r') >>> >>> if palabra in líne: >>> >>> print line >>> >>> >>> >>> palabra es una función que lee el archivo fuente, donde se >>> >>> encuentran >>> >>> las >>> >>> palabras que quiero buscar. Esté el el fallo que me devuelve: >>> >>> >>> >>> TypeError: 'in ' requires string as left operand! nota >>> >>> file >>> >>> >>> >> >>> >> Según este error, 'palabra' es un 'file' (fichero), no una >>> >> función.pyth >>> >> >>> >> >>> >>> >>> >>> Entiendo que no le puedo pasar a if un archivo, ni una función, sólo >>> >>> palabras, y eso es lo que no se hacer. Necesito qué me guíen. >>> >>> >>> >> >>> >> A un if hay que pasarle una expresión que se evalúe a true o false. >>> >> El >>> >> problema es que tienes que comparar contenidos comparables, una >>> >> cadena >>> >> dentro de otra cadena, o un elemento dentro de una lista. >>> >> >>> >> >>> >>> >>> >>> Tal vez usando listas... En tal caso cual es el tamaño máximo de una >>> >>> lista???. >>> >>> >>> >> >>> >> >>> >> Puedes usar listas y su tamaño es ilimitado. Pero no te aconsejo que >>> >> intentes llenar la memoria con una lista. Para estas cosas es mejor >>> usar >>> >> "iteradores" y sólo cargar en memoria los datos de un conjunto de >>> >> datos >>> >> con >>> >> los que vayas a operar. >>> >> >>> >> Por ejemplo, los objetos ficheros se definen como iteradores. Para >>> saber >>> >> si una palabra está en un fichero: >>> >> >>> >> with open("fichero.txt") as f: >>> >> for line in f: >>> >> if palabra in line: >>> >> print "Encontrada" >>> >> >>> >> El fichero puede contener Gigas o Teras de información, pero sólo se >>> >> necesita la memoria suficiente para cargar una línea de texto. >>> >> >>> >> Con algo más de experiencia, se puede hacer cosas más sofisticadas >>> >> con >>> >> los >>> >> iteradores: >>> >> >>> >> def allseen(words): >>> >> state = set(words) >>> >> def _aux(lst): >>> >> state -= set(lst) >>> >> return not bool(state) # have seen all the words? >>> >> return _aux >>> >> >>> >> allfounds = allseen(words) # 'allfounds' is a function >>> >> encontrada = any( allfounds(word for word in words if word in line) >>> >> for >>> >> line in open("fichero.txt")) >>> >> >>> >> La expresión es verdadera si todas las palabras de la lista "words" >>> >> existen en el fichero. >>> >> >>> >> Además, no es necesario procesar el resto del fichero si se >>> >> encuentran >>> >> todas las palabras. En el momento que "allfounds" devuelve el primer >>> >> true, >>> >> la función "any" retorna true y se para todo el proceso. >>> >> >>> >> >>> >> >>> >> PD: no te agobies si no entiendes nada ahora mismo. Que se pueda >>> >> hacer >>> no >>> >> quiere decir que todo el mundo lo haga así. Hazlo del modo que mejor >>> >> comprendas y pregunta lo que te surga. >>> >> >>> >> >>> >> >>> >> >>> >> >>> >>> >>> >>> Gracias a todos. >>> >>> >>> >>> _______________________________________________ >>> >>> Python-es mailing list >>> >>> Python-es en python.org >>> >>> https://mail.python.org/mailman/listinfo/python-es >>> >>> FAQ: http://python-es-faq.wikidot.com/ >>> >>> >>> >>> >>> >> >>> >> >>> >> -- >>> >> Hyperreals *R "Quarks, bits y otras criaturas infinitesimales": >>> >> http://ch3m4.org/blog >>> >> Buscador Python Hispano: http://ch3m4.org/python-es >>> >> >>> >> _______________________________________________ >>> >> Python-es mailing list >>> >> Python-es en python.org >>> >> https://mail.python.org/mailman/listinfo/python-es >>> >> FAQ: http://python-es-faq.wikidot.com/ >>> >> >>> >> >>> > >>> _______________________________________________ >>> Python-es mailing list >>> Python-es en python.org >>> https://mail.python.org/mailman/listinfo/python-es >>> FAQ: http://python-es-faq.wikidot.com/ >>> >> >> >> >> -- >> Hyperreals *R "Quarks, bits y otras criaturas infinitesimales": >> http://ch3m4.org/blog >> Buscador Python Hispano: http://ch3m4.org/python-es >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > From roxhman en gmail.com Thu Jun 26 03:58:12 2014 From: roxhman en gmail.com (Richard Castillo) Date: Wed, 25 Jun 2014 21:58:12 -0400 Subject: [Python-es] Publicar Web Django Message-ID: Hola Amigos!!, tengo una gran duda, estoy aprendiendo django y siguiendo un tutorial de video2brain, el tema es que me gustaria publicar la web en internet en algun servidor gratuito pero no tengo la mas minima idea de como hacerlo, estoy trabajando en windows !! por favor quien seria tan gentil de entregarme los detalles para hacer esto. -- Richard Castillo rOxhman en gmail.com rcv012 en alumnos.ucn.cl 78831308(Entel) 53619206(Movistar) Estudiante Ing Civil Informatica ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From gollum23 en gmail.com Thu Jun 26 15:18:35 2014 From: gollum23 en gmail.com (Diego Forero) Date: Thu, 26 Jun 2014 08:18:35 -0500 Subject: [Python-es] Publicar Web Django In-Reply-To: References: Message-ID: El gran problema es que los servicios de hosting gratuito no ofrecen soporte para python y mucho menos te dan acceso ssh para que puedas realizar por ejemplo la instalación de los paquetes como django para hacer el despliegue en el servidor. Si la quieres publicar tendras que pagar un hosting, uno de los más económicos que puedes encontrar es webfaction. Buen día 2014-06-25 20:58 GMT-05:00 Richard Castillo : > Hola Amigos!!, tengo una gran duda, estoy aprendiendo django y siguiendo > un tutorial de video2brain, el tema es que me gustaria publicar la web en > internet en algun servidor gratuito pero no tengo la mas minima idea de > como hacerlo, estoy trabajando en windows !! por favor quien seria tan > gentil de entregarme los detalles para hacer esto. > > -- > Richard Castillo > rOxhman en gmail.com > rcv012 en alumnos.ucn.cl > 78831308(Entel) > 53619206(Movistar) > Estudiante Ing Civil Informatica > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From raulcumplido en gmail.com Thu Jun 26 15:34:05 2014 From: raulcumplido en gmail.com (=?UTF-8?Q?Ra=C3=BAl_Cumplido?=) Date: Thu, 26 Jun 2014 14:34:05 +0100 Subject: [Python-es] Publicar Web Django In-Reply-To: References: Message-ID: Hola, Hay varias que te permiten hacer pruebas gratuitas como las que te ponen en la siguiente web: http://codecondo.com/5-platforms-provide-free-django-app-hosting/ Heroku, AWS o OpenShift tienen versiones gratis con las que probar, échale un ojo y mira las limitaciones. Saludos, Raúl 2014-06-26 14:18 GMT+01:00 Diego Forero : > El gran problema es que los servicios de hosting gratuito no ofrecen > soporte para python y mucho menos te dan acceso ssh para que puedas > realizar por ejemplo la instalación de los paquetes como django para hacer > el despliegue en el servidor. > > Si la quieres publicar tendras que pagar un hosting, uno de los más > económicos que puedes encontrar es webfaction. > > Buen día > > > 2014-06-25 20:58 GMT-05:00 Richard Castillo : > >> Hola Amigos!!, tengo una gran duda, estoy aprendiendo django y siguiendo >> un tutorial de video2brain, el tema es que me gustaria publicar la web en >> internet en algun servidor gratuito pero no tengo la mas minima idea de >> como hacerlo, estoy trabajando en windows !! por favor quien seria tan >> gentil de entregarme los detalles para hacer esto. >> >> -- >> Richard Castillo >> rOxhman en gmail.com >> rcv012 en alumnos.ucn.cl >> 78831308(Entel) >> 53619206(Movistar) >> Estudiante Ing Civil Informatica >> >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > -- Raúl Cumplido ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From jcaballero.hep en gmail.com Thu Jun 26 16:24:20 2014 From: jcaballero.hep en gmail.com (Jose Caballero) Date: Thu, 26 Jun 2014 10:24:20 -0400 Subject: [Python-es] Buscar palabras en un archivo In-Reply-To: References: Message-ID: Hola, creo que te estas complicando demasiado la vida. Los arboles ya no te dejan ver el bosque. Sin embargo, al menos estas intentando cosas. Pones esfuerzo de tu parte. Ya es algo. El primer problema por el que es dificil ayudarte es que no nos has dicho (o no lo recuerdo) como son los ficheros. Nos dices que buscas en uno las palabras que hay en el otro. Pero ese otro, como es? Una lista de palabras, en una fila? En una columna? o no tiene "formato"? He decidido asumir que es el caso 2, las palabras estan en una columna. Si no es correcto, al menos el codigo que te muestro te puede dar una pista. $ cat list palabra1 palabra2 palabra3 $ cat text lasfas palabra1 ;asflasf f lafa palabra2 lafasfd palabra3 afasdf alsdfasdfaf lasfdasfd asfdadsf afa fdaf palabra3 afasfdas palabra2 afads asdfas asfas fafas $ cat kk.py # quick and dirty solution list_words = [] list_lines = [] f1 = open('list') for line in f1.readlines(): # remove the trailing \n list_words.append(line[:-1]) f2 = open('text') for line in f2.readlines(): # remove the trailing \n list_lines.append(line[:-1]) for line in list_lines: for word in list_words: if word in line: print line # one word per line is enough break From maengora en gmail.com Thu Jun 26 17:03:28 2014 From: maengora en gmail.com (=?UTF-8?Q?Manuel_Enrique_Gonz=C3=A1lez_Ram=C3=ADrez?=) Date: Thu, 26 Jun 2014 10:03:28 -0500 Subject: [Python-es] Buscar palabras en un archivo In-Reply-To: References: Message-ID: Compañero, A ver si te sirve este pequeño código que hice creo que hace dos años cuando surgió la necesidad en la empresa de generar unos reportes en base a los logs que dejaba un servidor: import os # Solicito el nombre del archivo a analizar narchivo = raw_input('Archivo log a analizar: ') try: # Abro el archivo para la lectura archivo = open(narchivo,'r') # Inicio el contador cENV = 0 cREC = 0 cE50 = 0 cE20 = 0 # Inicio el bucle que lee el archivo # y agrego la condicion que busca la palabra for linea in archivo: if linea.find('ENV') >= 0: cENV += 1 if linea.find('REC') >= 0: cREC += 1 if linea.find('50 null') >= 0: cE50 += 1 if linea.find('20 Operador') >= 0: cE20 += 1 # Cierro el Archivo archivo.close() print 'Total solicitudes enviadas: ',cENV + 1 print 'Total solicitudes recibidas: ',cREC + 1 print 'Total respuesto 50 null: ',cE50 + 1 print 'Total respuesta 20 Operador no responde: ',cE20 + 1 except IOError: print 'El archivo indicado no existe' El 8 de junio de 2014, 5:05, ruben linux escribió: > Saludos a todos, este es mi primer correo a la lista. > > Estoy empezando con Python, y este me pareció un buen sitio para empezar y > aprender. Decirnos antes de nada que este tema ya se lo busque en Google, y > no doy con la respuesta adecuada, o la que me soluciona el problema. > > Como parte de mi aprendizaje, me he propuesto hacer un suripanta que > busque palabras en un archivo, esta palabras están en otro archivo. Os dejo > un trozo del código > ... > for line in file (a, 'r') > if palabra in líne: > print line > > palabra es una función que lee el archivo fuente, donde se encuentran las > palabras que quiero buscar. Esté el el fallo que me devuelve: > > TypeError: 'in ' requires string as left operand! nota file > > Entiendo que no le puedo pasar a if un archivo, ni una función, sólo > palabras, y eso es lo que no se hacer. Necesito qué me guíen. > > Tal vez usando listas... En tal caso cual es el tamaño máximo de una > lista???. > > Gracias a todos. > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > -- Manuel Enrique González Ramírez http://maengora.blogspot.com ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From harenson en gmail.com Thu Jun 26 20:27:03 2014 From: harenson en gmail.com (Harenson Henao) Date: Thu, 26 Jun 2014 13:27:03 -0500 Subject: [Python-es] Publicar Web Django In-Reply-To: References: Message-ID: Yo tengo cuenta en alwaysdata y pues la verdad hasta ahora no lo he usado, pero ellos incluso te dan acceso ssh y soportan Python, Ruby y PHP. Python hasta la versión 3.1 y Django hasta la versión 1.6.4, te permite seleccionar la versión que desees usar. Además es gratis, como nos gusta :) https://www.alwaysdata.com/ Saludos, Harenson El 26 de junio de 2014, 8:34, Raúl Cumplido escribió: > Hola, > > Hay varias que te permiten hacer pruebas gratuitas como las que te ponen > en la siguiente web: > > http://codecondo.com/5-platforms-provide-free-django-app-hosting/ > > Heroku, AWS o OpenShift tienen versiones gratis con las que probar, échale > un ojo y mira las limitaciones. > > Saludos, > Raúl > > > > > 2014-06-26 14:18 GMT+01:00 Diego Forero : > > El gran problema es que los servicios de hosting gratuito no ofrecen >> soporte para python y mucho menos te dan acceso ssh para que puedas >> realizar por ejemplo la instalación de los paquetes como django para hacer >> el despliegue en el servidor. >> >> Si la quieres publicar tendras que pagar un hosting, uno de los más >> económicos que puedes encontrar es webfaction. >> >> Buen día >> >> >> 2014-06-25 20:58 GMT-05:00 Richard Castillo : >> >>> Hola Amigos!!, tengo una gran duda, estoy aprendiendo django y siguiendo >>> un tutorial de video2brain, el tema es que me gustaria publicar la web en >>> internet en algun servidor gratuito pero no tengo la mas minima idea de >>> como hacerlo, estoy trabajando en windows !! por favor quien seria tan >>> gentil de entregarme los detalles para hacer esto. >>> >>> -- >>> Richard Castillo >>> rOxhman en gmail.com >>> rcv012 en alumnos.ucn.cl >>> 78831308(Entel) >>> 53619206(Movistar) >>> Estudiante Ing Civil Informatica >>> >>> >>> _______________________________________________ >>> Python-es mailing list >>> Python-es en python.org >>> https://mail.python.org/mailman/listinfo/python-es >>> FAQ: http://python-es-faq.wikidot.com/ >>> >>> >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > > > -- > Raúl Cumplido > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From omar.vpa en gmail.com Thu Jun 26 22:15:53 2014 From: omar.vpa en gmail.com (=?UTF-8?Q?Omar_Guti=C3=A9rrez?=) Date: Thu, 26 Jun 2014 15:15:53 -0500 Subject: [Python-es] Publicar Web Django In-Reply-To: References: Message-ID: La desventaja de 'alwaysdata' es que te dan poco espacio, creo que la mejor opción es Heroku. Igualmente puedes usar Amazon AWS que te da acceso gratuito por un año a sus servicios. Python Anywere es también una buena opción. 2014-06-26 13:27 GMT-05:00 Harenson Henao : > Yo tengo cuenta en alwaysdata y pues la verdad hasta ahora no lo he usado, > pero ellos incluso te dan acceso ssh y soportan Python, Ruby y PHP. > > Python hasta la versión 3.1 y Django hasta la versión 1.6.4, te permite > seleccionar la versión que desees usar. > > Además es gratis, como nos gusta :) > > https://www.alwaysdata.com/ > > > Saludos, > > Harenson > > > El 26 de junio de 2014, 8:34, Raúl Cumplido > escribió: > > Hola, >> >> Hay varias que te permiten hacer pruebas gratuitas como las que te ponen >> en la siguiente web: >> >> http://codecondo.com/5-platforms-provide-free-django-app-hosting/ >> >> Heroku, AWS o OpenShift tienen versiones gratis con las que probar, >> échale un ojo y mira las limitaciones. >> >> Saludos, >> Raúl >> >> >> >> >> 2014-06-26 14:18 GMT+01:00 Diego Forero : >> >> El gran problema es que los servicios de hosting gratuito no ofrecen >>> soporte para python y mucho menos te dan acceso ssh para que puedas >>> realizar por ejemplo la instalación de los paquetes como django para hacer >>> el despliegue en el servidor. >>> >>> Si la quieres publicar tendras que pagar un hosting, uno de los más >>> económicos que puedes encontrar es webfaction. >>> >>> Buen día >>> >>> >>> 2014-06-25 20:58 GMT-05:00 Richard Castillo : >>> >>>> Hola Amigos!!, tengo una gran duda, estoy aprendiendo django y >>>> siguiendo un tutorial de video2brain, el tema es que me gustaria publicar >>>> la web en internet en algun servidor gratuito pero no tengo la mas minima >>>> idea de como hacerlo, estoy trabajando en windows !! por favor quien seria >>>> tan gentil de entregarme los detalles para hacer esto. >>>> >>>> -- >>>> Richard Castillo >>>> rOxhman en gmail.com >>>> rcv012 en alumnos.ucn.cl >>>> 78831308(Entel) >>>> 53619206(Movistar) >>>> Estudiante Ing Civil Informatica >>>> >>>> >>>> _______________________________________________ >>>> Python-es mailing list >>>> Python-es en python.org >>>> https://mail.python.org/mailman/listinfo/python-es >>>> FAQ: http://python-es-faq.wikidot.com/ >>>> >>>> >>> >>> _______________________________________________ >>> Python-es mailing list >>> Python-es en python.org >>> https://mail.python.org/mailman/listinfo/python-es >>> FAQ: http://python-es-faq.wikidot.com/ >>> >>> >> >> >> -- >> Raúl Cumplido >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From jsabastizagal en gmail.com Fri Jun 27 02:51:50 2014 From: jsabastizagal en gmail.com (Jose Sabastizagal) Date: Thu, 26 Jun 2014 19:51:50 -0500 Subject: [Python-es] Publicar Web Django In-Reply-To: References: Message-ID: http://www.maestrosdelweb.com/editorial/curso-django-despliegue-en-el-servidor-web/ José Alejandro Sabastizagal Orellana http://www.42.com.pe http://www.sabastizagal.com El 26 de junio de 2014, 15:15, Omar Gutiérrez escribió: > La desventaja de 'alwaysdata' es que te dan poco espacio, creo que la > mejor opción es Heroku. Igualmente puedes usar Amazon AWS que te da acceso > gratuito por un año a sus servicios. Python Anywere es también una buena > opción. > > > 2014-06-26 13:27 GMT-05:00 Harenson Henao : > > Yo tengo cuenta en alwaysdata y pues la verdad hasta ahora no lo he usado, >> pero ellos incluso te dan acceso ssh y soportan Python, Ruby y PHP. >> >> Python hasta la versión 3.1 y Django hasta la versión 1.6.4, te permite >> seleccionar la versión que desees usar. >> >> Además es gratis, como nos gusta :) >> >> https://www.alwaysdata.com/ >> >> >> Saludos, >> >> Harenson >> >> >> El 26 de junio de 2014, 8:34, Raúl Cumplido >> escribió: >> >> Hola, >>> >>> Hay varias que te permiten hacer pruebas gratuitas como las que te ponen >>> en la siguiente web: >>> >>> http://codecondo.com/5-platforms-provide-free-django-app-hosting/ >>> >>> Heroku, AWS o OpenShift tienen versiones gratis con las que probar, >>> échale un ojo y mira las limitaciones. >>> >>> Saludos, >>> Raúl >>> >>> >>> >>> >>> 2014-06-26 14:18 GMT+01:00 Diego Forero : >>> >>> El gran problema es que los servicios de hosting gratuito no ofrecen >>>> soporte para python y mucho menos te dan acceso ssh para que puedas >>>> realizar por ejemplo la instalación de los paquetes como django para hacer >>>> el despliegue en el servidor. >>>> >>>> Si la quieres publicar tendras que pagar un hosting, uno de los más >>>> económicos que puedes encontrar es webfaction. >>>> >>>> Buen día >>>> >>>> >>>> 2014-06-25 20:58 GMT-05:00 Richard Castillo : >>>> >>>>> Hola Amigos!!, tengo una gran duda, estoy aprendiendo django y >>>>> siguiendo un tutorial de video2brain, el tema es que me gustaria publicar >>>>> la web en internet en algun servidor gratuito pero no tengo la mas minima >>>>> idea de como hacerlo, estoy trabajando en windows !! por favor quien seria >>>>> tan gentil de entregarme los detalles para hacer esto. >>>>> >>>>> -- >>>>> Richard Castillo >>>>> rOxhman en gmail.com >>>>> rcv012 en alumnos.ucn.cl >>>>> 78831308(Entel) >>>>> 53619206(Movistar) >>>>> Estudiante Ing Civil Informatica >>>>> >>>>> >>>>> _______________________________________________ >>>>> Python-es mailing list >>>>> Python-es en python.org >>>>> https://mail.python.org/mailman/listinfo/python-es >>>>> FAQ: http://python-es-faq.wikidot.com/ >>>>> >>>>> >>>> >>>> _______________________________________________ >>>> Python-es mailing list >>>> Python-es en python.org >>>> https://mail.python.org/mailman/listinfo/python-es >>>> FAQ: http://python-es-faq.wikidot.com/ >>>> >>>> >>> >>> >>> -- >>> Raúl Cumplido >>> >>> _______________________________________________ >>> Python-es mailing list >>> Python-es en python.org >>> https://mail.python.org/mailman/listinfo/python-es >>> FAQ: http://python-es-faq.wikidot.com/ >>> >>> >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From aespinosamoreno en gmail.com Thu Jun 26 15:34:23 2014 From: aespinosamoreno en gmail.com (=?UTF-8?Q?Adri=C3=A1n_Espinosa_Moreno?=) Date: Thu, 26 Jun 2014 15:34:23 +0200 Subject: [Python-es] Publicar Web Django In-Reply-To: References: Message-ID: Hola, efectivamente como comenta Diego, los hosting gratuitos no suelen dar un servicio para alojar webs basadas en Python / Django. Webfaction es un hosting bastante recomendable. Si quieres algo un poco más barato también tienes Digital Ocean, que los planes comienzan en 5$/mes y al ser VPS, tienes acceso root al servidor, y así podrás tener un control absoluto para hacer y deshacer. Un saludo. -- Adrián Espinosa Moreno Software Developer. http://www.adrianespinosa.com 2014-06-26 15:18 GMT+02:00 Diego Forero : > El gran problema es que los servicios de hosting gratuito no ofrecen > soporte para python y mucho menos te dan acceso ssh para que puedas > realizar por ejemplo la instalación de los paquetes como django para hacer > el despliegue en el servidor. > > Si la quieres publicar tendras que pagar un hosting, uno de los más > económicos que puedes encontrar es webfaction. > > Buen día > > > 2014-06-25 20:58 GMT-05:00 Richard Castillo : > >> Hola Amigos!!, tengo una gran duda, estoy aprendiendo django y siguiendo >> un tutorial de video2brain, el tema es que me gustaria publicar la web en >> internet en algun servidor gratuito pero no tengo la mas minima idea de >> como hacerlo, estoy trabajando en windows !! por favor quien seria tan >> gentil de entregarme los detalles para hacer esto. >> >> -- >> Richard Castillo >> rOxhman en gmail.com >> rcv012 en alumnos.ucn.cl >> 78831308(Entel) >> 53619206(Movistar) >> Estudiante Ing Civil Informatica >> >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From oriolandresmartin en gmail.com Thu Jun 26 15:37:36 2014 From: oriolandresmartin en gmail.com (=?UTF-8?Q?Oriol_Andr=C3=A9s?=) Date: Thu, 26 Jun 2014 14:37:36 +0100 Subject: [Python-es] Publicar Web Django In-Reply-To: References: Message-ID: Yo hace un par de semanas abrí una cuenta en Pythonanywhere.com. Parece que para los proyectos mas sencillos tienes hosting gratuito. 2014-06-26 14:18 GMT+01:00 Diego Forero : > El gran problema es que los servicios de hosting gratuito no ofrecen > soporte para python y mucho menos te dan acceso ssh para que puedas > realizar por ejemplo la instalación de los paquetes como django para hacer > el despliegue en el servidor. > > Si la quieres publicar tendras que pagar un hosting, uno de los más > económicos que puedes encontrar es webfaction. > > Buen día > > > 2014-06-25 20:58 GMT-05:00 Richard Castillo : > >> Hola Amigos!!, tengo una gran duda, estoy aprendiendo django y siguiendo >> un tutorial de video2brain, el tema es que me gustaria publicar la web en >> internet en algun servidor gratuito pero no tengo la mas minima idea de >> como hacerlo, estoy trabajando en windows !! por favor quien seria tan >> gentil de entregarme los detalles para hacer esto. >> >> -- >> Richard Castillo >> rOxhman en gmail.com >> rcv012 en alumnos.ucn.cl >> 78831308(Entel) >> 53619206(Movistar) >> Estudiante Ing Civil Informatica >> >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From sebabarr en gmail.com Thu Jun 26 15:37:41 2014 From: sebabarr en gmail.com (Sebastian Barr) Date: Thu, 26 Jun 2014 10:37:41 -0300 Subject: [Python-es] Publicar Web Django In-Reply-To: References: Message-ID: Hola. Creo q en heroku podes hacer algo con python mas django y gratis. Algo simple. Saludos El 26/06/2014 10:14, "Richard Castillo" escribió: > Hola Amigos!!, tengo una gran duda, estoy aprendiendo django y siguiendo > un tutorial de video2brain, el tema es que me gustaria publicar la web en > internet en algun servidor gratuito pero no tengo la mas minima idea de > como hacerlo, estoy trabajando en windows !! por favor quien seria tan > gentil de entregarme los detalles para hacer esto. > > -- > Richard Castillo > rOxhman en gmail.com > rcv012 en alumnos.ucn.cl > 78831308(Entel) > 53619206(Movistar) > Estudiante Ing Civil Informatica > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From roxhman en gmail.com Thu Jun 26 15:41:14 2014 From: roxhman en gmail.com (Richard Castillo) Date: Thu, 26 Jun 2014 09:41:14 -0400 Subject: [Python-es] Publicar Web Django In-Reply-To: References: Message-ID: Ayer intente configurar heroku pero estoy desde windows 7 y no encontre guia alguna que me ayudara =/ y cada cosa que encontraba estaba realizada para linux tendre que migrar a linux para poder publicar mi web e ir viendo avances ( digo web, pero tiene 1 solo documento y sin formato xD) El 26 de junio de 2014, 9:34, Raúl Cumplido escribió: > Hola, > > Hay varias que te permiten hacer pruebas gratuitas como las que te ponen > en la siguiente web: > > http://codecondo.com/5-platforms-provide-free-django-app-hosting/ > > Heroku, AWS o OpenShift tienen versiones gratis con las que probar, échale > un ojo y mira las limitaciones. > > Saludos, > Raúl > > > > > 2014-06-26 14:18 GMT+01:00 Diego Forero : > > El gran problema es que los servicios de hosting gratuito no ofrecen >> soporte para python y mucho menos te dan acceso ssh para que puedas >> realizar por ejemplo la instalación de los paquetes como django para hacer >> el despliegue en el servidor. >> >> Si la quieres publicar tendras que pagar un hosting, uno de los más >> económicos que puedes encontrar es webfaction. >> >> Buen día >> >> >> 2014-06-25 20:58 GMT-05:00 Richard Castillo : >> >>> Hola Amigos!!, tengo una gran duda, estoy aprendiendo django y siguiendo >>> un tutorial de video2brain, el tema es que me gustaria publicar la web en >>> internet en algun servidor gratuito pero no tengo la mas minima idea de >>> como hacerlo, estoy trabajando en windows !! por favor quien seria tan >>> gentil de entregarme los detalles para hacer esto. >>> >>> -- >>> Richard Castillo >>> rOxhman en gmail.com >>> rcv012 en alumnos.ucn.cl >>> 78831308(Entel) >>> 53619206(Movistar) >>> Estudiante Ing Civil Informatica >>> >>> >>> _______________________________________________ >>> Python-es mailing list >>> Python-es en python.org >>> https://mail.python.org/mailman/listinfo/python-es >>> FAQ: http://python-es-faq.wikidot.com/ >>> >>> >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > > > -- > Raúl Cumplido > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > -- Richard Castillo rOxhman en gmail.com rcv012 en alumnos.ucn.cl 78831308(Entel) 53619206(Movistar) Estudiante Ing Civil Informatica ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From roxhman en gmail.com Thu Jun 26 15:22:45 2014 From: roxhman en gmail.com (Richard Castillo) Date: Thu, 26 Jun 2014 09:22:45 -0400 Subject: [Python-es] Publicar Web Django In-Reply-To: References: Message-ID: Muchas gracias Diego! El 26 de junio de 2014, 9:18, Diego Forero escribió: > El gran problema es que los servicios de hosting gratuito no ofrecen > soporte para python y mucho menos te dan acceso ssh para que puedas > realizar por ejemplo la instalación de los paquetes como django para hacer > el despliegue en el servidor. > > Si la quieres publicar tendras que pagar un hosting, uno de los más > económicos que puedes encontrar es webfaction. > > Buen día > > > 2014-06-25 20:58 GMT-05:00 Richard Castillo : > >> Hola Amigos!!, tengo una gran duda, estoy aprendiendo django y siguiendo >> un tutorial de video2brain, el tema es que me gustaria publicar la web en >> internet en algun servidor gratuito pero no tengo la mas minima idea de >> como hacerlo, estoy trabajando en windows !! por favor quien seria tan >> gentil de entregarme los detalles para hacer esto. >> >> -- >> Richard Castillo >> rOxhman en gmail.com >> rcv012 en alumnos.ucn.cl >> 78831308(Entel) >> 53619206(Movistar) >> Estudiante Ing Civil Informatica >> >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > -- Richard Castillo rOxhman en gmail.com rcv012 en alumnos.ucn.cl 78831308(Entel) 53619206(Movistar) Estudiante Ing Civil Informatica ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From roxhman en gmail.com Thu Jun 26 21:22:22 2014 From: roxhman en gmail.com (Richard Castillo) Date: Thu, 26 Jun 2014 15:22:22 -0400 Subject: [Python-es] Publicar Web Django In-Reply-To: References: Message-ID: Me complica la configuración inicial que hay que realizar es primera vez que me lanzo al desarrollo web, y de momento estoy algo confundido espero poder salir adelante, investigare como configurar. gracias harenson El 26 de junio de 2014, 14:27, Harenson Henao escribió: > Yo tengo cuenta en alwaysdata y pues la verdad hasta ahora no lo he usado, > pero ellos incluso te dan acceso ssh y soportan Python, Ruby y PHP. > > Python hasta la versión 3.1 y Django hasta la versión 1.6.4, te permite > seleccionar la versión que desees usar. > > Además es gratis, como nos gusta :) > > https://www.alwaysdata.com/ > > > Saludos, > > Harenson > > > El 26 de junio de 2014, 8:34, Raúl Cumplido > escribió: > >> Hola, >> >> Hay varias que te permiten hacer pruebas gratuitas como las que te ponen >> en la siguiente web: >> >> http://codecondo.com/5-platforms-provide-free-django-app-hosting/ >> >> Heroku, AWS o OpenShift tienen versiones gratis con las que probar, >> échale un ojo y mira las limitaciones. >> >> Saludos, >> Raúl >> >> >> >> >> 2014-06-26 14:18 GMT+01:00 Diego Forero : >> >> El gran problema es que los servicios de hosting gratuito no ofrecen >>> soporte para python y mucho menos te dan acceso ssh para que puedas >>> realizar por ejemplo la instalación de los paquetes como django para hacer >>> el despliegue en el servidor. >>> >>> Si la quieres publicar tendras que pagar un hosting, uno de los más >>> económicos que puedes encontrar es webfaction. >>> >>> Buen día >>> >>> >>> 2014-06-25 20:58 GMT-05:00 Richard Castillo : >>> >>>> Hola Amigos!!, tengo una gran duda, estoy aprendiendo django y >>>> siguiendo un tutorial de video2brain, el tema es que me gustaria publicar >>>> la web en internet en algun servidor gratuito pero no tengo la mas minima >>>> idea de como hacerlo, estoy trabajando en windows !! por favor quien seria >>>> tan gentil de entregarme los detalles para hacer esto. >>>> >>>> -- >>>> Richard Castillo >>>> rOxhman en gmail.com >>>> rcv012 en alumnos.ucn.cl >>>> 78831308(Entel) >>>> 53619206(Movistar) >>>> Estudiante Ing Civil Informatica >>>> >>>> >>>> _______________________________________________ >>>> Python-es mailing list >>>> Python-es en python.org >>>> https://mail.python.org/mailman/listinfo/python-es >>>> FAQ: http://python-es-faq.wikidot.com/ >>>> >>>> >>> >>> _______________________________________________ >>> Python-es mailing list >>> Python-es en python.org >>> https://mail.python.org/mailman/listinfo/python-es >>> FAQ: http://python-es-faq.wikidot.com/ >>> >>> >> >> >> -- >> Raúl Cumplido >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > -- Richard Castillo rOxhman en gmail.com rcv012 en alumnos.ucn.cl 78831308(Entel) 53619206(Movistar) Estudiante Ing Civil Informatica ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From roxhman en gmail.com Thu Jun 26 22:23:47 2014 From: roxhman en gmail.com (Richard Castillo) Date: Thu, 26 Jun 2014 16:23:47 -0400 Subject: [Python-es] Publicar Web Django In-Reply-To: References: Message-ID: Algun tutorial de configuración por ahi amigos? o alguien que realice alguno para windows. :D gracias! El 26 de junio de 2014, 16:15, Omar Gutiérrez escribió: > La desventaja de 'alwaysdata' es que te dan poco espacio, creo que la > mejor opción es Heroku. Igualmente puedes usar Amazon AWS que te da acceso > gratuito por un año a sus servicios. Python Anywere es también una buena > opción. > > > 2014-06-26 13:27 GMT-05:00 Harenson Henao : > > Yo tengo cuenta en alwaysdata y pues la verdad hasta ahora no lo he usado, >> pero ellos incluso te dan acceso ssh y soportan Python, Ruby y PHP. >> >> Python hasta la versión 3.1 y Django hasta la versión 1.6.4, te permite >> seleccionar la versión que desees usar. >> >> Además es gratis, como nos gusta :) >> >> https://www.alwaysdata.com/ >> >> >> Saludos, >> >> Harenson >> >> >> El 26 de junio de 2014, 8:34, Raúl Cumplido >> escribió: >> >> Hola, >>> >>> Hay varias que te permiten hacer pruebas gratuitas como las que te ponen >>> en la siguiente web: >>> >>> http://codecondo.com/5-platforms-provide-free-django-app-hosting/ >>> >>> Heroku, AWS o OpenShift tienen versiones gratis con las que probar, >>> échale un ojo y mira las limitaciones. >>> >>> Saludos, >>> Raúl >>> >>> >>> >>> >>> 2014-06-26 14:18 GMT+01:00 Diego Forero : >>> >>> El gran problema es que los servicios de hosting gratuito no ofrecen >>>> soporte para python y mucho menos te dan acceso ssh para que puedas >>>> realizar por ejemplo la instalación de los paquetes como django para hacer >>>> el despliegue en el servidor. >>>> >>>> Si la quieres publicar tendras que pagar un hosting, uno de los más >>>> económicos que puedes encontrar es webfaction. >>>> >>>> Buen día >>>> >>>> >>>> 2014-06-25 20:58 GMT-05:00 Richard Castillo : >>>> >>>>> Hola Amigos!!, tengo una gran duda, estoy aprendiendo django y >>>>> siguiendo un tutorial de video2brain, el tema es que me gustaria publicar >>>>> la web en internet en algun servidor gratuito pero no tengo la mas minima >>>>> idea de como hacerlo, estoy trabajando en windows !! por favor quien seria >>>>> tan gentil de entregarme los detalles para hacer esto. >>>>> >>>>> -- >>>>> Richard Castillo >>>>> rOxhman en gmail.com >>>>> rcv012 en alumnos.ucn.cl >>>>> 78831308(Entel) >>>>> 53619206(Movistar) >>>>> Estudiante Ing Civil Informatica >>>>> >>>>> >>>>> _______________________________________________ >>>>> Python-es mailing list >>>>> Python-es en python.org >>>>> https://mail.python.org/mailman/listinfo/python-es >>>>> FAQ: http://python-es-faq.wikidot.com/ >>>>> >>>>> >>>> >>>> _______________________________________________ >>>> Python-es mailing list >>>> Python-es en python.org >>>> https://mail.python.org/mailman/listinfo/python-es >>>> FAQ: http://python-es-faq.wikidot.com/ >>>> >>>> >>> >>> >>> -- >>> Raúl Cumplido >>> >>> _______________________________________________ >>> Python-es mailing list >>> Python-es en python.org >>> https://mail.python.org/mailman/listinfo/python-es >>> FAQ: http://python-es-faq.wikidot.com/ >>> >>> >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > -- Richard Castillo rOxhman en gmail.com rcv012 en alumnos.ucn.cl 78831308(Entel) 53619206(Movistar) Estudiante Ing Civil Informatica ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: