Problema de Unicode

Resuelto
Pr.Witherfire Mensajes publicados 84 Estado Miembro -  
mamiemando Mensajes publicados 33228 Fecha de registro   Estado Moderador Última intervención   -

Hola

Tengo un problema para la restitución de un .yg

 "C:\Program Files\Python311\python.exe" C:\Users\Gwenneg\PycharmProjects\pickle2\main.py    File "C:\Users\Gwenneg\PycharmProjects\pickle2\main.py", line 7     fil=open("C:\Users\Gwenneg\PycharmProjects\pythonProject1\saved.yg","rb")                                                                        ^ SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape Process finished with exit code 1


Merci


6 respuestas

  1. Phil_1857 Mensajes publicados 1883 Fecha de registro   Estado Miembro Última intervención   169
     

    Hola,

    No se utiliza pickle de esa forma: no se hace pickle.dump(), luego se abre y se escribe en

    el archivo; se vierte directamente:

     with open('saved.yg','wb') as fo: pickle.dump(saved, fo) 

    Y para la lectura:

     with open('saved.yg','rb') as fo: saved = pickle.load(fo)
    1
  2. mamiemando Mensajes publicados 33228 Fecha de registro   Estado Moderador Última intervención   7 940
     

    Hola,

    Con respecto a tu respuesta #2, nunca he visto una extensión yg (pkl me parece más natural), pero why not.

    Luego, como complemento a la respuesta de Phil_1857 #3, aquí tienes cómo puedes hacerlo.

    Código :

    import pickle from types import ModuleType def save_all(filename: str): with open(filename, "wb") as f: g = { k : v for (k, v) in globals().items() if ( not (k.startswith("__") and k.endswith("__")) and not callable(v) and not isinstance(v, ModuleType) ) } pickle.dump(g, f) def load_all(filename: str): with open(filename, "rb") as f: for (k, v) in pickle.load(f).items(): globals()[k] = v # Preparar el filename del pickle filename = "toto.pkl" a = 1234567 print(f"saving {filename}") save_all("toto.pkl") # Eliminar la variable global "a" print("del a") del a try: print(f"a = {a}") except Exception as e: print(e) # Cargar el pickle print(f"loading {filename}") load_all(filename) print(f"a = {a}") 

    Resultado

     saving toto.pkl del a name 'a' is not defined loading toto.pkl a = 1234567

    Bonne chance

    1
  3. mamiemando Mensajes publicados 33228 Fecha de registro   Estado Moderador Última intervención   7 940
     

    Hola,

    La pregunta es demasiado vaga.

    1. ¿Qué es un archivo yg?
    2. ¿Cómo lo creaste?
    3. ¿Cómo intentas abrirlo?

    Buena suerte

    0
  4. Pr.Witherfire Mensajes publicados 84 Estado Miembro
     

    Hello

    1. Es una extensión de archivo binario

    2. Lo hice gracias al siguiente código:

    import pickle def sauvonstout(): globs = list(globals()) saved = [] for v in globs: d = globals()[v] t = (str(type(d))) if t != "<class 'module'>" and t !="<class 'function'>": saved.append((v,pickle.dumps(d))) bytessaved = pickle.dumps(saved) fil = open("saved.yg","wb") fil.write(bytessaved) fil.close() a=1234567 sauvonstout()

    3. Gracias al siguiente código:

    import pickle def restore(pb): b = pickle.loads(pb) for n, p in b: v = pickle.loads(p) globals()["yg"+n] = pickle.loads(p) fil = open("saved.yg","rb") pb = fil.read() restore(pb) print(yga)
    0
  5. Pr.Witherfire Mensajes publicados 84 Estado Miembro
     

    Ok, gracias. Sobre el archivo yg, a mí también me gustaba verlo. Hice mi código basado en una respuesta de yg_be. Por lo tanto, me pregunto si no es un formato que él creó... Gracias


    0
    1. mamiemando Mensajes publicados 33228 Fecha de registro   Estado Moderador Última intervención   7 940
       

      Jaja, tal vez sea una forma de firmar su obra; habrá que preguntarle ;-) Pero bueno, ".pkl" me parece más expresivo ;-)

      0
    2. yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención   1 588 > mamiemando Mensajes publicados 33228 Fecha de registro   Estado Moderador Última intervención  
       

      Sin inspiración, tomé el primer nombre que se me ocurrió.

      0
    3. mamiemando Mensajes publicados 33228 Fecha de registro   Estado Moderador Última intervención   7 940 > yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención  
       

      Lo más gracioso es que cuando vi la extensión, pensé: "yg, yg... mmmh aparte de yg_be no me dice nada en absoluto..." :D

      0
    4. Pr.Witherfire Mensajes publicados 84 Estado Miembro > mamiemando Mensajes publicados 33228 Fecha de registro   Estado Moderador Última intervención  
       

      ;)

      0
    5. Pr.Witherfire Mensajes publicados 84 Estado Miembro > yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención  
       

      Genial. No estoy muy puesto en eso, pero eso quiere decir que puedes crear tu propio formato en cualquier momento?!

      0
  6. Pr.Witherfire Mensajes publicados 84 Estado Miembro
     

    Sí, eso parecía funcionar... :)


    0