[Python-es] Pasar un Script a Servicio Web
Buenos días, Tengo un script en Python3 que puedo ejecutarlo en una máquina GNU/Linux sin problema desde consola; bueno realmente es una concatenación de distintos scripts. Es un programa iterativo que a medida que se va ejecutando, pregunta al operador por el valor de ciertas variables y éste las va metiendo; en función del valor de esas variables el script realiza una cosa u otra. Me gustaría poder hacer funcionar este script en una red interna, que desde cualquier máquina de la red, se pudiera llamar al script *(sin que tenga que instalar en todos los equipos Python, sus dependencias y demás)*. Entiendo que para ello debería de crear un Servicio Web y en la máquina dónde tengo el script tener un Servidor Web; pero no tengo muy claro cómo se podría hacer todo esto. ¿Alguien tiene experiencia en convertir un script a un Servicio Web? Otra posibilidad puede ser dockerizar el script, pero creo que es más correcta la opción del Servicio Web. Un saludo y gracias. ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es
Re: [Python-es] Pasar un Script a Servicio Web
Hola, Si la idea que busco es que los ordenadores clientes puedan comunicarse contra el script que se encuentra en el servidor, por lo que todo apunta a utilizar un framework tipo Flask, FastAPI o django. Dockerizar podría ser una solución, pero creo que al ser una capa más, y no tener experiencia prevía con la herramienta sería más costoso depurarlo. py2exe lo descarto ya que los clientes podrían ser equipos diferentes a Windows. En futuro si quisiera que el cliente fuera un móvil o una tablet, sería mejor el "Servicio Web". Pese a que tenga una curva de aprendizaje, creo que el tiró debe ir hacía el framework web. Saludos, On Thu, 9 Nov 2023 at 17:16, Alberto Luaces wrote: > Hola, > > si el servicio va por red, está garantizado que no se precisará nada de > python en los ordenadores clientes. > > Creo que lo que no has definido es cómo esperas que se comuniquen los > ordenadores clientes. Si por «Servicio web» te refieres a una página > web con formularios a la que se accede por un navegador, entonces > necesitarás preferiblemente un framework como django o flask. Hay mucha > gente aquí que los emplea, pero tienen su curva de aprendizaje. > > Al final vas a tardar menos con docker, como dices, o con algo como > https://py2exe.org/ > > > Pixu Kideak writes: > > > Buenos días, > > > > Tengo un script en Python3 que puedo ejecutarlo en una máquina GNU/Linux > sin problema desde consola; > > bueno realmente es una concatenación de distintos scripts. > > > > Es un programa iterativo que a medida que se va ejecutando, pregunta al > operador por el valor de > > ciertas variables y éste las va metiendo; en función del valor de esas > variables el script realiza > > una cosa u otra. > > > > Me gustaría poder hacer funcionar este script en una red interna, que > desde cualquier máquina de la > > red, se pudiera llamar al script (sin que tenga que instalar en todos > los equipos Python, sus > > dependencias y demás). > > > > Entiendo que para ello debería de crear un Servicio Web y en la máquina > dónde tengo el script tener > > un Servidor Web; pero no tengo muy claro cómo se podría hacer todo esto. > > > > ¿Alguien tiene experiencia en convertir un script a un Servicio Web? > > > > Otra posibilidad puede ser dockerizar el script, pero creo que es más > correcta la opción del Servicio > > Web. > > > > Un saludo y gracias. > ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es
Re: [Python-es] Pasar un Script a Servicio Web
Buenos días, Vengo de vuelta con el mensaje anterior, por temas de desarrollo en la máquina (servidor B) dónde está instalado Python tienen corriendo también un servidor Lighttpd que actualmente no tiene habilitado el módulo FastCGI. Entiendo que para poder ejecutar scripts en Python sería necesario que lo instalara y lo configurara para que permitiera la ejecución de scripts. No sé, si con este escenario podría montar algo similar a http://ip_servidor/script/ y este lanzara el script en cuestión. Más dudas que tengo son: 1) Cómo podría pasar parámetros de entrada al script por URL o llamando a una dirección web??? 2) Si la llamada a una URL, lanza un script determinado que puede tardar por ejemplo 2-3 minutos, debo tener alguna cosa en cuenta o modificar algo en la configuración para que no salga un timeout o algo similar??? 3) Actualmente los scripts del servidor B los tengo en entornos virtuales, cada entorno tiene sus librerías y scripts; ya que realizan misiones diferentes. ¿Se puede llamar a éstos vía web o debería realizar nuevos scripts? Un saludo y gracias nuevamente por su atención, On Mon, 20 Nov 2023 at 21:17, Chema Cortes wrote: > Buenas, > > Tal como sugiere *Lasizoillo*, una buena alternativa es usar ssh, pero > sin dejar de usar python. No me queda claro dónde se ejecuta el script > python, si en los clientes o en el servidor. > > Si la idea es que los clientes puedan ejecutar tareas en servidores, una > buena combinación es usar *Invoke* y *Fabric*. Invoke para crear tareas > automatizadas basadas en línea de comandos y Fabric para distribuir estas > tareas en una red de servidores a través de SSH. Es una combinación muy > simple, más fácil de lo que parece. > >- Invoke: https://www.pyinvoke.org >- Fabric: https://www.fabfile.org/ > > Siempre depende de lo que hagas, pero la ventaja de usar Invoke/Fabric es > que te facilita muchísimo el mantenimiento de estas tareas. > > Sobre crear un interface gráfico para lanzar tareas de sistema, > últimamente veo más recomendable las TUIs (*Text User Interface*). Con > una terminal moderna puedes crearte interfaces bastante funcionales, > incluso usables con ratón. > > En python tienes *Textual*: https://textual.textualize.io/, mucho más > sencillo que tener que meterte a programar una web. > > Si más adelante necesitas que funcione como página web basta con ejecutar > el tui con *textual-web* (https://github.com/Textualize/textual-web). > > Saludos. > > > El vie, 10 nov 2023 a las 3:31, lasizoillo () > escribió: > >> Buenas, >> >> Has pensado en usar ssh? >> >> Puedes crear un user que en vez de shell ejecute tu script para no dar >> acceso a la consola a los usuarios. >> >> Con las interacciones que necesitas te va a ser un dolor hacerlas en web >> si no has trabajado con ello antes. Es muy posible (hay alguna alternativa >> para evitarlo) que cada ciclo de ejecutar y preguntar cosas al usuario >> acabe convirtiéndose en una llamada diferente a un endpoint web al que le >> pases alguna forma de mantener estado que no quieras perder entre >> diferentes llamadas (un identificador de sessión en la que se guardan los >> datos en servidor o generar campos hidden desde la respuesta web anterior >> para evitar estado en el server reenviando datos o...). >> >> Si no tuvieras interacciones algo como hug sería una forma sencilla de >> tener un script cli y un servicio http compartiendo código >> https://www.hug.rest/. Teniendo interacciones, algo que es trivial en un >> script CLI no lo es tanto en un servicio web. >> >> Un abrazo, >> >> Javi >> >> >> El jue, 9 nov 2023 a las 12:22, Pixu Kideak () >> escribió: >> >>> Buenos días, >>> >>> Tengo un script en Python3 que puedo ejecutarlo en una máquina GNU/Linux >>> sin problema desde consola; bueno realmente es una concatenación de >>> distintos scripts. >>> >>> Es un programa iterativo que a medida que se va ejecutando, pregunta al >>> operador por el valor de ciertas variables y éste las va metiendo; en >>> función del valor de esas variables el script realiza una cosa u otra. >>> >>> Me gustaría poder hacer funcionar este script en una red interna, que >>> desde cualquier máquina de la red, se pudiera llamar al script *(sin >>> que tenga que instalar en todos los equipos Python, sus dependencias y >>> demás)*. >>> >>> Entiendo que para ello debería de crear un Servicio Web y en la máquina >>> dónde tengo el script tener un Servidor Web; pero no tengo muy claro cómo >>> se podría hacer todo esto. >>> >>> ¿Alguien tiene experiencia en conv
[Python-es] Codificacion de %F3
Buenas tardes, Tengo un problema con una codificación. Estoy tras una API realizada con FastAPI que corre sobre uvicorn. Una llamada a la api sería lo siguiente: @app.get("/actualizarv2" ,summary="Actualiza 1 cliente", description="Actualiza la información para 1 cliente (NombreCliente) en una semana (semana) determinada.") async def run_actualizar(NombreCliente: str, semana: str): try: script_path = "/home/debian/xxx/logs/API/actualizar.sh" #NombreCliente = NombreClienteDe # Validar y escapar la ruta del script script_path_escaped = shlex.quote(script_path) #Parseo de variables #NombreCliente = urllib.parse.unquote_plus(NombreCliente) NombreCliente = urllib.parse.unquote(NombreCliente, encoding='utf-8') semana = urllib.parse.quote(semana, safe='') # Crear el comando con las variables como argumentos command = [script_path_escaped, NombreCliente, semana] # Ejecutar el script de manera asíncrona process = await asyncio.create_subprocess_exec( *command, stdout=subprocess.PIPE, stderr=subprocess.PIPE ) # Esperar a que el script termine y obtener la salida y el error stdout, stderr = await process.communicate() # Decodificar la salida y el error a UTF-8 output = stdout.decode("utf-8") error = stderr.decode("utf-8") return {"output": output, "error": error} except Exception as e: return {"error": str(e)} En esa llamada realizó una llamada a actualizar.sh: #!/bin/bash # Recibir los valores de NombreCliente y semana pasados por línea de comandos export LANG=C.UTF-8 NombreCliente=$1 semana=$2 ## FECHA=`date +"semana %V %Y-%m-%d %T"` echo "$FECHA INICIO : actualizar.sh" >> /home/debian/xxx/logs/API.log echo "$FECHA NOMBRE : $NombreCliente" >> /home/debian/xxx/logs/API.log echo "$FECHA PARAM1 : $1" >> /home/debian/xxx/logs/API.log # cambiar al directorio deseado ... Si el GET fuera similar a esto: "GET /actualizarv2?NombreCliente=Platanos+RojosSL+%28S7%2C+Libres+Paszk%F3w%29&semana=9 En el fichero API.log escribe una entrada similar a: semana 08 2024-02-19 17:19:03 INICIO : actualizar.sh semana 08 2024-02-19 17:19:03 NOMBRE : Platanos Rojos (S7, Libres Paszk�w) semana 08 2024-02-19 17:19:03 PARAM1 : Platanos Rojos (S7, Libres Paszk�w) Lo que yo deseo, es que escriba Platanos Rojos (S7, Libres Paszków). Que pueda interpretar por ejemplo ó en lugar de � He revisado por activa y por pasiva la codificación utilizada, en el servidor el locale es: LANG=es_ES.UTF-8 por lo que entiendo que ese no debe ser el problema. Pero algo ocurre cuando paso el parámetro al script de bash que no lo coge cómo debe o lo interpreta de manera incorrecta. ¿Sabéis cúal puede ser la solución? Un saludo y gracias por vuestra colaboración, ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es
[Python-es] Mostrar datos CSV-SQLite
Buenos días, Últimamente estoy trabajando con Python pero soy bastante nuevo en este lenguaje. Tengo una duda respecto a cómo representar unos datos. Ten un fichero CSV con varios campos, entre ellos un código y una imagen. He visto que en Python existe la posibilidad transformar un fichero a CSV a SQLite y que Python trabaja bastante bien con este tipo de DB. La duda que tengo es la siguiente: "Mi objetivo es visualizar los datos (códigos y imágenes) de manera que pueda realizar una especie de catálogo. Pero no sé si es correcto que siga con Python y mostrarlo cómo HTML, trabajar directamente contra los datos de SQLite con PHP y/o otro lenguaje." ¿Qué pensáis al respecto? Un saludo y gracias por vuestra ayuda. ___ 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] Mostrar datos CSV-SQLite
Buenos días, Muchas gracias por todas las alternativas presentadas. Al final opté por la más sencilla Python puro para tratar los datos del fichero CVS y a medida que iba leyendo los datos pintar a un fichero las cadenas HTML necesarias; después aplique un CSS quedando todo muy bonito y eficaz. Durante la búsqueda de que herramientas utilizar, encontre un plugin para jQuery llamado Dynatable.js [1] por si a alguien le interesan temas de JS. [1] http://www.dynatable.com/ Un saludo, On Fri, Oct 16, 2015 at 4:59 PM, JZA wrote: > > > 2015-10-16 9:50 GMT-05:00 Carlos Zuniga : > >> 2015-10-16 2:35 GMT-05:00 JZA : >> > Si quieres alguna visualizacion mas profesional te recomiendo mejor usar >> > Javascript, ya que hay librerias para representar datos en HTML5 usando >> > Canvas. Python aun podria hacer el scrapping, pero despues deberas >> vaciarlo >> > en un JSON en vez de HTML y dejar que Javascript haga la magia. Una >> libreria >> > algo antigua pero aun asi atractiva es RafaelJS. >> > http://raphaeljs.com/ >> > >> >> Canvas para mostrar una tabla de datos? Overkill. >> > > Dije para visualizacion de datos, obviamente que no me refiero a > visualizacion de la tabla. Aun asi, si tienes una tabla html, existen JS > para interactuar con la tabla de datos y hacer tareas relativamente > sencillas como ordenado y filtrado. > http://www.listjs.com/ > http://www.allmyscripts.com/Table_Sort/ > > > >> De todos modos use o no javascript en el lado del navegador, python es >> suficiente para generar el html y/o hacer el servidor. >> ___ >> Python-es mailing list >> Python-es@python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> > > > > -- > Alexandro Colorado > Apache OpenOffice Contributor > 9060 55AB FFD2 2F02 0E1A 3409 599C 14FC 9450 D3CF > > ___ > 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] Escritura en archivos binarios
Buenos días, Estoy trabajando con ficheros binarios pero tengo una duda. Lo primero que hago en mi programa es buscar un valor en el fichero, a partir de esa posición muevo el puntero X posiciones y me interesaria escribir cierto valor binario y/o HEX en esa posición. He intentado con: ficheroLeer = '/ruta/mi/fichero.bin' archivo = open(ficheroLeer,'r+b') ... archivo.seek(1) #Esta es la posición en la que me interesa modificar el contenido. archivo.write(21) #Digamos que quiero escribir ! - que HEX es 21 - en esa dirección. Pero no consigo escribirlo puesto que parece que write recibe sólo variables de tipo str. ¿Cómo podría escribir HEX21 en el fichero? Un saludo y gracias por vuestra ayuda ;-) ___ 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] Escritura en archivos binarios
" yo intentaría leer el fichero en memoria, cambiaría alli los datos y luego volvería a escribir el fichero. Los discos no pueden escribir "un byte". " Cuando se esta realizando la asignación archivo = open(ficheroLeer, 'r+b') ¿no se estaría trabajando contra el objeto "archivo" qué está en memoria? O por el contrario, ¿te refieres a volcar todo el contenido del fichero en una lista y trabajar contra ésta; una vez finalizado volcar de nuevo el contenido de la lista al fichero? Un saludo y gracias, 2016-01-27 16:00 GMT+01:00 Juan Ignacio : > yo intentaría leer el fichero en memoria, cambiaría alli los datos y luego > volvería a escribir el fichero. Los discos no pueden escribir "un byte". > > 2016-01-27 14:40 GMT+00:00 Pixu Kideak : > >> Buenos días, >> >> Estoy trabajando con ficheros binarios pero tengo una duda. >> >> Lo primero que hago en mi programa es buscar un valor en el fichero, a >> partir de esa posición muevo el puntero X posiciones y me interesaria >> escribir cierto valor binario y/o HEX en esa posición. >> >> He intentado con: >> >> ficheroLeer = '/ruta/mi/fichero.bin' >> archivo = open(ficheroLeer,'r+b') >> ... >> archivo.seek(1) #Esta es la posición en la que me interesa modificar el >> contenido. >> archivo.write(21) #Digamos que quiero escribir ! - que HEX es 21 - en esa >> dirección. >> >> Pero no consigo escribirlo puesto que parece que write recibe sólo >> variables de tipo str. >> >> ¿Cómo podría escribir HEX21 en el fichero? >> >> Un saludo y gracias por vuestra ayuda ;-) >> >> ___ >> Python-es mailing list >> Python-es@python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > > > -- > Juan Ignacio Rodríguez de León > Móvil: 605 890514 > E-Mail: euriba...@gmail.com > http://www.elornitorrincoenma <http://www.elornitorrincoenmascarado.com/> > scarado.com/ <http://www.elornitorrincoenmascarado.com/> > http://descon2.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 mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Escritura en archivos binarios
Estoy con la versión Python 3.5.0 2016-01-27 16:21 GMT+01:00 Chema Cortes : > > > El mié., 27 ene. 2016 16:12, Pixu Kideak escribió: > >> " >> yo intentaría leer el fichero en memoria, cambiaría alli los datos y >> luego volvería a escribir el fichero. Los discos no pueden escribir "un >> byte". >> >> " >> Cuando se esta realizando la asignación archivo = open(ficheroLeer, >> 'r+b') ¿no se estaría trabajando contra el objeto "archivo" qué está en >> memoria? >> O por el contrario, ¿te refieres a volcar todo el contenido del fichero >> en una lista y trabajar contra ésta; una vez finalizado volcar de nuevo el >> contenido de la lista al fichero? >> > > No hace falta bajar tanto de nivel. Lo más seguro es que Python > sobrescriba el fichero completo en disco, pero eso no debe preocuparte. > > Lo que si es importante es saber si usas python3. Los ficheros binarios > usan el tipo bytes y, por lo que dices, no lo estas usando. > > >> Un saludo y gracias, >> >> 2016-01-27 16:00 GMT+01:00 Juan Ignacio : >> >>> yo intentaría leer el fichero en memoria, cambiaría alli los datos y >>> luego volvería a escribir el fichero. Los discos no pueden escribir "un >>> byte". >>> >>> 2016-01-27 14:40 GMT+00:00 Pixu Kideak : >>> >>>> Buenos días, >>>> >>>> Estoy trabajando con ficheros binarios pero tengo una duda. >>>> >>>> Lo primero que hago en mi programa es buscar un valor en el fichero, a >>>> partir de esa posición muevo el puntero X posiciones y me interesaria >>>> escribir cierto valor binario y/o HEX en esa posición. >>>> >>>> He intentado con: >>>> >>>> ficheroLeer = '/ruta/mi/fichero.bin' >>>> archivo = open(ficheroLeer,'r+b') >>>> ... >>>> archivo.seek(1) #Esta es la posición en la que me interesa modificar el >>>> contenido. >>>> archivo.write(21) #Digamos que quiero escribir ! - que HEX es 21 - en >>>> esa dirección. >>>> >>>> Pero no consigo escribirlo puesto que parece que write recibe sólo >>>> variables de tipo str. >>>> >>>> ¿Cómo podría escribir HEX21 en el fichero? >>>> >>>> Un saludo y gracias por vuestra ayuda ;-) >>>> >>>> ___ >>>> Python-es mailing list >>>> Python-es@python.org >>>> https://mail.python.org/mailman/listinfo/python-es >>>> FAQ: http://python-es-faq.wikidot.com/ >>>> >>>> >>> >>> >>> -- >>> Juan Ignacio Rodríguez de León >>> Móvil: 605 890514 >>> E-Mail: euriba...@gmail.com >>> http://www.elornitorrincoenma >>> <http://www.elornitorrincoenmascarado.com/>scarado.com/ >>> <http://www.elornitorrincoenmascarado.com/> >>> http://descon2.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 mailing list >> Python-es@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 > > ___ > 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/
Re: [Python-es] Escritura en archivos binarios
Muchas gracias, Al final lo pude solucionar de las siguiente manera: ... import binascii ... archivo.seek(posicion) valor = binascii.a2b_hex('21') #Almacena el valor HEX en una variable para escribirla archivo.write(valor) ... Un saludo y gracias por vuestra colaboración ;-) 2016-01-27 17:35 GMT+01:00 Chema Cortes : > > > El mié., 27 ene. 2016 a las 17:28, Chema Cortes () > escribió: > >> El mié., 27 ene. 2016 a las 16:29, Pixu Kideak () >> escribió: >> >>> Estoy con la versión Python 3.5.0 >>> >> >> with open(ficheroLeer, 'r+b') as f: >> f.seek(1) >> f.write(bytes([21]) >> >> Según lo que sea, también podrías usar "literarles": >> >> with open(ficheroLeer, 'r+b') as f: >> f.seek(1) >> f.write(b'\x15') >> > > Creo que he tomado mal los valores hexadecimales de la pregunta original. > Para escribir un '!' en un fichero binario se usaría directamente b'!' > > with open(ficheroLeer, 'r+b') as f: > f.seek(1) > f.write(b'!') > > > >> >> >> >> >>> >>> >>> 2016-01-27 16:21 GMT+01:00 Chema Cortes : >>> >>>> >>>> >>>> El mié., 27 ene. 2016 16:12, Pixu Kideak >>>> escribió: >>>> >>>>> " >>>>> yo intentaría leer el fichero en memoria, cambiaría alli los datos y >>>>> luego volvería a escribir el fichero. Los discos no pueden escribir "un >>>>> byte". >>>>> >>>>> " >>>>> Cuando se esta realizando la asignación archivo = open(ficheroLeer, >>>>> 'r+b') ¿no se estaría trabajando contra el objeto "archivo" qué está en >>>>> memoria? >>>>> O por el contrario, ¿te refieres a volcar todo el contenido del >>>>> fichero en una lista y trabajar contra ésta; una vez finalizado volcar de >>>>> nuevo el contenido de la lista al fichero? >>>>> >>>> >>>> No hace falta bajar tanto de nivel. Lo más seguro es que Python >>>> sobrescriba el fichero completo en disco, pero eso no debe preocuparte. >>>> >>>> Lo que si es importante es saber si usas python3. Los ficheros binarios >>>> usan el tipo bytes y, por lo que dices, no lo estas usando. >>>> >>>> >>>>> Un saludo y gracias, >>>>> >>>>> 2016-01-27 16:00 GMT+01:00 Juan Ignacio : >>>>> >>>>>> yo intentaría leer el fichero en memoria, cambiaría alli los datos y >>>>>> luego volvería a escribir el fichero. Los discos no pueden escribir "un >>>>>> byte". >>>>>> >>>>>> 2016-01-27 14:40 GMT+00:00 Pixu Kideak : >>>>>> >>>>>>> Buenos días, >>>>>>> >>>>>>> Estoy trabajando con ficheros binarios pero tengo una duda. >>>>>>> >>>>>>> Lo primero que hago en mi programa es buscar un valor en el fichero, >>>>>>> a partir de esa posición muevo el puntero X posiciones y me interesaria >>>>>>> escribir cierto valor binario y/o HEX en esa posición. >>>>>>> >>>>>>> He intentado con: >>>>>>> >>>>>>> ficheroLeer = '/ruta/mi/fichero.bin' >>>>>>> archivo = open(ficheroLeer,'r+b') >>>>>>> ... >>>>>>> archivo.seek(1) #Esta es la posición en la que me interesa modificar >>>>>>> el contenido. >>>>>>> archivo.write(21) #Digamos que quiero escribir ! - que HEX es 21 - >>>>>>> en esa dirección. >>>>>>> >>>>>>> Pero no consigo escribirlo puesto que parece que write recibe sólo >>>>>>> variables de tipo str. >>>>>>> >>>>>>> ¿Cómo podría escribir HEX21 en el fichero? >>>>>>> >>>>>>> Un saludo y gracias por vuestra ayuda ;-) >>>>>>> >>>>>>> ___ >>>>>>> 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] Escritura en archivos binarios
Buenas tardes, Tras ver cómo se puede modificar el contenido de una posición concreta en un fichero que abro en modo binario tengo una duda con un experimento que deseo realizar. Tengo un fichero que he abierto con un editor HEX, tengo "fichados" unas cadenas -sé su valor en ASCII y HEX gracias al editor - . Lo que quiero hacer es, buscar la cadena en el fichero (así podría conseguir la dirección de inicio de la cadena). A partir de dónde empieza la cadena sumarle una cantidad y poder posicionar el puntero en la posición deseada para cambiar su contenido. Una vez la idea esta clara, la duda que tengo es: ¿El fichero sólo se puede abrir de 1 modo? Suponiendo que sólo se podría abrir en modo binario para poder realizar la modificación a nivel de byte, ¿Cómo se podría realizar la búsqueda de la cadena para obtener la dirección? ¿A la hora de buscar un patrón éste debería estar en HEX no? No sé si lo estoy enfocando correctamente y/o me estoy complicando ¬_¬" Un saludo y gracias, 2016-01-27 18:49 GMT+01:00 Pixu Kideak : > Muchas gracias, > > Al final lo pude solucionar de las siguiente manera: > > ... > import binascii > ... > archivo.seek(posicion) > valor = binascii.a2b_hex('21') #Almacena el valor HEX en una variable > para escribirla > archivo.write(valor) > ... > > Un saludo y gracias por vuestra colaboración ;-) > > 2016-01-27 17:35 GMT+01:00 Chema Cortes : > >> >> >> El mié., 27 ene. 2016 a las 17:28, Chema Cortes () >> escribió: >> >>> El mié., 27 ene. 2016 a las 16:29, Pixu Kideak () >>> escribió: >>> >>>> Estoy con la versión Python 3.5.0 >>>> >>> >>> with open(ficheroLeer, 'r+b') as f: >>> f.seek(1) >>> f.write(bytes([21]) >>> >>> Según lo que sea, también podrías usar "literarles": >>> >>> with open(ficheroLeer, 'r+b') as f: >>> f.seek(1) >>> f.write(b'\x15') >>> >> >> Creo que he tomado mal los valores hexadecimales de la pregunta original. >> Para escribir un '!' en un fichero binario se usaría directamente b'!' >> >> with open(ficheroLeer, 'r+b') as f: >> f.seek(1) >> f.write(b'!') >> >> >> >>> >>> >>> >>> >>>> >>>> >>>> 2016-01-27 16:21 GMT+01:00 Chema Cortes : >>>> >>>>> >>>>> >>>>> El mié., 27 ene. 2016 16:12, Pixu Kideak >>>>> escribió: >>>>> >>>>>> " >>>>>> yo intentaría leer el fichero en memoria, cambiaría alli los datos y >>>>>> luego volvería a escribir el fichero. Los discos no pueden escribir "un >>>>>> byte". >>>>>> >>>>>> " >>>>>> Cuando se esta realizando la asignación archivo = open(ficheroLeer, >>>>>> 'r+b') ¿no se estaría trabajando contra el objeto "archivo" qué está en >>>>>> memoria? >>>>>> O por el contrario, ¿te refieres a volcar todo el contenido del >>>>>> fichero en una lista y trabajar contra ésta; una vez finalizado volcar de >>>>>> nuevo el contenido de la lista al fichero? >>>>>> >>>>> >>>>> No hace falta bajar tanto de nivel. Lo más seguro es que Python >>>>> sobrescriba el fichero completo en disco, pero eso no debe preocuparte. >>>>> >>>>> Lo que si es importante es saber si usas python3. Los ficheros >>>>> binarios usan el tipo bytes y, por lo que dices, no lo estas usando. >>>>> >>>>> >>>>>> Un saludo y gracias, >>>>>> >>>>>> 2016-01-27 16:00 GMT+01:00 Juan Ignacio : >>>>>> >>>>>>> yo intentaría leer el fichero en memoria, cambiaría alli los datos y >>>>>>> luego volvería a escribir el fichero. Los discos no pueden escribir "un >>>>>>> byte". >>>>>>> >>>>>>> 2016-01-27 14:40 GMT+00:00 Pixu Kideak : >>>>>>> >>>>>>>> Buenos días, >>>>>>>> >>>>>>>> Estoy trabajando con ficheros binarios pero tengo una duda. >>>>>>>> >>>>>>>> Lo primero que hago en mi programa es buscar un valor en el >>>>>>>&
Re: [Python-es] ñ en python
Buenos días, No sé si se podrá utilizar la letra "ñ" para variables; pero una solución que se suele utilizar bastante es sustituir la "ñ" por "ny", en tu ejemplo poner "anyo" en lugar de "año". Un saludo, 2016-01-29 11:47 GMT+01:00 cheis : > > Puedo crear una variable en python con ñ ? como "Año" por > ejemplo? > > Estoy usando linux y el fichero del script es utf-8 > y por supuesto en la cabecera le pongo la condificacion. > #!/usr/bin/env python > # -*- encoding: utf-8 -*- > > se que soporta ñ en las cadenas de texto pero no estoy seguro > si se es posible crear variables en caracteres que no sean > "anglofilos" > > > Gracias por la aclaracion > ___ > 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] Empleo en OVH (España)
Buenos días, He entrado en OVH (Madrid) y he visto que estaban buscando gente con conocimiento de Python; me he acordado de la lista. Por si alguno esta interesado: https://www.ovh.com/ca/en/careers/world.xml?ref=devops-es&type=es Un saludo, ___ 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] Importar grandes ficheros txt
Posibles soluciones que se me ocurren además de las que te han comentado: 1) Utilizar PyTables (http://www.pytables.org/) 2) En lugar de volcar toda la información a memoria y trabajar contra ésta, ¿volcarlo a una base de datos SQLite y trabajar contra la base de datos? Salu2 2017-12-19 17:34 GMT+01:00 Pavel Stephan Muñoz : > Me extraña un poco que una máquina con 32GB de RAM tenga problemas con un > fichero de 1GB. > > Qué posibilidades tienes de dividir el fichero en varios más pequeños? > Como con el comando split de unix/linux https://www. > computerhope.com/unix/usplit.htm > > Saludos, > Pavel Muñoz > > El 19 de diciembre de 2017, 16:43, LA REPISA > escribió: > >> Gracias, es un fichero de más de 1 GB. Son más de 5 millones de registros >> con 34 variables... >> >> Parece que le cuesta con el chunk. La verdad que necesito trabajar con >> ese tipo de ficheros y python me gusta, pero creo que me voy a tener que >> cambiar de Software. Una pena. >> >> Gracias de nuevo >> >> Enviado desde mi iPhone >> >> El 19 dic 2017, a las 16:32, Pavel Stephan Muñoz >> escribió: >> >> Hola. >> >> Y qué tamaño tiene el fichero? >> Con Pandas podrías intentar leyéndolo parte por parte utilizando el >> parámetro chunksize de la función read_table: >> >> pd.read_table('tmp.sv', sep=';', chunksize=100) >> >> A lo mejor y esto ayuda. Más info acá: >> http://pandas-docs.github.io/pandas-docs-travis/io.html#iter >> ating-through-files-chunk-by-chunk >> >> Saludos, >> Pavel Muñoz >> >> >> >> El 19 de diciembre de 2017, 16:17, LA REPISA >> escribió: >> >>> Buenas tardes, >>> >>> Tengo un fichero plano cuyos campos están separados por ‘;’, cópo puedo >>> importarlo a un dataframe de Python. Al intentar importarlo me devuelve >>> “python no responde”, la máquina se queda sin recursos (es una máquina con >>> 32 GB de memoria RAM) >>> >>> Mil gracias >>> ___ >>> Python-es mailing list >>> Python-es@python.org >>> https://mail.python.org/mailman/listinfo/python-es >>> >> >> >> >> -- >> *Pavel Stephan Muñoz* >> >> ___ >> 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 >> >> > > > -- > *Pavel Stephan Muñoz* > > ___ > 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] Distintos Encodings en Python
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
Re: [Python-es] Distintos Encodings en Python
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
Re: [Python-es] Distintos Encodings en Python
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] Desplegar desarrollos en distintos servidores
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] Empezar Python en UBuntu 10.10
Hola, Soy nuevo en esto de Python pero he leído y escuchado cosas muy buenas sobre él :-) He seguido un poco un tutorial que encontré en internet pero no me gusta demasiado escribir todo en consola, preferiría utilizar algún editor. Había pensado utilizar Gedit que es el que viene por defecto; pero según he podido leer en Internet no es muy recomendable. ¿Qué opinión tienen ustedes? Gracias, ___ 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] Ejercicio Bolsas de caramelos
Me han planteado un problemilla para realizarlo con Python pero no tengo muy claro por dónde atacar para resolverlo de manera eficiente. El problema es el siguiente: *"Tengo distintas bolsas de caramelos, cada bolsa digamos que tiene un nombre; (BolsaA, BolsaB ... )y cada bolsa se compone de caramelos diferentes (RegalizRojo, RegalizNegro, Chicle,Tiburón ...). * *"El tipo de caramelo puede estar tanto en un modelo de bolsa cómo en otra"* * * Lo que deseo realizar es, que el usuario pueda introducir cualquier tipo de caramelo y le muestre todas las unidades que se necesitan de ese tipo. Salu2 ___ 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] Ejercicio Bolsas de caramelos
2011/1/13 Arnau Sanchez > On Thu, 13 Jan 2011 13:38:48 +0100 pixu kideak wrote: > > > El problema es el siguiente: > > *"Tengo distintas bolsas de caramelos, cada bolsa digamos que tiene un > > nombre; (BolsaA, BolsaB ... )y cada bolsa se compone de caramelos > diferentes > > (RegalizRojo, RegalizNegro, Chicle,Tiburón ...). * > > *"El tipo de caramelo puede estar tanto en un modelo de bolsa cómo en > otra"* > > ¿qué tipo de caramelo? > > La Bolsa puede tener cualquier tipo de caramelo; es decir, X chicles, Y Tiburones. > > ¿? > > > Lo que deseo realizar es, que el usuario pueda introducir cualquier tipo > de > > ¿introducir cómo? > Se introducen por teclado, no tiene ninguna interfaz. Es decir se muestra una prompt pidiendo el tipo de caramelo que deseamos contar :-) > > > caramelo y le muestre todas las unidades que se necesitan de ese tipo. > > ¿que se necesitan para qué? > Necesitamos saber cuantos caramelos necesitamos; por ejemplo, para pedir al suministrador de los caramelos ( por ejemplo chicles ) X unidades de ese tipo. > > Imagino que se habrá cortado el correo, porque no se entiende nada :-( > > En cualquier caso, define casos de tests: lista(s) de entrada de ejemplo y > la > salida requerida. > ___ > 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] Ejercicio Bolsas de caramelos
2011/1/13 Gary Inturias Rojas > Podrias dar un poco mas de detalle?, como ser, alguna estructura de datos > que tienes que utilizar, alguna libreria, si es con interfaz grafica?, en > todo caso la mejor alternativa es orientada a objetos. > No tengo ningún requisito de librerias; ni es necesario una interfaz gráfica. El objetivo es que pueda introducir un tipo de caramelo ( chicle ) y que pueda mostrar cuantas unidades son necesarias. Si había pensado utilizar también OOP ;-) > > > El 13 de enero de 2011 14:31, Arnau Sanchez escribió: > > On Thu, 13 Jan 2011 13:38:48 +0100 pixu kideak wrote: >> >> > El problema es el siguiente: >> > *"Tengo distintas bolsas de caramelos, cada bolsa digamos que tiene un >> > nombre; (BolsaA, BolsaB ... )y cada bolsa se compone de caramelos >> diferentes >> > (RegalizRojo, RegalizNegro, Chicle,Tiburón ...). * >> > *"El tipo de caramelo puede estar tanto en un modelo de bolsa cómo en >> otra"* >> >> ¿qué tipo de caramelo? >> >> > * >> > * >> >> ¿? >> >> > Lo que deseo realizar es, que el usuario pueda introducir cualquier tipo >> de >> >> ¿introducir cómo? >> >> > caramelo y le muestre todas las unidades que se necesitan de ese tipo. >> >> ¿que se necesitan para qué? >> >> Imagino que se habrá cortado el correo, porque no se entiende nada :-( >> >> En cualquier caso, define casos de tests: lista(s) de entrada de ejemplo y >> la >> salida requerida. >> ___ >> 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] Ejercicio Bolsas de caramelos
Bueno pues para resolver el problema había pensado lo siguiente: Contar en memoria con todos los datos ( todas las bolsas existentes y éstas con los caramelos que contienen y sus cantidades ) Recorrer secuencialmente todas las bolsas viendo si tienen el caramelo que me interesa. En caso afirmativo contabilizar esa cantidad en el contador y así hasta recorrer todas las bolsas. Simplemente quería saber si existía alguna forma "divina" pero viendo que las Bolsas no guardan ninguna lógica en su composición; creo que toca recorrerlas todas viendo si contienen el caramelo o no :-) Saludos y gracias ;-) 2011/1/13 lasizoillo > El día 13 de enero de 2011 13:38, pixu kideak > escribió: > > > > Me han planteado un problemilla para realizarlo con Python pero no tengo > muy > > claro por dónde atacar para resolverlo de manera eficiente. > > Sería un buen punto de partida la forma ineficiente por dos motivos: > * El primero porque muestras que te has esforzado en intentarlo y > tienes afán de superación en vez de más cara que espalda como muestran > algunos que quieren que les hagan los deberes. > > > El problema es el siguiente: > > "Tengo distintas bolsas de caramelos, cada bolsa digamos que tiene un > > nombre; (BolsaA, BolsaB ... )y cada bolsa se compone de caramelos > diferentes > > (RegalizRojo, RegalizNegro, Chicle,Tiburón ...). > > "El tipo de caramelo puede estar tanto en un modelo de bolsa cómo en > otra" > > Lo que deseo realizar es, que el usuario pueda introducir cualquier tipo > de > > caramelo y le muestre todas las unidades que se necesitan de ese tipo. > > * El segundo porque la redacción en lenguaje natural no compila en > nuestras mentes. Seguramente un código ineficiente nos ayudaría a > comprender el enunciado del problema. Unos tests o casos de prueba > serían maravillosos. Ahora mismo las unidades que responden a la gran > pregunta, creo que son 42. Lo que no se es cual es la gran pregunta de > la vida, el universo y todo lo demás (incluyendo este problema ;-) > > Saludos: > > Javi > ___ > 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] Ejercicio Bolsas de caramelos
2011/1/13 Eduard Diaz > > El problema es el siguiente: > > "Tengo distintas bolsas de caramelos, cada bolsa digamos que tiene un > > nombre; (BolsaA, BolsaB ... )y cada bolsa se compone de caramelos > diferentes > > (RegalizRojo, RegalizNegro, Chicle,Tiburón ...). > > "El tipo de caramelo puede estar tanto en un modelo de bolsa cómo en > otra" > > Lo que deseo realizar es, que el usuario pueda introducir cualquier tipo > de > > caramelo y le muestre todas las unidades que se necesitan de ese tipo. > > Joder, hay que tener cara para no tener ni la mas mínima consideración para > escribir una linea de código. > > Eso suena a ejercicio de clase pasteado a pelo > > Pero como estoy con ganas de reirme... > > la respuesta tonta en lenguaje natural es: > > Creas un diccionario que tenga unas claves como bolsas y como valor un > diccionario pegajoso de tipos de caramelos que tenga valores enteros. Ojo el > valor inicial siempre será cero. > > Cuando quieras meter algo en la bolsa le sumas uno al tipo de caramelo del > diccionario de tipos de caramelos de la bolsa en cuestión (perogrullo) > > Cuando quieras saber lo que falta solo tienes leer el valor de la tipo de > caramelo de la bolsa y restarlo del máximo de caramelos que puedas tener > para ese tipo de caramelos de ese tipo de bolsa, valor que también se puede > guardar en el diccionario de tipos de caramelos de las bolsas > > Con eso se cumplen tus requisitos > > Ahora te falta programarlo, aunque es muy fácil > > > Un saludo > Gracias, era más o menos lo que buscaba. De hecho no quería ver líneas de código; sino tener "la idea". > > > ___ > 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/