não foi possível determinar o tipo de arquivar db, qualdb não está reconhecendo gdb
Por que shelve gera um erro se eu tentar abrir um arquivo criado por shelve?
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()
Estou executando o python 2.5 caso seja relevante
O erro exato está aumentando é:
db type could not be determined
é criado poranydbm.py
open
método.
Eu sei; está usando gdbm. Eu verifiquei o arquivo whichdb.py e ele tenta identificar os arquivos gdbm com este
# 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"
Mas o número "mágico" no meu arquivo é324508367
(0x13579acf
) (apenas o último dígito muda !!)
Tentei abrir o arquivo com outro idioma (ruby) e consegui abri-lo sem nenhum problema, portanto isso parece ser um bug no qualdb.py tentando identificar o dbm correto