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


 


Tema destacado: Personaliza-Escoge el diseño del foro que más te guste.


  Mostrar Mensajes
Páginas: [1] 2 3 4 5 6 7 8 9 10 11 12 13
1  Programación / Scripting / [Python 3]Problema con excepciones en Python en: Ayer a las 17:28
El problema qu tengo, es que cuando quero añadir es que me tira este error:
Código:
  File "/home/n1sendev/Escritorio/TarketakVOS/exe_read.py", line 22, in UnpickleExecutable
    unpickled_obj = load(f)
_pickle.UnpicklingError: invalid load key, ''.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "main.py", line 46, in <module>
    main()
  File "main.py", line 35, in main
    boot_func()
  File "/home/n1sendev/Escritorio/TarketakVOS/boot.py", line 10, in boot_func
    loginMain()       
  File "/home/n1sendev/Escritorio/TarketakVOS/login.py", line 44, in loginMain
    maincmd()
  File "/home/n1sendev/Escritorio/TarketakVOS/usr_shell.py", line 62, in maincmd
    UnpickleExecutable(cmd_input)
  File "/home/n1sendev/Escritorio/TarketakVOS/exe_read.py", line 24, in UnpickleExecutable
    except pickle.UnpicklingError as pic_errno1:
NameError: name 'pickle' is not defined

Intente que se evitara eso con un try-except. En este caso, el error que quero evitar es el de _pickle.UnpicklingError,
pero como se ve, me dice que pickle no esta definido.
Aca les dejo un fragmento del codigo:
Código
  1. try:
  2.    unpickled_obj = load(f)
  3.     ReadExecutebleIns(unpickled_obj, path)
  4. except pickle.UnpicklingError as pic_errno1:
  5.    print("!Invalid binary: %s" % pic_errno1)
  6.  
Tambien intente poner _pickle.UnpicklingError pero aun sigue el problema
Saludos!
2  Programación / Scripting / Problemas... en: 7 Diciembre 2017, 01:16
Pues, eso vengo a molestar otra vez, con otro problema:
Resulta que he estado programando una "especie de formato ejecutable"
y este ejecutable se guarda serializado en un archivo.
La cosa es que ya vine a preguntar como resolver un problema que tenia con otro codigo. ([Python3]Unir dos listas en una)
Resulta que ese era un "compilador" para compilar codigo de una especie de "assembler" que cree para que se convierta en este ejecutable.
Tengo un archivo llamado "exe_read.py" que lee este fichero ejecutable que cree.

Y el problema?

Resulta que el modulo pickle, solo toma objetos para serializar de listas, y no de archivos, asi que tuve que hacer este "compilador"
Código:
;TarketakVOS Assembler
STR_PRINT "Hola mundo!"
DIV("El numero 5 en 5 cabe:", 5, 5)
INT("test", "54")
Ese es el assembler que cree

Cuando "compilo" este archivo con el "compilador", compila, pero al ejecutarlo con el archivo "exe_read.py" no ejecuta.
Sin embargo, si envez de usar este compilador que lee las instrucciones de un archivo envez de una lista, cree este script.
Código
  1. from _pickle import dump, dumps, load, loads
  2.  
  3. obj = ['STR_PRINT "Hola mundo"', 'DIV("El numero 5 en 5 cabe:", 5, 5)', 'INT("test", "54")']
  4.  
  5. with open("e.cex", "wb") as f:
  6.    dump(obj, f)
  7.  
  8.  

Lo "compila", y... sorpresa! cuando lo ejecuto con el archivo "exe_read.py" funciona.
Espero que me hayan entendido.
Les dejo el codigo de los scripts mencionados:

exe_read.py:
Código
  1. from _pickle import dump, dumps, load, loads
  2. from system_instr import *
  3. import sys
  4. import os
  5.  
  6. global os_name
  7. os_name = os.name
  8.  
  9.  
  10. def UnpickleExecutable(filepath):
  11.    try:
  12.        try:
  13.            file = filepath.split("'")
  14.            path = file[1]
  15.        except IndexError:
  16.            file = filepath.split('"')
  17.            path = file[1]
  18.  
  19.        with open(path, "rb") as f:
  20.            #Los archivos executables .cex son creados y leidos con _pickle en binario
  21.            unpickled_obj = load(f)
  22.            ReadExecutebleIns(unpickled_obj, path)
  23.  
  24.    except FileNotFoundError:
  25.        print("File not founded.")
  26.    except IndexError:
  27.        print("Usage: exe 'executable.cex'")
  28.  
  29. def ReadExecutebleIns(unpickled_obj, filename):
  30.    #Esta funcion lee las instrucciones extraidas del ejecutable
  31.    for EXEOBJ in unpickled_obj:
  32.        print(EXEOBJ)
  33.        if "STR_PRINT" in EXEOBJ: #Mustra en un texto en pantalla
  34.            PRINTSTR = EXEOBJ.split('"')
  35.            Text = PRINTSTR[1]
  36.            print(Text, flush=True)
  37.  
  38.        elif "CMD_PAUSE" in EXEOBJ: #Pausa la consola
  39.            shudder_data = input("Press any key to continue... ")
  40.            shudder_data = None
  41.  
  42.        elif "EXIT" in EXEOBJ: #Sale del programa
  43.            pass
  44.  
  45.        elif "CLEARSCR" in EXEOBJ: #Limpia la pantalla
  46.            if os_name == 'posix':
  47.                os.system("clear")
  48.            elif os_name == 'nt':
  49.                os.system("cls")
  50.            else:
  51.                pass
  52.        elif "ADD" in EXEOBJ:
  53.            exec(EXEOBJ)
  54.  
  55.        elif "SUB" in EXEOBJ:
  56.            exec(EXEOBJ)
  57.  
  58.        elif "MUL" in EXEOBJ:
  59.            exec(EXEOBJ)
  60.  
  61.        elif "DIV" in EXEOBJ:
  62.            exec(EXEOBJ)
  63.  
  64.        elif "DIV_INT" in EXEOBJ:
  65.            exec(EXEOBJ)
  66.  
  67.        elif "PUSH" in EXEOBJ:
  68.            exec(EXEOBJ)
  69.  
  70.        elif ";" in EXEOBJ:
  71.            pass
  72.  
  73.        else: #En caso que haya una intruccion invalida...
  74.            print('!Illegal instruction "%s" in %s' % (EXEOBJ, filename))
  75.  
  76.  
el "compilador":
Código
  1. import os, sys
  2. from _pickle import dump, dumps, load, loads
  3. from system_instr import *
  4.  
  5. def ASM_File(filepath):
  6.    try:
  7.        try:
  8.            file = filepath.split("'")
  9.            path = file[1]
  10.        except IndexError:
  11.            file = filepath.split('"')
  12.            path = file[1]
  13.  
  14.            PRG(path)
  15.  
  16.    except IndexError:
  17.        print("Usage: tkasm 'program.asm'")
  18.  
  19. def PRG(path):
  20.    asm_file_cont = []
  21.    out_file = input("Output file name..: ")
  22.    with open(path, 'r') as inputfile:
  23.        with open(out_file, 'wb') as outputfile:
  24.            for f1 in inputfile:
  25.                f1 = [f1[:-1]]
  26.                asm_file_cont.append(" ".join(f1))#por tu ejemplo lo convierto a cadena
  27.                dump(asm_file_cont, outputfile)  
  28.                                                                 #supogo que es para escribir el contenido en el otro archivo
  29.    print(asm_file_cont)
  30.  
  31.  
y del "assembler" donde estan las instrucciones para este "compilador":
Código:
;TarketakVOS Assembler
STR_PRINT "Hola mundo!"
DIV("El numero 5 en 5 cabe:", 5, 5)
INT("test", "54")

Me ubiese ahorrado todo esto si el modulo pickle hiciera algo tan simple como poder leer de un archivo los objetos a hacer "dump" aparte de solo una lista...
Saludos
3  Programación / Scripting / Re: [python]abrir varias consolas de comandos ejecutando un comando. en: 7 Diciembre 2017, 01:00
Leete la documentacion de Python. Ahi aparace de que se trata ese modulo y de muchos mas
4  Programación / Scripting / Re: [Python 3] Unir dos listas en una en: 7 Diciembre 2017, 00:03
Gracias, funciono. La funcion dump es una funcion del modulo pickle (un modulo para serializar objetos)
5  Programación / Scripting / Re: [Python 3] Unir dos listas en una en: 5 Diciembre 2017, 01:38
Gracias, pero nada me ha servido, ahora me retorna listas vacias. Y aun separadas

Código
  1. def PRG(path):
  2.    out_file = input("Output file name..: ")
  3.    with open(path, 'r') as inputfile:
  4.        with open(out_file, 'wb') as outputfile:
  5.            for f1 in inputfile:
  6.                asm_file_cont = []
  7.                f1 = [f1[:-1]]
  8.                asm_file_cont + f1
  9.                dump(asm_file_cont, outputfile)
  10.                print(asm_file_cont)
6  Programación / Scripting / [Python 3] Unir dos listas en una en: 4 Diciembre 2017, 02:40
Vengo a preguntar como unir dos listas en una, he intentado con .join y .append pero no ha funcionado.
Tengo esta lista:
Código:
['STR_PRINT "Hola mundo!"']
['DIV("VOID", 5, 5)']
['INT("test", "54")']
['']

Como se ve, cada linea esta en una lista distinta. (se esta leyendo de un archivo)
Deberia estar asi:
Código:
['STR_PRINT "Hola mundo!"', 'DIV("El numero 5 en 5 cabe:", 5, 5)', 'INT("test", "54")']
Aca tengo un fragmento del codigo que me genera problema:
Código
  1. def PRG(path):
  2.    out_file = input("Output file name..: ")
  3.    with open(path, 'r') as inputfile:
  4.        with open(out_file, 'wb') as outputfile:
  5.            for f1 in inputfile:
  6.                asm_file_cont = [f1[:-1]] #El [:-1] es para quitar el salto de linea
  7.                dump(asm_file_cont, outputfile)
  8.                print(asm_file_cont)
  9.  
Saludos
7  Programación / Scripting / Re: [Python 3]Saber codificacion de un archivo de texto en: 3 Diciembre 2017, 19:07
Lo se, pero cuales son esas librerias?
8  Programación / Scripting / [Python 3]Saber codificacion de un archivo de texto en: 3 Diciembre 2017, 17:01
Alguien sabe como se puede saber la codificacion de un archivo de texto, por ejemplo si es ASCII UTF-8 o binario
He buscado en internet pero nada me sirve
Saludos!
9  Foros Generales / Foro Libre / Re: EEUU y Corea del Sur preparan un gran despliegue aéreo tras el lanzamiento en: 3 Diciembre 2017, 16:44
Si seguimos asi, estaremos condenados. O ya lo estamos?
10  Foros Generales / Foro Libre / Re: ¿Quieres saber como evitar cualquier Captcha de cualquier página en tu navegador en: 30 Noviembre 2017, 02:46
Que buena herramienta, peeero tenia que ser de paga. Vaya que forma de aprovecharse de la gente, al ser una herramienta invovadora.
Yo que no tengo forma de pagar por internet...
Páginas: [1] 2 3 4 5 6 7 8 9 10 11 12 13
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines