2010-12-25 20 views
22

Hola Estoy intentando utilizar el siguiente fragmento de código:Python: guardar objetos y usar pickle. la extensión de nombre de archivo

import pickle 
object = Object() 
filehandler = open(filename, 'w') 
pickle.dump(object, filehandler) 

Me gustaría saber cuál debe ser la extensión del archivo 'archivo'. ¡Gracias!

+0

nombre del archivo representa cualquier valor (cadena), se puede elegir la extensión. P.ej. "mypickle.pickle" – gimel

+10

no importa. Usted es libre de elegir cualquier nombre de archivo o extensión. Pero en general, .pkl o .pickle se utilizan para la legibilidad. – easysid

Respuesta

8

Depende de lo que quieras hacer con el archivo.

filename debería ser suficiente.

Y no utilice object como identificador. Sombra el built-in object.

+1

Sí, sé que 'objeto' es la instancia. – Peterstone

+9

@Peterstone: Python tiene un * tipo * incorporado llamado 'objeto'. Usted tiene una variable con el mismo nombre que lo oculta y cualquier referencia a 'objeto' tendrá acceso a algo inesperado. – martineau

+0

Falta la extensión puede parecer poco profesional para los usuarios de Windows –

11

Una cosa más que usted debe prestar atención a:

que debería modo binario utilizado con el funcionamiento de los archivos de decapado. Entonces 'w' debería ser 'wb'.

+2

No es una respuesta –

25

Puedes usar cualquier filename, pero como tu FYI es común usar ".p" (por razones obvias).

pickle.dump(favorite_color, open("save.p", "wb")) 

Leer: UsingPickle

+0

Parece que sería muy útil guardar también el tipo de objeto en el nombre del archivo, por ej. 'MPLplots.Figure.p' o' Data.list.p' o 'Data.nparray.p' – Demis

+0

¿Es obligatorio o convencional? – john

+0

@john convención - otras respuestas mencionan .pkl o .pickle así que supongo que no es tan fuerte como una convención. –

Cuestiones relacionadas