elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


  Mostrar Mensajes
Páginas: 1 2 3 [4] 5 6 7 8 9 10 11
31  Programación / Scripting / TypeError: 'str' object cannot be interpreted as an integer(python) en: 17 Noviembre 2022, 15:18 pm
Hola gente, ¿ cómo están? Créanme que pase un rato buscando la manera de solucionar esto, pero como es la primera vez que trabajo con archivo binario no hay manera de conseguirlo.-
Siendo prejuicioso, debo decir que debe ser algo muy simple lo que me falta, pero no me cae la ficha.-
Esto tiene que ver con el post anterior, quiero medir el peso en disco de un archivo plano y uno binario.-

https://foro.elhacker.net/scripting/bases_de_datos_utilizando_archivo_txt_en_python-t516456.0.html


Código
  1. def main():
  2.    otra=[f"{x}, Yo vivo en este mundo pero no pertenezco a las leyes de este mundo" for x in range(1,100_001)]
  3.    with open("numeros.bin","wb") as archivo:
  4.        archivo.write(bytearray(otra))
  5.  
  6. if __name__ == "__main__":
  7.    main()

Slds. Daniel ☕☕☕
32  Programación / Scripting / Re: Bases de datos utilizando archivo .txt en Python. en: 14 Noviembre 2022, 21:03 pm
Hola Dani, gracias por el código, está muy bueno, pero no necesito crear 2 archivos.-
A continuación muestro mi código y verás que lo hago a partir de una lista, natural
(tal cual está en el archivo) y luego ordenada y me lleve una sorpresa, sin ordenar
es lo mismo que ordenada.-

Código
  1. import time
  2. import codecs
  3.  
  4. lista = []
  5. with codecs.open('registro.txt', 'r', encoding='utf-8') as archivo:
  6.    for tmp_linea in archivo:
  7.        tmp_linea.replace("\r,\n"," ")
  8.        linea = tmp_linea.split(',')
  9.        lista.append(linea)
  10.  
  11. lista = sorted(lista, key=lambda x: int(x[0])) # Ordenar la lista
  12. inicio = time.time()
  13.  
  14. for lis in lista:
  15.    if int(lis[0]) == 100000: # Si la lista esta al natural, el 100000 se reemplaza
  16.        break                 # con un 10
  17.  
  18. fin = time.time()
  19. print(fin-inicio)
  20.  
  21. ## Lista sin ordenar = 0.014191389083862305
  22. ## Lista ordenada    = 0.015621662139892578


Al fin esta última es la manera más rápida...

Código
  1. import time
  2. import codecs
  3.  
  4. inicio = time.time()
  5.  
  6. with codecs.open('registro.txt', 'r', encoding='utf-8') as archivo:
  7.    for tmp_linea in archivo:
  8.        tmp_linea.replace("\r,\n"," ")
  9.        linea = tmp_linea.split(',')
  10.        if linea[0] == '10':
  11.            break
  12.  
  13. fin = time.time()
  14. print(fin-inicio)
  15.  
  16. '''
  17. Con la lista sin ordenar   = 0.2968323230743408
  18. Con la lista ordenada      = 0.3124265670776367
  19. Sacado directo del archivo = 0.26558613777160645
  20. '''

Continuo con el resto.-
Slds. Daniel ☕☕☕
33  Programación / Scripting / Re: Bases de datos utilizando archivo .txt en Python. en: 14 Noviembre 2022, 18:24 pm
Bueno, al fin la búsqueda/práctica dio sus frutos.

Con esta línea creo un archivo con 100.001 registros en forma descendente:

Código
  1. otra=[f"{x}, Yo vivo en este mundo pero no pertenezco a las leyes de este mundo" for x in range(100_001,0,-1)]
  2.  

Citar
100001, Yo vivo en este mundo pero no pertenezco a las leyes de este mundo
100000, Yo vivo en este mundo pero no pertenezco a las leyes de este mundo
99999, Yo vivo en este mundo pero no pertenezco a las leyes de este mundo
99998, Yo vivo en este mundo pero no pertenezco a las leyes de este mundo
[...]
1, Yo vivo en este mundo pero no pertenezco a las leyes de este mundo
Con esta lo ordeno en forma ascendente:

Código
  1. lista = sorted(tmpLista, key=lambda x: int(x[0]))

Me falta tan solo medir los tiempos de búsqueda con la lista ordenada y sin ordenar,
y otras 2 cosas que luego les comento…

Slds. Daniel ☕☕☕
34  Programación / Scripting / Re: Bases de datos utilizando archivo .txt en Python. en: 14 Noviembre 2022, 15:42 pm
Hola rey, ¿cómo estás?, gracias por tu tiempo y el código,
te cuento, estoy como al principio, lo que necesito es tener
el archivo «desordenado» y medir el tiempo de búsqueda de
un registro por el código y luego la misma lista, pero ordenada
y medir nuevamente el tiempo que tarda el programa en encontrar
el mismo registro.-
Estuve practicando con esto, pero claro, el orden no lo hace como
lo deseado:

Citar
6,Yo vivo en este mundo, pero no pertenezco a las leyes de este mundo.
5,Yo vivo en este mundo, pero no pertenezco a las leyes de este mundo.
4,Yo vivo en este mundo, pero no pertenezco a las leyes de este mundo.
3,Yo vivo en este mundo, pero no pertenezco a las leyes de este mundo.
2,Yo vivo en este mundo, pero no pertenezco a las leyes de este mundo.
[...]
1,Yo vivo en este mundo, pero no pertenezco a las leyes de este mundo.

Yo inocentemente esperaba esto:

Citar
1,Yo vivo en este mundo, pero no pertenezco a las leyes de este mundo.
2,Yo vivo en este mundo, pero no pertenezco a las leyes de este mundo.
3,Yo vivo en este mundo, pero no pertenezco a las leyes de este mundo.
4,Yo vivo en este mundo, pero no pertenezco a las leyes de este mundo.
5,Yo vivo en este mundo, pero no pertenezco a las leyes de este mundo.
[...]
100000,Yo vivo en este mundo, pero no pertenezco a las leyes de este mundo.

Pero como es lógico apareció algo distinto, es obvio que toma los números
como string y no como enteros:

Voy a seguir practicando, estoy muy entusiasmado, cuando termine con esto
me faltan 2 cosas muy necesarias que luego se las comento.- 

Slds. Daniel ☕☕☕
35  Programación / Scripting / Re: Bases de datos utilizando archivo .txt en Python. en: 13 Noviembre 2022, 22:05 pm
Hola tocayo, debo deducir que me adivinaste el pensamiento
casi me respondes antes que diera de alta el post, jajajaja
gracias, gracias.-
Que me sugerís para crear el archivo, ¿un bucle repitiendo todas
las líneas/registros y ponerle un código en aumento? Ej.:

1,Yo vivo en este mundo, pero no pertenezco a las leyes de este mundo.
2,Yo vivo en este mundo, pero no pertenezco a las leyes de este mundo.
3,Yo vivo en este mundo, pero no pertenezco a las leyes de este mundo.
4,Yo vivo en este mundo, pero no pertenezco a las leyes de este mundo.
5,Yo vivo en este mundo, pero no pertenezco a las leyes de este mundo.
[...]
110000,Yo vivo en este mundo, pero no pertenezco a las leyes de este mundo.

Código
  1. import time
  2. inicio = time.time()
  3.  
  4. lista = []
  5. for x in range(1,1000000):
  6.    final = f"{x}, Yo vivo en este mundo pero no pertenezco a las leyes de este mundo"
  7.    lista.append(final)
  8.  
  9. fin = time.time()
  10. print(fin-inicio) # 0.2197284698486328
  11.  
Slds. Daniel ☕☕☕
36  Programación / Scripting / Bases de datos utilizando archivo .txt en Python. en: 13 Noviembre 2022, 21:29 pm
Estoy tratando de realizar mi gran sueño que es crear mis propias BD y para ello necesito
alguna ayudita(descarto que alguien me diga «para que reinventar la rueda» gente sueños
son sueños).-
La ayuda es ¿de dónde puedo bajar un archivo con más de 100.000 registros y un ancho
de por lo menos unas 40 caracteres, cada uno?
Para hacerme enter mejor, lo que quiero medir (en tiempo) cuanto tarda en mostrar un
registro(por ej. el 100.000) ordenado y cuanto tarda sin ordenar (esto desde una lista,
por supuesto).-
Bueno es todo y desde ya muchas gracias por el tiempo que le dediquen.-

Slds. Daniel ☕☕☕
37  Programación / Scripting / wait windows para tkinter... en: 27 Octubre 2022, 02:05 am
Hola gente, ¿cómo están? Bueno ahora hago un cambio de rol,
vengo a traerles un aporte, lo que ocurre es que estuve estudiando
bastante(hace ya mucho tiempo) VFP y en ese lenguaje se utilizaba
muchísimo, pero muchísimo una wait windows y en python por más
que busco no encuentro nada parecido.-
Lo dejo a vuestra consideración y cualquier aporte o crítica será
bien venida.-
 
Código
  1. import tkinter as tk
  2. from tkinter import ttk
  3. from functools import partial
  4.  
  5. def cerrar(*waitVentana):
  6.    waitVentana[0].destroy()
  7.  
  8.  
  9. def posicionarVentana(root):
  10.    ventanaRaiz = root.geometry()
  11.    ventanaRaiz = ventanaRaiz.replace('x', ',')
  12.    ventanaRaiz = ventanaRaiz.replace('+', ',')
  13.    dimPos = ventanaRaiz.split(',')
  14.  
  15.    xInicio = int(dimPos[0]) + int(dimPos[2])
  16.    yAlto = int(dimPos[3]) -50
  17.  
  18.    return xInicio, yAlto
  19.  
  20. def ventanaMensaje(texto, root):
  21.    posicion = posicionarVentana(root)
  22.    mensaje = texto
  23.    waitVentana = tk.Toplevel(root)
  24.    waitVentana.geometry('+%d+%d' % (posicion[0], posicion[1]))
  25.    waitVentana.overrideredirect(1)
  26.    waitVentana.grab_set()
  27.    waitVentana.focus_set()
  28.  
  29.    waitVentana.bind('<Escape>', partial(cerrar, waitVentana))
  30.  
  31.    frame = ttk.Frame(waitVentana)
  32.    frame.pack()
  33.    label = tk.Label(frame, text=mensaje,
  34.        font=("vardana", 14), borderwidth=6, relief="ridge")
  35.    label.pack()
  36.  
  37.    waitVentana.after(5000, waitVentana.destroy)
  38.    frame.after(5000, frame.destroy)
  39.  

Código
  1. def ventanaMensaje(texto, root):

Esta es la función principal y hay que pasarle el texto a mostrar
y el nombre de la ventana que la invoca para darle una posición
relativa.-

Slds. Daniel ☕☕☕
38  Programación / Scripting / Re: Que todos los entry dentro de un frame sean readonly en tkinter. en: 22 Octubre 2022, 15:41 pm
Hola rey, ¿cómo estás?.-
En cuanto a tus recomendaciones (que agradezco muchísimo), la uno la estoy
intentando, pero lo que ocurre (y en esto va involucrada la segunda) es que
necesitaba hacer un programa(para mí) donde voy a llevar la estadística del
aumento de precios de 20 productos y 5 servicios y como supondrás no puedo
esperar a tener conocimiento de pyqt5 para hacerlo.-
Ahora me creas dudas, yo tengo instalado pyqt6 y te leo diciendo que no
hay demasiados ejemplos, luego de terminar el programa actual veré como sigo.-

Slds. Daniel ☕☕☕
39  Programación / Scripting / Re: Que todos los entry dentro de un frame sean readonly en tkinter. en: 21 Octubre 2022, 20:54 pm
Que paso rey, tanto esperar tu código que nunca apareció jajajajaja.-
Te respondo, tenés que considerar que hay cosas que vos das por sentadas
por tus vastos conocimientos, yo recién me inicio y hay cosas que ni
utilizando el criterio aplicado al lenguaje me cae la ficha,-
En cuanto al código que encontré en otro foro era un for y tenía más líneas
que si tratara los entry uno a uno.-

Slds. Daniel ☕☕☕
40  Programación / Scripting / Re: Que todos los entry dentro de un frame sean readonly en tkinter. en: 21 Octubre 2022, 02:04 am
Gracias Dani, dejo lo que logre, para ayudarlos a entender, les aclaro
que todas las veces que necesito pasar muchos parámetros a las
funciones los pongo a todos en una lista y este es el código.-

Código
  1.    # lista para pasar los parametros a funciones.
  2.    parametros = []
  3.    parametros.append(servicios)          #  [0] Ventana
  4.    parametros.append(combo_mes)          #  [1] Mes.
  5.    parametros.append(combo_anio)         #  [2] Año.
  6.    parametros.append(caja_entrys)        #  [3] Frame Label y Entrys.
  7.    parametros.append(entrada_epe_monto)  #  [4] EPE monto.
  8.    parametros.append(entrada_epe_kwh)    #  [5] EPE kwh.
  9.    parametros.append(entrada_gas_monto)  #  [6] GAS monto.
  10.    parametros.append(entrada_gas_M3)     #  [7] GAS M3.
  11.    parametros.append(entrada_comuna)     #  [8] Comuna.
  12.    parametros.append(entrada_ceodal)     #  [9] Ceodal.
  13.    parametros.append(entrada_cable)      # [10] Cable Max.
  14.    parametros.append(caja_botones)       # [11] Frame botones.


Código
  1. def agregar(parametros):
  2.    parametros[11].place_forget()
  3.  
  4.    # Activar todos los entrys.
  5.    indice = 4
  6.    while indice < 11:
  7.        parametros[indice].config(state=tk.NORMAL)
  8.        indice += 1

Slds. Daniel ☕☕☕
Páginas: 1 2 3 [4] 5 6 7 8 9 10 11
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines