Bienvenido, Invitado
Tienes que registrarte para poder participar en nuestro foro.

Nombre de usuario/Email:
  

Contraseña
  





Buscar en los foros

(Búsqueda avanzada)

Últimos temas
Representar Grafico en Ap...
Foro: Aplicaciones de escritorio
Último mensaje por: Francisco
Hace 8 horas
» Respuestas: 8
» Vistas: 267
Crear .EXE de un .PY
Foro: Aplicaciones de escritorio
Último mensaje por: Francisco
17-07-2018, 04:05 PM
» Respuestas: 9
» Vistas: 120
uso de __iter__ y __next_...
Foro: General
Último mensaje por: Francisco
16-07-2018, 03:27 PM
» Respuestas: 8
» Vistas: 110
Diseño de aplicacion Resp...
Foro: Aplicaciones de escritorio
Último mensaje por: Francisco
14-07-2018, 10:32 PM
» Respuestas: 8
» Vistas: 150
Hola amigos
Foro: Inicio
Último mensaje por: Francisco
04-07-2018, 11:20 AM
» Respuestas: 1
» Vistas: 66
Modulos Python
Foro: Aplicaciones de escritorio
Último mensaje por: Francisco
04-07-2018, 12:14 AM
» Respuestas: 5
» Vistas: 130
Validacion campo Entry - ...
Foro: Aplicaciones de escritorio
Último mensaje por: alfredo89
25-06-2018, 06:40 PM
» Respuestas: 4
» Vistas: 121
namespace
Foro: Web
Último mensaje por: Francisco
19-06-2018, 07:46 PM
» Respuestas: 1
» Vistas: 116
Label con fondo transpare...
Foro: Aplicaciones de escritorio
Último mensaje por: Francisco
14-06-2018, 11:49 AM
» Respuestas: 5
» Vistas: 209
App Escritorio - De Windo...
Foro: Aplicaciones de escritorio
Último mensaje por: Francisco
12-06-2018, 09:56 PM
» Respuestas: 1
» Vistas: 107

 
  uso de __iter__ y __next__ en ficheros
Enviado por: calvicius - 13-07-2018, 07:33 PM - Foro: General - Respuestas (8)

hola,

estoy revisando el codigo de un parser de partidas de ajedrez a fin de reducir cantidad de codigo y mejorar la rapidez del proceso.
se trata de leer un fichero con cierto numero de partidas, que están grabadas en ascii de la siguiente manera:


Código:
[Event "Partida 1"]
[Site "Sitio 1"]
[Date "1992.11.04"]
[Round "1"]
[White "Fischer, Robert J."]
[Black "Spassky, Boris V."]
[Result "1/2-1/2"]

1. e4 e5 2. Nf3 Nc6 3. Bb5 {This opening is called the Ruy Lopez.} 3... a6
4. Ba4 Nf6 5. O-O Be7 1/2-1/2

[Event "Partida 2"]
[Site "Sitio 2"]
[Date "1992.11.04"]
[Round "2"]
[White "Fischer, Robert J."]
[Black "Spassky, Boris V."]
[Result "1/2-1/2"]

1. e4 e5 2. Nf3 Nc6 3. Bb5 {This opening is called the Ruy Lopez.} 3... a6
4. Ba4 Nf6 5. O-O Be7 1/2-1/2
en este caso hay solo dos partidas, pero pueden existir miles de ellas.

El problema que tengo es que no encuentro el fin del fichero (EOF) y me repite indefinidamente la última partida.
Pongo el código:

Código:
# python 3.6.1  
     
class IteradorPartidaCadena(object):
   """
       Iterador que contiene cadenas multilínea que
       representan partidas de un archivo PGN
   """
   def __init__(self, nom_fich):
       """
           Args:
               nom_fich (str): PGN nombre fichero
       """
       self.nom_fich = nom_fich
       self.fich_iter = iter(open(self.nom_fich))
       self.lineas_partida = []
       self.fin = False
   
   def __iter__(self):
       """iterador"""
       return self
   
   def __next__(self):
       """siguiente del iterador"""
       if self.fin is True:
           # raise StopIteration   # python 2.7
           return                  # python 3.5
           
       try:
           while True:
               linea = next(self.fich_iter)
               if linea.startswith("[Event"):
                   if len(self.lineas_partida) == 0:
                       self.lineas_partida.append(linea)
                       continue
                   else:
                       lineas_partida = self.lineas_partida[:]
                       self.lineas_partida = []
                       self.lineas_partida.append(linea)
                       partida_cadena = "".join(lineas_partida)
                       return partida_cadena
               else:
                   self.lineas_partida.append(linea)
       except StopIteration:
           lineas_partida = self.lineas_partida[:]
           partida_cadena = "".join(lineas_partida)
           #print(117, partida_cadena)
           self.end = True
           return partida_cadena
   
   
   

class IteradorPartida(object):
   """
       Iterador que contiene partidas de un archivo PGN
   """
   def __init__(self, nom_fich):
       """
           Args:
               nom_fich (str): fichero.pgn (nombre del fichero)
       """
       self.iterador_partida_str = IteradorPartidaCadena(nom_fich)

   def __iter__(self):
       """iterador"""
       return self
       
   def __next__(self):
       """siguiente"""
       for parti_str in self.iterador_partida_str:
           return parti_str
       
       
if __name__ == '__main__':
   for parti in IteradorPartida("comentarios.pgn"):
       print(parti)

Estoy casi seguro de que es solo cuestión de algún detalle tonto, pero llevo dos días con esto y no logro atinar. Cry
¿Alguien me puede indicar donde puede esta el error?. Gracias anticipadas.

edito:

Lo de la repetición infinita de la ultima partida está arreglado (lo he visto justo al revisar el post  Big Grin 

se trataba de sustituir self.end por self.fin (cosa de manejar indistintos idiomas)

ahora la salida que me reporta es un bucle infinito con None:

Código:
[Event "Partida 1"]
[Site "Sitio 1"]
[Date "1992.11.04"]
[Round "1"]
[White "Fischer, Robert J."]
[Black "Spassky, Boris V."]
[Result "1/2-1/2"]

1. e4 e5 2. Nf3 Nc6 3. Bb5 {This opening is called the Ruy Lopez.} 3... a6
4. Ba4 Nf6 5. O-O Be7 1/2-1/2


[Event "Partida 2"]
[Site "Sitio 2"]
[Date "1992.11.04"]
[Round "2"]
[White "Fischer, Robert J."]
[Black "Spassky, Boris V."]
[Result "1/2-1/2"]

1. e4 e5 2. Nf3 Nc6 3. Bb5 {This opening is called the Ruy Lopez.} 3... a6
4. Ba4 Nf6 5. O-O Be7 1/2-1/2

None
...
None
...
se puede solucionar dentro del for en main con un 

if parti is not None:
        print (parti)
    else:
        break

pero tengo que tener un error en las clases que no encuentro

Imprimir

  Crear .EXE de un .PY
Enviado por: alfredo89 - 10-07-2018, 01:22 PM - Foro: Aplicaciones de escritorio - Respuestas (9)

Buenas, llevo varias semanas intentándolo y no hay manera. No encuentro una guía de como hacerlo y no parece fácil. Tengo una aplicación desarrollada con python y tkinter en la que utilizo varias librerías. Me gustaría empaquetar dicha aplicación en un ejecutable para poder ejecutarla en otros equipos sin necesidad de instalar el interprete de python y tener que ejecutar el .py desde consola.

Alguna idea de como empaquetarlo todo junto, librerías, imágenes, etc...

Gracias, saludos.

Imprimir

  Hola amigos
Enviado por: javgoji - 04-07-2018, 05:58 AM - Foro: Inicio - Respuestas (1)

Me he alegrado mucho cuando he encontrado un foro de Python.
Soy nuevo en la programación de sistemas abiertos y en especial con Python.
Hace años programé en entorno mainframe, Cobol-Leasy, Natural-Adabas y nada tiene que ver con esto.
Creo que he elegido bien empezando con Python para comenzar a reciclarme.
Saludos a todos y hasta pronto.

Imprimir

  Diseño de aplicacion Responsive con Python
Enviado por: alfredo89 - 02-07-2018, 12:47 PM - Foro: Aplicaciones de escritorio - Respuestas (8)

Buenas tardes, como podría hacer una aplicación Responsive trabajando con python y tkinter ????

Imprimir

  Modulos Python
Enviado por: alfredo89 - 26-06-2018, 01:02 PM - Foro: Aplicaciones de escritorio - Respuestas (5)

Hola buenas, vuelvo a tener una duda con python, esta vez es relacionada con los módulos. A ver yo estoy desarrollando una aplicacion donde tengo controles de usuario, entry, botones, etc...

Cada uno de esos controles tienen eventos (funciones que tengo declaradas arriba "def nombreFuncion():"), vale pues yo lo que quiero hacer es, de alguna manera, separar la parte gráfica de la parte "funcional" de la aplicación, para ello había pensado en crear un modulo donde poner todas las funciones pero claro, si una función hace uso de los controles de usuario que están en el .py original por así decirlo, en el otro modulo no existe ese control, no se si me explico.

Por ejemplo tengo un archivo "principal.py" donde tengo creado un botón y un campo Entry, y después tengo un modulo por ejemplo "modulo.py" para poner las funciones. Desde este segundo como puedo manejar los controles de usuario que hay en el primero?

No se si Python dispone de alguna forma de importar esos controles.

Gracias !!

Imprimir

  Validacion campo Entry - Solo Numeros
Enviado por: alfredo89 - 22-06-2018, 10:57 AM - Foro: Aplicaciones de escritorio - Respuestas (4)

Buenas, tengo un control de tipo Entry, y quiero validar o controlar que solamente se introduzcan numeros o un punto, por ejemplo los caracteres aceptados serian [0,1,2,3,4,5,6,7,8,9,.]

Como puedo hacerlo?

Gracias, un saludo.

Imprimir

  namespace
Enviado por: rene - 19-06-2018, 10:39 AM - Foro: Web - Respuestas (1)

Hola amigos, soy nuevo en Django, estoy siguiendo un tutorial sencillo pero estoy parado por un error el cual no aparece en el video. He consultado la documentación y tampoco me ha ayudado a solucionarlo, por favor si alguien sabe como resolver esto, sería de mucha ayuda.
urlpatterns = [
.....
url(r'^mascota/', include('apps.mascota.urls', namespace='mascota')),
...
]
el error es este:
'Specifying a namespace in include() without providing an app_name '

django.core.exceptions.ImproperlyConfigured: Specifying a namespace in include() without providing an app_name is not supported. Set the app_name attribute in the included module, or pass a 2-tuple containing the list of patterns and app_name instead.

Imprimir

  Label con fondo transparente
Enviado por: alfredo89 - 12-06-2018, 04:37 PM - Foro: Aplicaciones de escritorio - Respuestas (5)

Hola buenas, ya se que pregunto mucho... pero es que soy nuevo y tengo millones de dudas en Pyhton. Mi problema es el siguiente:
Tengo una interfaz con un color solido de fondo, y a las etiquetas que ponia les ponia el mismo color de fondo y arreglado. El tema es que ahora he colocado una imagen de fondo y claro, no quiero que se vea el fondo de los labels. He visto que tkinter no implementa la forma de poner ese fondo de color transparente, y que es posible hacerle con canvas... pero no veo ningun ejemplo claro. Alguna ayuda o idea?

Gracias.

Imprimir

  App Escritorio - De Windows a Mac [PROBLEMA]
Enviado por: alfredo89 - 12-06-2018, 03:34 PM - Foro: Aplicaciones de escritorio - Respuestas (1)

Hola buenas, mi problema es el siguiente:
La aplicación que estoy desarrollando en windows (trabajo con Anaconda y Spyder) funciona perfectamente al ejecutarla desde Spyder, el tema es que al intentar ejecutarla en Mac, se me ve un poco rara puesto que los cuadros de texto se ven mas grandes... algún botón se ha movido y lo mas importante, muestro una tabla con el objeto Treeview que en windows se ve bien pero en Mac ni siquiera se visualiza. 
Hay alguna manera de hacer la aplicación "responsive" o arreglar de alguna manera el error. También decir que trabajo con el método "place()" de TKINTER para posicionar todos los controles.

Un saludo y gracias.

Imprimir

  Hola a todos.
Enviado por: cesaro - 30-05-2018, 12:31 PM - Foro: Inicio - Respuestas (1)

Buen día, un saludo a todos.
Me llamo César, vivo en Argentina y soy novato con Python, aunque ya hice mi primer script!
Usé PyQt5 para el entorno gráfico y el cx-freeze para generar un instalador para compartirlo en PC con Windows sin necesidad de tener instalado Python. 
Estoy convencido que la mejor forma de aprender, además de leer todo tipo de tutoriales, es realizar un proyecto y que funcione. Para esto es muy útil entrar en foros como este, son de mucha ayuda!

Muchas gracias.

Imprimir