Vous devriez être en mesure de vider l'élément pièce par pièce dans le fichier. Les deux questions de conception à régler sont les suivantes:
- Comment construisez-vous l'objet lorsque vous le mettez en mémoire?
- Comment avez-vous besoin de vos données quand elles ne sont plus en mémoire?
Si votre processus de construction remplit l'ensemble du réseau associé à une clé donnée à un moment, vous pourriez jeter la clé: paire de tableau dans un fichier comme un dictionnaire séparé:
big_hairy_dictionary['sample_key'] = pre_existing_array
marshal.dump({'sample_key':big_hairy_dictionary['sample_key']},'central_file')
ensuite sur la mise à jour , chaque appel à marshal.load ('fichier_central') renverra un dictionnaire que vous pourrez utiliser pour mettre à jour un dictionnaire central. Mais cela ne va vraiment être utile que si, lorsque vous avez besoin des données, vous voulez gérer la lecture de "fichier_central" une fois par clé.
Alternativement, si vous peuplez élément de tableaux élément par élément sans ordre particulier, peut-être essayer:
big_hairy_dictionary['sample_key'].append(single_element)
marshal.dump(single_element,'marshaled_files/'+'sample_key')
Ensuite, lorsque vous chargez en arrière, vous ne devez pas nécessairement pour construire le dictionnaire entier pour obtenir de retour ce dont tu as besoin vous appelez marshal.load ('marshaled_files/sample_key') jusqu'à ce qu'il renvoie None, et vous avez tout associé à la clé.
J'ai mis à jour la question. L'objet est assez simple, un dictionnaire de tableaux. Chaque tableau est assez petit.Est-ce que je rassemblerais chaque tableau individuel? Dans le même fichier? – Parand