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
acceso aleatorio en fiche...
Foro: Visualización y análisis de datos
Último mensaje por: Francisco
Ayer, 09:08 PM
» Respuestas: 5
» Vistas: 29
Cargar el clipboard en un...
Foro: Aplicaciones de escritorio
Último mensaje por: calvicius
12-09-2017, 06:28 PM
» Respuestas: 9
» Vistas: 74
autenticacion flask
Foro: Web
Último mensaje por: Francisco
07-09-2017, 09:08 PM
» Respuestas: 5
» Vistas: 80
Una cuestión sobre ttk.tr...
Foro: Aplicaciones de escritorio
Último mensaje por: Francisco
02-09-2017, 01:52 PM
» Respuestas: 4
» Vistas: 72
Tkinter y Python 3.6
Foro: Aplicaciones de escritorio
Último mensaje por: calvicius
28-08-2017, 01:40 PM
» Respuestas: 6
» Vistas: 141
Error al insertar en mysq...
Foro: Web
Último mensaje por: Francisco
26-08-2017, 01:42 AM
» Respuestas: 5
» Vistas: 123
Instalar word2vec
Foro: General
Último mensaje por: Francisco
17-08-2017, 09:45 PM
» Respuestas: 1
» Vistas: 73
Seria posible obtener
Foro: General
Último mensaje por: Francisco
15-08-2017, 08:32 PM
» Respuestas: 3
» Vistas: 150
Descargar y guardar archi...
Foro: General
Último mensaje por: Francisco
14-08-2017, 08:40 PM
» Respuestas: 4
» Vistas: 129
Generar ruta
Foro: General
Último mensaje por: cucuru
13-08-2017, 02:58 PM
» Respuestas: 4
» Vistas: 134

 
  acceso aleatorio en ficheros
Enviado por: calvicius - 16-09-2017, 08:54 PM - Foro: Visualización y análisis de datos - Respuestas (5)

a ver como describo la pregunta....
Tengo un registro, tal que nombre, apellidos, etc... con una longitud fija en bytes.
Estos registros los grabo en un fichero en binario 'w+b'. Hasta aqui simple.
Ahora supongamos que tengo dos millones de registros con una longituda cada uno de 2048 bytes.

Ahora quiero acceder a un registro, por su clave/num_registro, en concreto, sin llevar el archivo a memoria. He ojeado las librerías shelve y anydbm, pero carga todo el fichero; y para ficheros muy grandes no se puede. Por una particularidad que no viene al caso no debo hacerlo en sql.

Pongo un ejemplo en pascal para que se vea lo que busco, a ver si es posible hacerlo en python con alguna librería que desconozco.


Código:
Type
   datos = record
       clave : integer;
       nombre : string[30];
       puesto : string[20];
       sueldo : real;
       estado : boolean;
   end;

Var
   valores : datos
   archivo : file of datos;

Begin
   Assign(archivo,'empleado.dat');
   ReWrite(aechivo);
   valores.clave = 1;
   ...
   valores.estado = ....
   close(archivo);
   
end

y para buscar un registro concreto solo tendría que hacer:

Código:
Seek(miFichero, num_registro);


Lo más parecido que he encontrado en python a la estructura record de pascal es namedtuples:


Código:
>>> from collections import namedtuple
>>> Persona = namedtuple('Persona', ['nombre', 'apellidos'])
>>> p = Persona('Pepe', 'Perez')
>>> p
Persona(nombre='Pepe', apellidos='Perez')
>>> p.nombre
'Pepe'
>>> datos = ['juan', 'dominguez']
>>> Persona._make(datos)
Persona(nombre='juan', apellidos='dominguez')
>>> p
Persona(nombre='Pepe', apellidos='Perez')
>>> p._asdict()
OrderedDict([('nombre', 'Pepe'), ('apellidos', 'Perez')])
>>> p._fields
('nombre', 'apellidos')
>>> getattr(p, 'apellidos')
'Perez'
Edito:
Para la estructura del registro ya he encontrado una librería que me sirve:
recordtype 1.1
[/url]
[url=https://pypi.python.org/pypi/recordtype]

Imprimir

  Cargar el clipboard en una lista o a un diccionario
Enviado por: efueyo - 09-09-2017, 02:31 PM - Foro: Aplicaciones de escritorio - Respuestas (9)

Estimados todos. Intento encontrar alguna opción que me permita cargar los datos del clipboard a una tabla o a un diccionario Python. Con el módulo Tk, se podría hacer esto?.
Al utilizar el comando "clip_text = root.clipboard_get()" qué obtengo, ¿una tabla? ¿un texto con todas las líneas y valores de las dos columnas?
Saludos cordiales

Imprimir

  autenticacion flask
Enviado por: motrov91 - 06-09-2017, 12:38 AM - Foro: Web - Respuestas (5)

Hola, buenas noches.

Estoy aprendiendo flask y he legado a un punto en el que me he quedado estancado, estoy intentando loguearme en una aplicacion que estoy haciendo pero pareciera que la consulta no me retorna ningun resultado, no se si depronto alguien me pueda colaborar, por favor, no se por donde revisar,  ayuda please. asi tengo mi ruta. pareciera que el error es en la consulta porque cuando hago la validacion va directamente al else, adjunto el proyecto. gracias

@app.route('/login2', methods = ['GET','POST'])
def login2():
    login2_form = forms.Login2Forms(request.form)

    if request.method == 'POST' and login2_form.validate():
        username = login2_form.username.data
        password = login2_form.password.data

        print username
        print password

        session['username'] = login2_form.username.data

        user = User.query.filter_by(username = username).first()

        if user is not None and user.verify_password(password):
            success_message = 'bienvenido {}'.format(username)
            flash(success_message)

            session['username'] = username

            return redirect(url_for('index'))
        else:
            error_message='Usuario o password invalidos'
            flash(error_message)

        session['username'] = login2_form.username.data
    return render_template('login2.html', form = login2_form)



Archivos adjuntos
.gz   saber.tar.gz (Tamaño: 94,07 KB / Descargas: 1)
Imprimir

  Una cuestión sobre ttk.tree
Enviado por: calvicius - 31-08-2017, 07:08 PM - Foro: Aplicaciones de escritorio - Respuestas (4)

Sabemos que este widget puede presentar datos en formato tabla. Por una parte tengo la cabecera y por otro las filas, donde muestro los resultados del cursor de consultas a una base de datos. Hasta aqui todo bien.

Quiero ordenar los datos picando sobre la cabecera del tree, y de hecho recibo los resultados de un query tipo "SELECT * FROM mi_tabla ORDER BY campo_1". Picando en la cabecera de cada columna me muestra los datos ordenados por el campo que quiero,

El problema es que con cada consulta nueva me refresca tambien la cabecera, quedando muy feo, el parpadeo que produce.

Adjunto el fichero de prueba (nota: no me deja) que he fabricado emulando la respuesta de una query SELECT, generando 500.000 registros (se puede cambiar el num. de tuplas). Es muy caro en tiempo y recursos de memoria la ordenación de la lista de tuplas (los registros de la BD) por el campo soliticitado con 

  1. l_ordenada = sorted(lista, key=lambda tup: tup[elem_tupla])


Es la segunda vez que utilizo este widget. Habia pensado en dividir el frame padre en dos subframes donde colocar: en el subframe de arriba la cabecera y en el subrame de abajo las filas registros. Asi, en principio, no parpadearía la cabecera con cada peitición de SELECT ORDER

sería algo así:

La cabecera:

  1. self.arbol_sup= ttk.Treeview(self.frm_sup)
  2.  
  3. # creo las cabeceras - la columna 0 esta puesta a ancho 0
  4.         self.arbol_sup.heading('#0', text='', anchor='w')
  5.         self.arbol_sup.heading('#1', text='Campo 1
  6.         ....


Las filas:

  1. self.arbol_inf= ttk.Treeview(self.frm_sup)
  2.  
  3. #creo los indices de las columnas
  4.         self.arbol_inf["columns"] = ("campo1", ...)
  5.         self.arbol_inf.column("#0",...)
  6.         self.arbol_inf.column("campo1",...)


y luego las lambdas de la cabecera ligarlas exclusivamente al arbol inferior.

Alquien que tenga más experiencia que yo, y me pueda aconsejar.

Gracias

pdta.: el archivo está en :

https://drive.google.com/file/d/0B2mK6w2...sp=sharing

Imprimir

  Tkinter y Python 3.6
Enviado por: Joseprad - 19-08-2017, 08:38 AM - Foro: Aplicaciones de escritorio - Respuestas (6)

Buenos días.
Tengo experiencia en otros lenguajes de programación y estoy empezando en python.

La plataforma es Linux Fedora, estoy utilizando PyCharm y intento utilizar el entorno gráfico Tkinter.

El problema es que si utilizo python 3.6 no me acepta Tkinter ni tkinter asi que debo utilizar pyton 2.7 i entonces me acepta Tkinter con mayúscula.

Podéis ayudarme
Muchas gracias

Imprimir

  Instalar word2vec
Enviado por: alexanderjca - 17-08-2017, 02:05 AM - Foro: General - Respuestas (1)

Estoy tratando de instalar word2vec en python 3.4 sobre windows 10 y me sale errores 
 Running setup.py bdist_wheel for word2vec ... error

  Failed building wheel for word2vec

Ya intenté de todo, instalé los complementos de Visual C++  del 2010, 2012,2013,2015 y nada 

Si alguien tiene una sugerencia me avisa por favor

Gracias

Imprimir

  Error al insertar en mysql
Enviado por: cucuru - 15-08-2017, 08:16 PM - Foro: Web - Respuestas (5)

Hola , otra nueva necesidad que ha surgido es la de subir datos de tablas acces al servidor mysql , lo tenia funcionando hasta que al pasarlo a condiciones reales unas veces duplicaba un registro y otras sencillamente se lo saltaba , asi que decidi usar la sentencia INSERT into tabla (campos) VALUES ( valores) ON DUPLICATE KEY UPDATE (campo=valor) , esta sentencia funciona bien , con lo que me ahorra borrar el registro e insertarlo , creo que esto era mas rapido que tener que mirar si el registro existe y si existe actualizarlo .

  Bien , como la cosa funcionaba decido agrupar varias sentencias y pasarlas juntas para reducir el tiempo , y aqui es donde para mi sorpresa no funciona nada , me da un error #2014 - Commands out of sync. you can't run this command now , sabeis porque ocurre esto , sin embargo si vuelvo a lanzar los insert de uno en uno funciona perfecto , pero necesito velocidad en las actualizaciones o inserciones de datos , sabeis alguna forma de acelerar la insercion de datos en mysql?

Imprimir

  Seria posible obtener
Enviado por: cucuru - 14-08-2017, 03:55 PM - Foro: General - Respuestas (3)

Con python la estructura de ls tablas de un  mdb ?

Imprimir

  Descargar y guardar archivo
Enviado por: cucuru - 13-08-2017, 03:02 PM - Foro: General - Respuestas (4)

Por motivos de mantenimiento de los pcs y ya que son muchos , me surge la necesidad de crear un script que reciba como parametro una ruta en el servidor (direccion web) y descarge ese archivo en el cliente , la descarga la hago , pero hay que descargar un rar y siempre llega mal , este es el codigo que utilizo :

  1. import urllib2
  2. import time
  3.  
  4. archivoDescargar = "http://ruta al rar"
  5. archivoGuardar = "ruta local donde guardarlo"
  6.  
  7. now = time.time()
  8.  
  9. descarga = urllib2.urlopen(archivoDescargar)
  10.  
  11. ficheroGuardar=file(archivoGuardar,"w")
  12. ficheroGuardar.write(descarga.read())
  13. ficheroGuardar.close()
  14.  
  15. elapsed = time.time() - now
  16.  
  17. print "Descargado el archivo: %s en %0.3fs" % (archivoDescargar,elapsed)

Imprimir

  aprendiendo python
Enviado por: motrov91 - 09-08-2017, 02:28 PM - Foro: General - Respuestas (3)

Buenos dias. tengo la siguiente duda si depronto alguien me puede colaborar, soy nuevo en python y emprendi este camino recientemente y ps como ya saben seguro en algun punto todos nos hemos estancado y esto es lo que me ha pasado a mi. Tengo el siguiente inconveniente:

Creo una clase persona y en el "constructor", creo un atributo "privado", creo los geters y seters para acceder a ellos pero al momento de crear un objeto de tipo Persona me retorna de los valores que son "publico" como vamos a ver en el ejemplo, mas no me retorna el valor publico como tal sino una direccion en memoria. ¿Como hago para ver el valor que ha tomado sueldo?

#encaptulamiento

class Persona(object):
def __init__(self, pnombre, pedad, psueldo):
self.setNombre(pnombre)
self.setEdad(pedad)
self.__setSueldo(psueldo)
pass

def setEdad(self, pedad):
self.__pedad = pedad
pass

def getEdad(self):
return self.__pedad
pass

def setNombre(self, pnombre):
self.__pnombre = pnombre
pass

def getNombre(self):
return self.__pnombre
pass

def __setSueldo(self, psueldo):
self.__psueldo = psueldo
pass

def getSueldo(self):
return self.__setSueldo
pass

nombre = property(getNombre, setNombre)
edad = property(getEdad, setEdad)

nuevo = Persona('Manuel', 26, 8000)

print(nuevo.nombre, " gana ", nuevo.getSueldo())

el codigo corre bien y el resultado lo adjunto en la imagen, quisiera saber como acceder a ese valor privado y que me muestre el valor que contiene. si me pueden ayudar muchas gracias de antemano Big Grin

Imprimir