2016-11-22 11 views
1

Pythonでshelve(s)を使用しようとすると、多くの問題が発生します。Pythonシェルフオブジェクトを開くことができません

私はちょうど良い瞬間前に新しい棚* .dbmオブジェクトを作成することができたが、今、私はエラーを取得しています:

import shelve 
TESTING = shelve.open('C:\Users\dtruman\Documents\PROJECTS\testing.dbm','c',writeback=True) 

Pythonは、次の不可解なエラーを返します:

Traceback (most recent call last): 
    File "<pyshell#7>", line 1, in <module> 
    TESTING = shelve.open('C:\Users\dtruman\Documents\PROJECTS\testing.dbm','c',writeback=True) 
    File "C:\Program Files (x86)\Python_2-7-11\lib\shelve.py", line 243, in open 
    return DbfilenameShelf(filename, flag, protocol, writeback) 
    File "C:\Program Files (x86)\Python_2-7-11\lib\shelve.py", line 227, in __init__ 
Shelf.__init__(self, anydbm.open(filename, flag), protocol, writeback) 
    File "C:\Program Files (x86)\Python_2-7-11\lib\anydbm.py", line 85, in open 
return mod.open(file, flag, mode) 
    File "C:\Program Files (x86)\Python_2-7-11\lib\dbhash.py", line 18, in open 
return bsddb.hashopen(file, flag, mode) 
    File "C:\Program Files (x86)\Python_2-7-11\lib\bsddb\__init__.py", line 364, in hashopen 
d.open(file, db.DB_HASH, flags, mode) 
DBError: (14, 'Bad address') 

私は非常に簡単な操作を実行しようとしているようですが、何らかの理由でPythonがそれを好きではありません。

答えて

0

ファイルパス文字列の "\ t"はおそらくタブとして解釈されています。ファイルパスを生の文字列にしてみてください:

TESTING = shelve.open(r'C:\Users\dtruman\Documents\PROJECTS\testing.dbm','c',writeback=True) 
関連する問題