2010-12-25 4 views
22

Ciao sto cercando con il prossimo pezzo di codice:Python: salvataggio di oggetti e utilizzo di pickle. estensione del nome del file

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

Vorrei sapere quello che dovrebbe essere l'estensione del file 'filename'. Grazie!

+0

filename rappresenta qualsiasi valore (stringa), è possibile scegliere l'estensione. Per esempio. "mypickle.pickle" – gimel

+10

non importa. Sei libero di scegliere qualsiasi nome file o estensione. Ma generalmente .pkl o .pickle viene utilizzato per la leggibilità. – easysid

risposta

8

Dipende da cosa si desidera fare con il file.

filename dovrebbe essere sufficiente.

E non utilizzare object come identificativo. Ombre l'integrato object.

+1

Sì, so che "oggetto" è l'istantanea. – Peterstone

+9

@Peterstone: Python ha un * tipo * integrato denominato 'oggetto'. Hai una variabile con lo stesso nome che nasconde questo e qualsiasi riferimento a 'object' accederà a qualcosa di inaspettato. – martineau

+0

Manca l'estensione potrebbe sembrare poco professionale per gli utenti di Windows –

11

Un'altra cosa che si dovrebbe prestare attenzione a:

si dovrebbe utilizzare la modalità binaria con il funzionamento dei file di decapaggio. Quindi "w" dovrebbe essere "wb".

+2

Questa non è una risposta –

25

È possibile utilizzare qualsiasi filename, ma come FYI è comune utilizzare ".p" (per ovvi motivi).

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

Leggi: UsingPickle

+0

Sembra che sarebbe molto utile per salvare il tipo di oggetto nel nome del file troppo, ad esempio. 'MPLplots.Figure.p' o' Data.list.p' o 'Data.nparray.p' – Demis

+0

È obbligatorio o una convenzione? – john

+0

@john convention - altre risposte menzionano .pkl o .pickle quindi suppongo che non sia così forte di una convenzione. –