Re: [Python-es] Biblioteca XPATH
Hola, pues yo tengo un proyecto en el que las únicas dependencias son lxml y cssselect (podría apañarme sin el, pero hace la vida mas cómoda). Uso urllib de la librería standard para recuperar contenidos y los mentados lxml y csselect para parsear y extraer datos. En mi caso utilizo este setup para mantener las cosas lo mas simples posibles y no hecho de menos ninguna otra biblioteca. Un saludo! El dom, 7 feb 2021 a las 23:59, Jesus Cea () escribió: > > > On 7/2/21 20:02, lasizoillo wrote: > > > > > > El dom, 7 feb 2021 a las 18:35, Ander Garmendia ( > <mailto:kelertx...@gmail.com>>) escribió: > > > > ¿Has probado con lxml? > > > > > > No se me ocurre nada mejor que eso > > https://github.com/scrapy/scrapy/blob/master/setup.py#L37 > > <https://github.com/scrapy/scrapy/blob/master/setup.py#L37> > > Esto... vale, estoy tonto perdido. > > https://lxml.de/xpathxslt.html > > Es una pena que beautifulsoup no de acceso a xpath. Ahora me planteo por > qué usar beautifulsoap con un backend lxml en vez de usar lxml de forma > nativa. > > ¿Opiniones?. > > -- > Jesús Cea Avión _/_/ _/_/_/_/_/_/ > j...@jcea.es - https://www.jcea.es/_/_/_/_/ _/_/_/_/ _/_/ > Twitter: @jcea_/_/_/_/ _/_/_/_/_/ > jabber / xmpp:j...@jabber.org _/_/ _/_/_/_/ _/_/ _/_/ > "Things are not so easy" _/_/ _/_/_/_/ _/_/_/_/ _/_/ > "My name is Dump, Core Dump" _/_/_/_/_/_/ _/_/ _/_/ > "El amor es poner tu felicidad en la felicidad de otro" - Leibniz > > ___ > Python-es mailing list > Python-es@python.org > https://mail.python.org/mailman/listinfo/python-es > ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es
Re: [Python-es] Biblioteca XPATH
¿Has probado con lxml? Jesus Cea igorleak hau idatzi zuen (2021 ots. 7, ig. 16:55): > ¿Alguien conoce una biblioteca XPATH que no sea cargar con todo scrapy? > > Gracias. > > -- > Jesús Cea Avión _/_/ _/_/_/_/_/_/ > j...@jcea.es - https://www.jcea.es/_/_/_/_/ _/_/_/_/ _/_/ > Twitter: @jcea_/_/_/_/ _/_/_/_/_/ > jabber / xmpp:j...@jabber.org _/_/ _/_/_/_/ _/_/ _/_/ > "Things are not so easy" _/_/ _/_/_/_/ _/_/_/_/ _/_/ > "My name is Dump, Core Dump" _/_/_/_/_/_/ _/_/ _/_/ > "El amor es poner tu felicidad en la felicidad de otro" - Leibniz > > ___ > Python-es mailing list > Python-es@python.org > https://mail.python.org/mailman/listinfo/python-es > ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es
Re: [Python-es] problema con "regular expression"
Exacto, gracias por la corrección. Alexis Roda igorleak hau idatzi zuen (2020 abu. 17, al. 17:01): > El ? va junto al * que queremos que no sea codicioso: > > pattern = re.compile("^(?P(.*?)): (?P(.*))$") > > Ponerlo junto al : hace que ese carácter sea opcional. > > In [20]: p = re.compile("^(?P(.*)):? (?P(.*))$") > > In [21]: l = "hola mundo" > > In [22]: m = p.match(l) > > In [23]: m.groupdict() > Out[23]: {'type': 'hola', 'value': 'mundo'} > > > > > Missatge de Ander Garmendia del dia dl., 17 d’ag. > 2020 a les 16:43: > >> Uuups, te he pegado una expresión que está mal. La correcta es esta: >> >> pattern = re.compile("^(?P(.*)):? (?P(.*))$") >> >> Perdona las molestias. >> >> Jose Caballero igorleak hau idatzi zuen (2020 >> abu. 17, al. 16:37): >> >>> no parece: >>> >>> >>> p = re.compile("^(?P(.*)):? (?P([^:]*))$") >>> >>> >>> >>> l = "type: word: foo bar" >>> >>> >>> >>> m = p.match(l) >>> >>> print m.groupdict() >>> {'type': 'type: word: foo', 'value': 'bar'} >>> >>> >>> >>> Pero voy a echar un vistazo a "greedy". >>> Muchas gracias. >>> >>> Jose >>> >>> El lun., 17 ago. 2020 a las 15:25, Ander Garmendia >>> () escribió: >>> > >>> > Hola, >>> > >>> > Las expresiones tipo(. *) son "greedy", esto es se expanden "a todo lo >>> que pillen". Si quieres limitar el match al primer grupo, añade un ? al >>> carácter de corte: >>> > >>> > pattern = re.compile("^(?P(.*)):? (?P([^:]*))$") >>> > >>> > Si buscas "greedy" en el apartado de la librería "re" en la >>> documentacion oficial, lo explican mucho mejor. >>> > >>> > Un saludo. >>> > >>> > Jose Caballero igorleak hau idatzi zuen >>> (2020 abu. 17, al. 15:45): >>> >> >>> >> Hola, >>> >> >>> >> tengo una serie de lineas, todas con el mismo formato: >>> >> >>> >> : >>> >> >>> >> donde es una sola palabra, y es una frase. >>> >> Intentaba "parsearlas" con algo como esto: >>> >> >>> >> pattern = re.compile("^(?P(.*)): (?P(.*))$") >>> >> parse = pattern.match(line) >>> >> groups = parse.groupdict() >>> >> print( groups["type"] ) >>> >> print( groups["value"] ) >>> >> >>> >> Funciona bien, salvo que incluya el signo de los dos puntos. >>> >> Por ejemplo, para >>> >> >>> >> one: two: three four >>> >> >>> >> Me devuelve type = "one: two" y value "three four", en lugar de "one" >>> >> y "two: three four" respectivamente. >>> >> >>> >> ?Como arreglo ese pattern para que el primer "lookahead" pare en el >>> primer ":"? >>> >> [Creo que se nota que tengo poca experiencia con regex] >>> >> >>> >> Muchas gracias. >>> >> Un saludo, >>> >> Jose >>> >> ___ >>> >> Python-es mailing list >>> >> Python-es@python.org >>> >> https://mail.python.org/mailman/listinfo/python-es >>> > >>> > ___ >>> > Python-es mailing list >>> > Python-es@python.org >>> > https://mail.python.org/mailman/listinfo/python-es >>> ___ >>> Python-es mailing list >>> Python-es@python.org >>> https://mail.python.org/mailman/listinfo/python-es >>> >> ___ >> Python-es mailing list >> Python-es@python.org >> https://mail.python.org/mailman/listinfo/python-es >> > ___ > Python-es mailing list > Python-es@python.org > https://mail.python.org/mailman/listinfo/python-es > ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es
Re: [Python-es] problema con "regular expression"
Uuups, te he pegado una expresión que está mal. La correcta es esta: pattern = re.compile("^(?P(.*)):? (?P(.*))$") Perdona las molestias. Jose Caballero igorleak hau idatzi zuen (2020 abu. 17, al. 16:37): > no parece: > > >>> p = re.compile("^(?P(.*)):? (?P([^:]*))$") > >>> > >>> l = "type: word: foo bar" > >>> > >>> m = p.match(l) > >>> print m.groupdict() > {'type': 'type: word: foo', 'value': 'bar'} > >>> > > Pero voy a echar un vistazo a "greedy". > Muchas gracias. > > Jose > > El lun., 17 ago. 2020 a las 15:25, Ander Garmendia > () escribió: > > > > Hola, > > > > Las expresiones tipo(. *) son "greedy", esto es se expanden "a todo lo > que pillen". Si quieres limitar el match al primer grupo, añade un ? al > carácter de corte: > > > > pattern = re.compile("^(?P(.*)):? (?P([^:]*))$") > > > > Si buscas "greedy" en el apartado de la librería "re" en la > documentacion oficial, lo explican mucho mejor. > > > > Un saludo. > > > > Jose Caballero igorleak hau idatzi zuen > (2020 abu. 17, al. 15:45): > >> > >> Hola, > >> > >> tengo una serie de lineas, todas con el mismo formato: > >> > >> : > >> > >> donde es una sola palabra, y es una frase. > >> Intentaba "parsearlas" con algo como esto: > >> > >> pattern = re.compile("^(?P(.*)): (?P(.*))$") > >> parse = pattern.match(line) > >> groups = parse.groupdict() > >> print( groups["type"] ) > >> print( groups["value"] ) > >> > >> Funciona bien, salvo que incluya el signo de los dos puntos. > >> Por ejemplo, para > >> > >> one: two: three four > >> > >> Me devuelve type = "one: two" y value "three four", en lugar de "one" > >> y "two: three four" respectivamente. > >> > >> ?Como arreglo ese pattern para que el primer "lookahead" pare en el > primer ":"? > >> [Creo que se nota que tengo poca experiencia con regex] > >> > >> Muchas gracias. > >> Un saludo, > >> Jose > >> ___ > >> Python-es mailing list > >> Python-es@python.org > >> https://mail.python.org/mailman/listinfo/python-es > > > > ___ > > Python-es mailing list > > Python-es@python.org > > https://mail.python.org/mailman/listinfo/python-es > ___ > Python-es mailing list > Python-es@python.org > https://mail.python.org/mailman/listinfo/python-es > ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es
Re: [Python-es] problema con "regular expression"
Hola, Las expresiones tipo(. *) son "greedy", esto es se expanden "a todo lo que pillen". Si quieres limitar el match al primer grupo, añade un ? al carácter de corte: pattern = re.compile("^(?P(.*)):? (?P([^:]*))$") Si buscas "greedy" en el apartado de la librería "re" en la documentacion oficial, lo explican mucho mejor. Un saludo. Jose Caballero igorleak hau idatzi zuen (2020 abu. 17, al. 15:45): > Hola, > > tengo una serie de lineas, todas con el mismo formato: > > : > > donde es una sola palabra, y es una frase. > Intentaba "parsearlas" con algo como esto: > > pattern = re.compile("^(?P(.*)): (?P(.*))$") > parse = pattern.match(line) > groups = parse.groupdict() > print( groups["type"] ) > print( groups["value"] ) > > Funciona bien, salvo que incluya el signo de los dos puntos. > Por ejemplo, para > > one: two: three four > > Me devuelve type = "one: two" y value "three four", en lugar de "one" > y "two: three four" respectivamente. > > ?Como arreglo ese pattern para que el primer "lookahead" pare en el primer > ":"? > [Creo que se nota que tengo poca experiencia con regex] > > Muchas gracias. > Un saludo, > Jose > ___ > Python-es mailing list > Python-es@python.org > https://mail.python.org/mailman/listinfo/python-es > ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es
Re: [Python-es] Controladores couchd para python
Hola, yo utilizo couchdb-python para un proyecto personal y funciona bien para las operaciones básicas, que son las que yo utilizo: CRUD sobre documentos, consultas sobre views y replicaciones. Acabo de ver que el mantenedor de la librería ya no la soporta, por lo que puede que no te encaje. Siempre puedes utilizar la API REST, y dejarte de utilizar librerías de terceros. Un saludo. Oswall Verny Arguedas C. igorleak hau idatzi zuen (2019 urr. 24, og. 02:35): > Saludos listeros de python > Estoy revizando los controladores para utilizar CouchDB de Apache para > python. > Quiero utilizar una base de datos documental o de objetos para un proyecto. > Debe trabajar también en raspberrypi. > He visto varias librerias para trabajar en python con CouchDB, sin embargo > observo que la última revisión de casi todas está con 1, 2 o más años sin > tener nuevas versiones. > Alguno ha trabajado con estas librerias?. Cual me recomiendan? > Gracias de antemano > Oswall > > ___ > Python-es mailing list > Python-es@python.org > https://mail.python.org/mailman/listinfo/python-es > ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es
Re: [Python-es] Desplegar desarrollos en distintos servidores
Échale un vistazo a Ansible. El vie., 22 mar. 2019 11:12, Pixu Kideak escribió: > Buenos días, > > Estoy aprendiendo Python, he realizado algún script que utiliza algunas > librerias de terceros que los he puesto en marcha con PIP y tengo > funcionando el programa en un servidor. > Me gustaría saber cual es la mejor manera para poder hacer funcionar el > desarrollo en otros servidores con distintas arquitecturas (x32, x64) y > distintos sistemas operativos. > > En un principio he pensado que podría instalar Python y las librerias en > los distintos servidores y después copiar los scripts; pero quiero pensar > que existe alguna manera de automatizar este proceso o realizarlo de manera > más elegante. > > Un saludo y muchas gracias por vuestra ayuda ;-) > > > ___ > Python-es mailing list > Python-es@python.org > https://mail.python.org/mailman/listinfo/python-es > ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es
Re: [Python-es] Distintos Encodings en Python
Hola, tiene pinta de que al scrapear la página no estás ulizando el codec adecuado (creo que pusiste cp1251) y por lo tanto el programa no es capaz de interpretar el texto. Primero, cerciorarte del encoding que están ulizando esas páginas web y utiliza ese encoding en BeautifulSoup para obtener el contenido ( no conozco la librería, por lo que no te puedo decir mas, pero seguro que hay alguna manera de definir el encoding). Una vez que tienes el contenido bien descodificado, puedes trabajar con el tranquilamente, ya que Python3 trabaja con bytes. Para terminar si quieres guardar el contenido tendrás que volver a codificarlo, preferiblemente en UTF8, y como te han comentado en los ejemplos que te han enviado anteriormente. Un saludo. El jue., 1 nov. 2018 11:59, Pixu Kideak escribió: > Hola, > > En la prueba que estoy realizando, utilizo BeautifulSoup [ > https://www.crummy.com/software/BeautifulSoup/bs4/doc/] con Python 3.7. > > Mi objetivo es mediante BeautifulSoup tener todo el código de la página y > por ejemplo almacenar el título de ésta en un fichero CSV. (En realidad se > tratan de más datos de la web que lo realiza mediante un búcle recorriendo > las distintas webs existentes; pero creo que es suficiente si consigo > almacenar el título de la web que tiene letras del alfabeto cirílico en el > fichero CSV). > > Primeramente quiero verlo todo en consola, así soy capaz de obtener el > título de la web y pintarlo en la consola; pero a la hora de mostrarlo, no > me muestra los caracteres cirílicos sino "" es por eso que enfocaba el > problema cómo si se tratara de un problema de encoding. > > Un saludo, > > On Thu, 1 Nov 2018 at 08:11, Angel Lis wrote: > >> Hola, >> en Python3 todo texto es unicode por defecto y el encoding del source es >> siempre unicode. >> En este pagina te lo explica: >> >> https://docs.python.org/3.0/whatsnew/3.0.html#text-vs-data-instead-of-unicode-vs-8-bit >> >> Un saludo. >> >> El mié., 31 oct. 2018 a las 14:24, Sergio Fernández () >> escribió: >> >>> Primero, definiendo en la cabecera de tus ficheros >>> https://docs.python.org/2.3/whatsnew/section-encodings.html >>> >>> #!/usr/bin/env python >>> # -*- coding: UTF-8 -*- >>> >>> Segundo, defiendo explicitamente el encoding cuando abres ficheros para >>> lectura/escritura: >>> >>> open('some.csv', encoding='utf-8') >>> >>> >>> >>> >>> >>> On Wed, Oct 31, 2018 at 6:16 AM Pixu Kideak >>> wrote: >>> Gracias por el consejo Sergio. ¿Cómo podría forzar a que el script / app fuera obligado a utilizar Unicode? Saludos ;-) On Wed, 31 Oct 2018 at 13:44, Sergio Fernández wrote: > Utiliza siempre un encoding independiente de la plataforma que soporte > el juego de caracteres que necesitas. Unicode es tu amigo ;-) > > On Wed, Oct 31, 2018 at 5:36 AM Pixu Kideak > wrote: > >> Hola, >> >> Estoy trabajando en un entorno Windows con Python 3.7 y según veo en >> el encoding utilizo cp1252 - windows -1252 Western Europe. >> >> Quiero obtener información de una web con caracteres rusos y guardar >> la información en un fichero CSV. >> >> Según he visto el encoding necesario es cp1251 - windows - 1251 - >> Bulgarian, Byelorussian, Macedonian, Russian, Serbian. >> >> Pero no sé cómo puedo usarlo desde Python o qué debo hacer para poder >> grabar la información correctamente en el fichero CSV. >> >> ¿Alguien me podría mostrar algo de luz? >> >> Un saludo ;-) >> >> >> ___ >> Python-es mailing list >> Python-es@python.org >> https://mail.python.org/mailman/listinfo/python-es >> > > > -- > Sergio Fernández > http://www.wikier.org > ___ > Python-es mailing list > Python-es@python.org > https://mail.python.org/mailman/listinfo/python-es > ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es >>> >>> >>> -- >>> Sergio Fernández >>> http://www.wikier.org >>> ___ >>> Python-es mailing list >>> Python-es@python.org >>> https://mail.python.org/mailman/listinfo/python-es >>> >> >> >> -- >> -- >> Àngel Lis. >> ___ >> Python-es mailing list >> Python-es@python.org >> https://mail.python.org/mailman/listinfo/python-es >> > ___ > Python-es mailing list > Python-es@python.org > https://mail.python.org/mailman/listinfo/python-es > ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es
[Python-es] PySS el 12 de Octubre en Donostia-San Sebastian
Buenas, Ya que hay actividad en la lista y ningún organizador ha posteado por aquí, les dejo el link de PySS: http://pyss18.pyss.org En esta edición cumplen 5 años y cambian de ubicación. ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es
Re: [Python-es] Formularios y Platillas en Flask
Lo mas probable es que estés utilizando python3 ya que `iteritems()` se eliminó en esa versión. Prueba con `items()` y seguramente te funcionará. El día 6 de diciembre de 2017, 21:12, Horacioescribió: > Estoy siguiendo uno de los miles de ejemplos en internet para crear un > formulario que tome datos y que presente resultados sin el uso el > WTF_Flask!. Donde los resultados están en un diccionario. Ahora bien > tengo este código python (soy muy principiante en Flask!! así que > perdón por las barbaridades) > > from flask import Flask, render_template > app = Flask(__name__) > > @app.route('/result') > def result(): >dict = {'phy':50,'che':60,'maths':70} >return render_template('table.html', result = dict) > > if __name__ == '__main__': >app.run(debug = True, port=8000) > > que va a presentar los valores del dicionario por medio de la platilla > table.html, la cual es: > > > > > > > {% for key, value in result.iteritems() %} > > > {{ key }} > {{ value }} > > > {% endfor %} > > > > > > cuando por medio del navegador hago http://localhost:8000/result ,,, > me da este error,,, > > File > "/home/hcaste/virtual/flask/flask_experimentos/Plantillas/templates/table.html", > line 6, in top-level template code > {% for key, value in result.iteritems() %} > jinja2.exceptions.UndefinedError: 'dict object' has no attribute 'iteritems' > > Alguien me puede dar una mano en como corregir el código para salvar este > error? > > Saludos. > ___ > Python-es mailing list > Python-es@python.org > https://mail.python.org/mailman/listinfo/python-es ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es
Re: [Python-es] ¿cómo anunciar un proyecto para que la comunidad participe en su desarrollo?
Buenas, no creo que haya ningún protocolo para liberar un proyecto open source. En tu caso, yo lo primero que haría sería colgar los proyectos en Github, como ya te han dicho antes. Después tocaría dar un poco de publicidad a esos proyectos, bien sea vía Twitter u otra red social, escribiendo algunos post en blogs describiendo el proyecto y sus objetivos y finalmente pedir ayuda para mantenerlos. Si participas en alguna comunidad de desarrolladores, dala a conocer para saber si hay alguien interesado en colaborar en el proyecto o en su defecto conocen a un tercero que quizás esté interesado. Resumiendo describe bien el objetivo y después dale 'publicidad'. Mucho ánimo y buena suerte! El sáb., 24 jun. 2017 10:02, Pepeescribió: > Hola Jose, > > Yo creo que lo más sencillo y lo que actualmente se suele hacer para > liberar un proyecto es ponerlo en Github. > > Saludos. > > > El 24/6/2017 4:37 a. m., "Jose Caballero" > escribió: > > Hola, > > > imagino que casi todos los miembros de esta lista han leído "the cathedral > and the bazaar" de Eric Raymond. > > Tengo dos o tres proyectos en mente que me gustaría desarrollar, de tamaño > relativamente pequeño. > Están inspirados por mi trabajo, pero no relacionafos directamente, motivo > por el que no puedo dedicarles parte de mi tiempo laboral. > Tendría que ser en mi tiempo libre. Pero después del trabajo lo último que > me apetece es seguir programando. > > Así que pienso que tal vez la única forma de ver esos proyectitos salir > adelante sería "liberarlos" y dejar que la comunidad se encargue de ellos, > si así lo considerase oportuno (quizás no sean tan interesantes como a mí > me lo pueden parecer). > > En cualquier caso, ¿se suele hacer de alguna forma más o menos canónica? > ¿Existe algún tipo de protocolo para anunciar un proyecto Open Source en > python y pedir ayuda a la comunidad? ¿Alguna regla no escrita, o escrita, > sobre esto? > > > Muchas gracias por adelantado. > Un saludo, > Jose > > > > ___ > Python-es mailing list > Python-es@python.org > https://mail.python.org/mailman/listinfo/python-es > > > ___ > Python-es mailing list > Python-es@python.org > https://mail.python.org/mailman/listinfo/python-es > ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es
Re: [Python-es] Problema en string
¿Que librería / driver estás utilizando para conectarte a la base de datos? Mira la documentación para ver si la librería te ofrece un método con binding de parámetros y olvídate tu de formatear el string a ejecutar. El 13/08/2014 23:06, Jean Carlos Rodrìguez jeancarlosr...@yahoo.com.dmarc.invalid escribió: Obtengo el famoso error 1064, error de sintaxis El Miércoles, 13 de agosto, 2014 3:52 P.M., Daπid davidmen...@gmail.com escribió: 2014-08-13 19:08 GMT+02:00 Jean Carlos Rodrìguez jeancarlosr...@yahoo.com.dmarc.invalid: query_exec(INSERT INTO table (id, desc) VALUES ({0},{1}) .format(1,desc)) pero cuando lee el caracter de pulgadas lo cierra y me da error, ya he tratado haciendo para combinaciones y nada, si alguie ha tenido un error asi, o hay una manera de resolverlo mas facil, y no rebentarme la cabeza se lo agradeceria. Python puede parsear esa expresión sin problemas. Las triples comillas hacen que cuando sólo hay una, sea ignorada. El problema está en la base de datos. Mi primera idea sería averiguar si esos caracteres están soportados, y si lo están, cómo se escapan. ¿Cuál es el mensaje de error? Ayuda mucho, siempre conviene ponerlo. /David. ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
[Python-es] ¿ Injección de código con decoradores o herencia ?
Buenas, estoy 'jugando' con decoradores y haciendo diferentes pruebas y tengo una duda que quizá alguien me pueda aclarar. Digamos que tenemos una clase ( llamemosla B ) a la que queremos añadir una funcionalidad (llamemosla F). El método clásico sería heredar desde la clase base ( B ) y crear una nueva clase ( llamemosla C ) que implementase nuestra funcionalidad ( F ). Hasta aquí todo normal y corriente. Ahora llega python y nos ofrece los decoradores, por lo tanto, podemos crear una clase decoradora ( llamemosla D ) que implemente la funcionalidad ( F ) y que decorando una clase ( volvamos a la clase B ), añade la funcionalidad F en la clase B sin necesidad de herencias de ningún tipo. Visto así, todo parece muy cómodo, se escribe menos código, hay menos clases implicadas, etc. Y como todo parece muy bonito, aquí surge mi duda: ¿Está esta practica extendida al escribir código en python ( es pythonico y aceptable ) ? ¿ o es mas una prueba conceptual ? Gracias de antemano y un saludo. Ander. ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Moderación en la lista
100% de acuerdo! Esperemos q este toque de atención sirva de algo. Un saludo. On 2013 ira 28 13:50, Juan Luis Cano juanlu...@gmail.com wrote: Hola a todos: (Resumen: Email largo, con algunas sugerencias para mejorar la calidad de la lista) Me gustaría hablar del tema de la moderación en esta lista. Esta mañana he leído dos mensajes seguidos con asuntos del tipo Ayuda o Ayuda con esto y con contenido lleno de súplicas y frases de desesperación. Me voy a ahorrar los eufemismos: esta situación no es nada seria. Lo he hablado con muchas personas y hay gente muy buena que no está suscrita a la lista por puro aburrimiento y hartazgo de leer preguntas estúpidas, mal formuladas o que demuestran que la persona que pregunta no ha hecho los deberes. Las pautas y consejos para hacer preguntas de manera inteligente se conocen ya desde hace más de una década y están traducidos al español: http://www.sindominio.net/ayuda/preguntas-inteligentes.html Podríamos ponernos a hablar sobre qué temas discutir aquí y qué temas redirigir a otros sitios (Python Majibu, entredesarrolladores, listas locales), pero eso daría para mucho, y por tanto voy a hacer una serie de sugerencias concretas que podemos comentar entre todos y empezar a aplicar enseguida: 1. No aceptar títulos vacíos o ambiguos. Ayuda con este error *no vale para nada* como asunto de un email. Cuando alguien envíe un mensaje de esas características, se cambia el asunto y se le dice que intente hacerlo mejor la próxima vez. Lo de ser más o menos educado ya va en gustos, yo preferiría que se le dijese con buena educación y seguidamente se contestase a su pregunta. Se le puede enlazar esto: http://www.sindominio.net/ayuda/preguntas-inteligentes.html#AEN103 2. No aceptar pedazos de código gigantes. Cuando alguien te pega un programa de 100 líneas (o más) para que le digas dónde está el error, el problema es que esa persona no ha trabajado para intentar aislar el fallo y entender más o menos dónde se encuentra. Ese tema también evitarse: otra vez, se le dice a la persona que intente aislar el problema, sobre todo para que sea más fácil para los demás ayudarle. De forma educada a poder ser. Pero por otro lado, si alguien por lo que sea sí que tiene que pegar mucho código, que por favor no lo haga en un mensaje porque es incomodísimo. Cuando alguien haga eso, se le dice educadamente que use gist.github.com, o el servicio que a cada cual le parezca bien. 3. Pedir que se especifique el trabajo previo Es una pérdida de tiempo muy irritante que alguien mande una pregunta y haya que sacarle con sacacorchos cuál es su sistema, qué versión de Python usa, qué ha intentado antes... no somos robots, creo que no hace falta dar una plantilla, pero si alguien no da este tipo de detalles se le podría decir educadamente que para la próxima vez los escriba a la primera. Se le puede enlazar esto: http://www.sindominio.net/ayuda/preguntas-inteligentes.html#AEN117 - Describe los síntomas de tu problema o error con cuidado y claramente. - Describe el entorno en el que ocurre (máquina, S.O., aplicación, loquesea). - Describe la investigación que llevaste a cabo para acotar una posible respuesta al problema antes de hacer la pregunta. - Describe los pasos de diagnóstico que llevaste a cabo e intenta solucionar el problema tú mismo antes de formular la cuestión. - Describe cualquier cambio reciente en tu ordenador o combinación de software que pueda resultar relevante. 4. Ser un poco estrictos Creo que todo el mundo tiene derecho a aprender y usar Python. Creo que todo el mundo tiene derecho a que le ayuden a aprender a usar Python. Pero no creo que todos los flojos del planeta tengan derecho a aprender Python gracias a que gente en su tiempo libre les soluciona preguntas mal formuladas en una lista de correo. Si alguien pone ayuda por favor se le podría decir educadamente que todos los que escriben a la lista requieren ayuda y que por poner ese tipo de cosas no va a obtener prioridad. Si alguien necesita ayuda urgente siempre puede *pagar* $$$ a un profesional. Hay gente que necesita un RTFM por respuesta. Esto es una opinión puramente personal pero sólidamente fundamentada. --- Y con esto termino. Esta lista no tiene un tráfico, digamos, inmanejable, pero si mejoramos las condiciones tal vez consigamos atraer a más gente *y dar una impresión de seriedad*. Estoy muy cansado de ver problemas tan básicos en Python-es, las comunidades de Google Plus, los foros y en todas partes. Creo que los podemos solucionar. Un saludo Juan Luis Cano ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ ___ Python-es mailing list Python-es@python.org
Re: [Python-es] Insertar datos mysql
Échale un vistazo a la documentación de MySQLdb: http://mysql-python.sourceforge.net/MySQLdb.html Básicamente deberias cambiar la sentencia SQL y pasar los parametros con una tupla en el método execute. Algo así: sql = INSERT INTO clientes(cedula) VALUES (%s) cursor.execute(sql, (dtcedula,)) El día 7 de agosto de 2013 12:39, G V nada...@gmail.com escribió: Creo que la solución que buscas está en https://github.com/farcepest/MySQLdb1/blob/master/doc/user_guide.rst#some-examples pero a grandes rasgos estas intentando hacer la sustitucion a mano dentro del propio string 2013/8/6 Alfredo Riguetti alfredo.rigue...@ptravel.com.uy Hola a Todos Necesito que alguien me ayude con esto. tengo que ingresar unos datos del cliente a una base y si les pongo los datos a mano en el insert lo hace perfecto pero si lo quiero hacer con variabnles no lo hace alguien me puede ayudar copio el codigo, seguro algo esta mal escrito o algo asi. ahora deje solo los datos para la cedula para probar pero nada ... def OnClickAceptar(self,event): dtcedula = self.TextoCedulaCli.GetValue() nombres = self.TextoNombresCli.GetValue() apellidos = self.TextoApellidosCli.GetValue() direccion = self.TextoDireccionCli.GetValue() email = self.TextoCorreo.GetValue() telefonocelular = self.TextoTelefonoCeluar.GetValue() telefonoparticular = self.TextoTelefonoParticular.GetValue() # Open database connection db = MySQLdb.connect(localhost,root,miyaguiAdminaya2010,cambio) # prepare a cursor object using cursor() method cursor = db.cursor() # Prepare SQL query to INSERT a record into the database. print dtcedula sql = INSERT INTO clientes(cedula) VALUES ('%s') % dtcedula try: # Execute the SQL command cursor.execute(sql) # Commit your changes in the database db.commit() except: #Rollback in case there is any error db.rollback() # disconnect from server db.close() ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Quick Python Book de la editorial Manning al 50% por un breve espacio de tiempo
Hola, no se si te has dado cuenta, pero la edición es del año 99. Un dato a tener muy en cuenta. Por lo demás parece q tiene buena crítica. Un saludo. 2013/4/12 G V nada...@gmail.com en general tiene buena critica, o eso parece: http://www.amazon.com/Quick-Python-Book-Second-Edition/product-reviews/193518220X/ref=cm_cr_dp_see_all_summary?ie=UTF8showViewpoints=1 On Fri, Apr 12, 2013 at 10:03 AM, Kiko kikocorre...@gmail.com wrote: *The Quick Python Book is Manning’s Deal of the Day April 12!* * * *That’s right, starting at midnight EDT, April 12, my book, The Quick Python Book, 2nd ed will be Manning’s Deal of the Day. What does that mean? It means that if you click on the link at the right and buy the book or ebook using the code dotd0412au, it will be half price. This deal will only last for a day or two, but it’s a good chance to pick it up a really good price! * Por si a alguien le pudiera interesar y no lo ha visto por ahí. Se puede comprar este libro http://www.manning.com/harms/ al 50% parece que solo hoy. En la compra habría que introducir el código *dotd0412au.* Si alguien conoce el libro y puede dar información sobre el mismo (es para novatos, es muy bueno, es muy malo,...) quizá sería útil para posibles compradores. Saludos. PD: enlace original donde lo he visto (blog del autor del libro), http://learnpython.wordpress.com/2013/04/11/quick-python-book-is-mannings-deal-of-the-day-april-12/ ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Oferta de trabajo Programador Python y PHP
joe, esto parece barrapunto ;) Buenas noches... El 26 de febrero de 2013 13:38, Narcis Garcia - GiLUG informat...@actiu.net escribió: Creo que alguna palabra usada por J. Javier Maestro quizás fuera inadecuada, pero las críticas tambien deberían ser bienvenidas. Francesc, esta no es una lista «de libre mercado» sinó de Python. Sinó, «en un sistema de libre expresión como el que estamos» tambien valdría todo. Python tiene más relación con el software libre (de libertad) que con el mercado libre (de despido). Aunque he visto ofertas con más problemas que la de Martin Maqueira (como mencionar sólo lo que se pide y no lo que se ofrece) tambien me fastidia ver por listas de correo cómo se aprieta las tuercas a la gente que busca un trabajo, o un trabajo más digno. La titulación que se pide ya merece el sueldo que se ofrece. La experiencia mencionada debería hacer pasar a más de 30.000 euros anuales, pero de largo. Al 26/02/13 13:01, En/na J. Javier Maestro ha escrit: 2013/2/26 Francesc Alted fal...@gmail.com mailto:fal...@gmail.com On 2/26/13 3:44 AM, J. Javier Maestro wrote: 2013/2/25 Martin Maqueira martinmaque...@gmail.com mailto:martinmaque...@gmail.com mailto:martinmaqueira@gmail.__com mailto:martinmaque...@gmail.com Buenos Dias a todos, Queria extender una oferta de trabajo que detallo abajo. El rango salarial es de 24.000 a 30.000 brutos anuales. Si os interesa podeis mandarme curriculum al email. Gracias y saludos Martin Maqueira Programador PYTHON y PHP / ERP (barcelona) Buscamos un *Ingeniero en Informática* / *Analista de Sistemas titulado *con experiencia en desarrollo WEB y ERP. Necesitamos alguien con iniciativa y capacidad de adaptación a entornos cambiantes y dinámicos. Sus tareas serán desarrollar un ERP desde cero y algunas funcionalidades web integradas con el CMS. Luego se dedicará a labores de mantenimiento , optimización , desarrollos de nuevas funcionalidad e integración con distintos sistemas. Para esto*requerimos experiencia en Programación en Python y PHP con frameworks MVC* (Zend o u otro) , Wordpress, MySql , Python . Ofrecemos un buen ambiente de trabajo. Experiencia mínima: (excluyente) (Por favor , ABSTENERSE si no se cumplen rigurosamente estos requisitos ya que desestimaremos automaticamente las candidaturas). Habría que empezar a pedir Salarios mínimos y POR FAVOR ABSTENERSE DE MANDAR OFERTAS ABSURDAS. Sobre todo, si no se dice para qué empresa es (porque así, al menos, apunto la empresa a mi lista de favoritas XXD) 24K-30K por una persona con titulación, 8 años de experiencia combinada, unos 5 reales (pongamos, 2 de Python, 2 de PHP y 1 de HTML/CSS/JS, etc), y encima full-stack (Frontend + Backend)? Y, por si además la persona pudiera, tener experiencia en Wordpress, administración de sistemas LAMP... para que haga horas extra administrando la infraestructura? Pero... estamos de coña? o.0 Y, por curiosidad, un manager normal de la empresa, con, pongamos, unos 6-7 años de experiencia... cuánto cobra? Mmmm... veamos, así a ojo, yo digo que unos 40-45K. No sé, me gustaría equivocarme. jj: Esta es una lista de Python, y las ofertas de trabajo relacionadas con este lenguaje son bienvenidas. Ademas, en un sistema de libre mercado como el que estamos, cada uno es libre de enviar las ofertas que crea oportunas, asi como cada cual es libre de aceptarlas o no. Y si crees que la oferta es una OFERTA ABSURDA, agradeceriamos que al menos expreses tus opiniones de manera mas educada. Las mayúsculas estaban usadas igual que su ABSTENERSE. Respecto a la educación, siento que te haya parecido maleducada mi contestación. A mi me pareció una oferta de mal gusto, pedir semejante burrada de años de experiencia. Culpa mía por pensar que serían de verdad y no computado todo en plan rápido y de en dos añitos te metes HTML, CSS, JS, PHP y Python. Pero vamos, que tienes razón, que para gustos, colores. Con no leer las ofertas, basta. Pero luego nos sorprendemos de que las cosas vayan como van. En fin, que siento si he ofendido a alguien, pero que el nivel de ofertas que veo en estas listas (y en otras) es nivel te insulto educadamente. Pero repito, que seguramente, y visto lo visto, esa será mi percepción de mala persona con pensamiento retorcido. Saludos, -- jj
Re: [Python-es] Pythoniano y c niano
Buenas, soy nuevo en el universo python y llevo un tiempo en esta lista y esta pregunta me ha llamado la atención. ¿ Hay un modo pythonico de hacer las cosas ? Viendo las soluciones solo veo algoritmos adaptados a las estructuras de control de python. ¿ Es cosa mía o se me esta pasando algo ? Saludos y feliz navidad! El 26/12/2012 14:21, Daπid davidmen...@gmail.com escribió: Por otro lado, el algoritmo se puede mejorar un poco. Hay métodos muy optimizados para calcular números primos, pero sin irnos a matemáticas superiores, podemos mejorar tu proceso. Un número es primo si y sólo si no es divisible exactamente por todos los números menores que él (sin contar el 1), y por tanto si no es divisible exactamente por todos los primos menores que él (sin contar el 1). Por tanto, basta con que comprobemos sólo los números primos (que ya has calculado). Además, sabemos que los números pares no son primos, por lo que también nos los podemos saltar. Calculando todos los primos desde 2 hasta n tenemos (spoiler): http://pastebin.com/fMRH5xKK Este programa tarda 0.3 s en calcular los primos hasta 15 000, y 13 s en encontrar los 13 843 primos menores que 150 000. Tu versión tarda unos 3 segundos para el primer caso. El proceso se puede encapsular más. Podemos echar mano de la programación funcional y hacer que isprime devuelva por defecto True, salvo cuando vea que el número es compuesto, en cuyo caso devolverá False. http://pastebin.com/gnFrcpYC Con esto, hemos reducido el tiempo de cálculo a la mitad. He probado a considerar sólo los primos menores que la raíz cuadrada del número, pero en el cálculo de la raíz se tarda más que en lo que se ahorraría en divisiones. Este programa es un poco más rápido que el de MonoBOT. 2012/12/26 kausdiv kaus...@gmail.com: Hola. Estoy aprendiendo Python (me gusta muchisimo). El problema que todo lo que escribo lo hago al estilo ceniano. Es decir tipo C o java, y quiero adentrarme al estilo pythoniano. Por ejemplo este programita que busca los números primos entre 2 números dados. --- def fprimos(n,x): l=[] for i in range(n,x): isprime=1 for k in range(2,i): if i % k ==0 and ik: isprime=0 break if isprime==1: l.append(i) return l def main(): ok=1 while ok==1: print imprime numeros primos desde hasta. print 0 = Salir n1=raw_input(Valor inicial ) n2=raw_input(Valor Final ) n1=int(n1) n2=int(n2) if n1==0 or n2==0: ok=0 else: print fprimos(n1,n2) main() --- ¿ como sería el mismo programa pasado a estilo python ? Gracias amigos. P.D. No tengo ni idea de ingles como para leer la documentación. :-( ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/