2010-09-16 9 views
5

Ich implementiere ein Unix-Userland-Tool, das einen Hash auf der Festplatte speichern muss. Der Hash wird bei jeder Ausführung des Programms ziemlich häufig gelesen. Der Hash muss nur "name: path" -Werte speichern.Effiziente Möglichkeit, Wörterbuch (Hash) in Datei mit Python zu speichern?

Ich schaute auf die bsddb Standard-Bibliothek-Modul für Python, aber ich kann sehen, es wird in Python 3 veraltet sein. Ich sah auch die pickle Standard-Bibliothek-Modul.

Ich bin kein Python-Typ, also was ist der effiziente Weg für Hash-Serialisierung und häufige Öffnen/Lesen/Schließen-Operationen?

Antwort

4

Ich würde mit dem shelve Modul beginnen und sehen, ob das nicht zu langsam ist. Es macht genau das, was du willst.

import shelve 

d = shelve.open('filename') 

d['name'] = 'path' 

d.close() 

oder von ihm

d = shelve.open('filename') 

d = hash['name'] 

Es ist im Wesentlichen ein Wrapper um Beize zu lesen, die ein Wörterbuch Abstraktion zur Verfügung stellt.

+0

+1 Cool, noch nie von diesem Modul gehört. -0.1 für Shadowing "Hash", obwohl. : o) ... ok, das wurde jetzt entfernt. –

+0

@Jellybean, etwas sah für mich falsch aus. änderte es zu "d", um die Tatsache widerzuspiegeln, dass es im Wesentlichen ein Diktat ist. gut aussehend. – aaronasterling

0

Ich würde Pickle verwenden und sehen, ob es schnell genug für Ihre Bedürfnisse ist.

Verwandte Themen