J'ai parcouru les informations fournies par les documents Python , mais je suis toujours un peu confus. Quelqu'un pourrait-il publier un exemple de code qui écrirait un nouveau fichier, puis utiliser pickle pour y vider un dictionnaire?
python
dictionary
pickle
Chachmu
la source
la source
Réponses:
Essaye ça:
la source
pickle.HIGHEST_PROTOCOL
?__slots__
). Je ne dis pas que vous devriez toujours utiliserHIGHEST_PROTOCOL
, mais vous assurer que vous n'utilisez pas le protocole 0 ou 1 est en fait assez important.pickle.HIGHEST_PROTOCOL
réellement?L'avantage
HIGHEST_PROTOCOL
est que les fichiers deviennent plus petits. Cela rend le décapage parfois beaucoup plus rapide.Remarque importante : La taille maximale du fichier de cornichon est d'environ 2 Go.
Voie alternative
Formats alternatifs
Pour votre application, les éléments suivants peuvent être importants:
Voir aussi: Comparaison des formats de sérialisation des données
Dans le cas où vous cherchez plutôt un moyen de créer des fichiers de configuration, vous voudrez peut-être lire mon court article Fichiers de configuration en Python
la source
la source
En général, le décapage d'un
dict
échouera sauf si vous n'avez que des objets simples, comme des chaînes et des entiers.Même un très simple
dict
échouera souvent. Cela dépend simplement du contenu.Cependant, si vous utilisez un meilleur sérialiseur comme
dill
oucloudpickle
, la plupart des dictionnaires peuvent être décapés:Ou si vous souhaitez enregistrer votre
dict
fichier dans un fichier ...Ce dernier exemple est identique à toutes les autres bonnes réponses publiées ici (qui, en plus de négliger la picklabilité du contenu du,
dict
sont bonnes).la source
normalement, il est préférable d'utiliser l'implémentation cPickle
la source
Si vous voulez simplement stocker le dict dans un seul fichier, utilisez
pickle
comme çaSi vous souhaitez enregistrer et restaurer plusieurs dictionnaires dans plusieurs fichiers pour la mise en cache et stocker des données plus complexes, utilisez anycache . Il fait tout le reste dont vous avez besoin
pickle
Anycache stocke les différents
myfunc
résultats en fonction des arguments des différents fichierscachedir
et les recharge.Voir la documentation pour plus de détails.
la source
Un moyen simple de vider une donnée Python (par exemple un dictionnaire) dans un fichier pickle.
la source
la source
J'ai trouvé le décapage déroutant (peut-être parce que je suis épais). J'ai trouvé que cela fonctionne, cependant:
Que vous pouvez ensuite écrire dans un fichier texte. J'ai renoncé à utiliser des cornichons car je recevais des erreurs me disant d'écrire des entiers dans un fichier .dat. Je m'excuse de ne pas avoir utilisé de cornichons.
la source
dict
de contenir davantage de profondeur d'objets (qui peuvent être imprimés uniquement par nom) et / ou des objets sans aucune représentation de chaîne complète.