Problema de Unicode
ResueltoHola
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
-
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) -
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 = 1234567Bonne chance
-
Hola,
La pregunta es demasiado vaga.
- ¿Qué es un archivo yg?
- ¿Cómo lo creaste?
- ¿Cómo intentas abrirlo?
Buena suerte
-
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) -
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
-