无法打开 Python 搁置对象
Posted
技术标签:
【中文标题】无法打开 Python 搁置对象【英文标题】:Cannot Open Python Shelve Object 【发布时间】:2016-11-22 18:23:59 【问题描述】:尝试在 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 出于某种原因不喜欢它。
【问题讨论】:
【参考方案1】:该文件路径字符串中的“\t”可能被解释为一个制表符。尝试将文件路径设为原始字符串:
TESTING = shelve.open(r'C:\Users\dtruman\Documents\PROJECTS\testing.dbm','c',writeback=True)
【讨论】:
以上是关于无法打开 Python 搁置对象的主要内容,如果未能解决你的问题,请参考以下文章
Python3 open() 函数-用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError。