web-dev-qa-db-fra.com

Dois-je utiliser Pickle ou cPickle?

Python possède les modules pickle et cPickle pour la sérialisation.

cPickle a un avantage évident sur pickle: vitesse. Quel est, le cas échéant, l’avantage de pickle sur cPickle?

39
user200783

Le module pickle implémente un algorithme pour transformer un objet arbitraire Python en une série d'octets. Ce processus est également appelé sérialisation "de l'objet. Le flux d'octets représentant l'objet peut ensuite être transmis ou stocké, puis reconstruit pour créer un nouvel objet avec les mêmes caractéristiques.

Le module cPickle implémente le même algorithme, dans [~ # ~] c [~ # ~] au lieu de Python. Il est beaucoup plus rapide que l'implémentation Python, mais ne permet pas à l'utilisateur de sous-classer à partir de Pickle. Si le sous-classement n'est pas important pour votre utilisation, vous voudrez probablement utiliser cPickle.

Source des informations ci-dessus.

44
rkatkam

J'ai trouvé ceci concernant le cornichon et le cPickle:

"Le module pickle implémente un algorithme pour transformer un objet arbitraire Python en une série d'octets ....

Le module cPickle implémente le même algorithme, en C au lieu de Python. C'est plusieurs fois plus rapide que l'implémentation Python, mais ne permet pas l'utilisateur de sous-classe de Pickle.

Si le sous-classement n'est pas important pour votre utilisation, vous souhaiterez probablement utiliser cPickle. "

Source: https://pymotw.com/2/pickle/

7
Charlton Lane