无法打开 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 搁置对象的主要内容,如果未能解决你的问题,请参考以下文章

使用python搁置跨平台

如何在特定目录中打开 python 搁置文件

Python搁置可以创建但不能打开搁架

无法在 python 中使用 gphoto2 打开相机

Python3 open() 函数-用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError。

phantomjs无法打开共享对象文件