shelve db type konnte nicht ermittelt werden, welche db gdb nicht erkennt

Warum löst Shelve einen Fehler aus, wenn ich versuche, eine Datei zu öffnen, die gerade von Shelve erstellt wurde?

import shelve
info_file_name = "/Users/bacon/myproject/temp/test.info"

info_file = shelve.open(info_file_name)
info_file['ok'] = 'wass'
info_file.close()

info_file = shelve.open(info_file_name) # raise exception db type could not be determined..
info_file.close()

Ich führe Python 2.5 aus, falls dies relevant ist

Der genaue Fehler ist der folgende:

db type could not be determined its ausgelöst durchanydbm.py open Methode

Ich weiß, es benutzt gdbm. Ich habe die whichdb.py-Datei überprüft und sie versucht, gdbm-Dateien mit diesem @ zu identifiziere

 # Read the start of the file -- the magic number
s16 = f.read(16)
s = s16[0:4]

# Convert to 4-byte int in native byte order -- return "" if impossible
(magic,) = struct.unpack("=l", s)

# Check for GNU dbm
if magic == 0x13579ace:
    return "gdbm"

Aber die "magische" Nummer in meiner Datei ist324508367 (0x13579acf) nur die letzte stellige Änderung !!)

Ich habe versucht, die Datei mit einer anderen Sprache (Ruby) zu öffnen, und konnte sie problemlos öffnen. Dies scheint also ein Fehler in der Datei whichdb.py zu sein, der versucht, die richtige Datenbank zu identifizieren.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage