Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Python</strong> <strong>para</strong> <strong>todos</strong><br />
<strong>Python</strong> en lugar de en C, como marshal, también es mucho más lento.<br />
La solución, si la velocidad de la serialización es importante <strong>para</strong> nuestra<br />
aplicación, es utilizar cPickle, que no es más que es una implementación<br />
en C de pickle. cPickle es hasta 1000 veces más rápido que<br />
pickle, y prácticamente igual de rápido que marshal.<br />
Si intentamos importar cPickle y se produce un error por algún motivo,<br />
se lanzará una excepción de tipo ImportError. Para utilizar cPickle<br />
si está disponible y pickle en caso contrario, podríamos usar un código<br />
similar al siguiente:<br />
try:<br />
import cPickle as pickle<br />
except ImportError:<br />
import pickle<br />
as en un import sirve <strong>para</strong> importar el elemento seleccionado utilizando<br />
otro nombre indicado, en lugar de su nombre.<br />
La forma más sencilla de serializar un objeto usando pickle es mediante<br />
una llamada a la función dump pasando como argumento el<br />
objeto a serializar y un objeto archivo en el que guardarlo (o cualquier<br />
otro tipo de objeto similar a un archivo, siempre que ofrezca mé<strong>todos</strong><br />
read, realine y write).<br />
try:<br />
import cPickle as pickle<br />
except ImportError:<br />
import pickle<br />
fichero = file(“datos.dat”, “w”)<br />
animales = [“piton”, “mono”, “camello”]<br />
pickle.dump(animales, fichero)<br />
fichero.close()<br />
La función dump también tiene un parámetro opcional protocol que<br />
indica el protocolo a utilizar al guardar. Por defecto su valor es 0, que<br />
utiliza formato texto y es el menos eficiente. El protocolo 1 es más<br />
eficiente que el 0, pero menos que el 2. Tanto el protocolo 1 como el 2<br />
utilizan un formato binario <strong>para</strong> guardar los datos.<br />
114