搁置模块甚至不创建搁置



我是stackoverflow和Python试验的新手,目前只是尝试教程示例。经历了一个美妙的学习曲线,但完全陷入了以下问题(在 Windows 10 下工作(:

import shelve
s = shelve.open("test")
Traceback (most recent call last):
File "C:Program Files (x86)Microsoft Visual StudioSharedPython36_64libdbmdumb.py", line 82, in _create
f = _io.open(self._datfile, 'r', encoding="Latin-1")
FileNotFoundError: [Errno 2] No such file or directory: 'test.dat'

获得一些帮助来解决这个问题会很棒。

在处理上述异常期间,发生了另一个异常:

在Python 3中,默认情况下,shelve.open会尝试打开现有的架子进行读取。如果 if 尚不存在,则必须传递显式标志才能创建新工具架。

s = shelve.open("test", "c")

这与Python 2形成鲜明对比,其中默认标志"c"而不是"r"

如何阅读错误消息

通常,错误消息会尽力告诉您出了什么问题。对于 python,您通常会从底部开始;这里

没有这样的文件或目录:"测试.dat">

确切地告诉您抛出错误的原因:test.dat 不存在。

接下来,您将向上阅读堆栈跟踪,直到我们找到我们理解或最近编写的内容,然后我们尝试从那里理解错误消息。

如何排查错误

  • 所述问题是否可理解
    • 是的,我们要求软件对一个名为"test"的(.dat?(文件执行某些操作,因此我们至少知道错误消息到底在什么。
  • 我们是否同意错误的基本前提?
    • 具体来说,test.dat是否存在是否重要是否有意义?切普纳涵盖了这一点。
  • 我们是否同意上述具体问题?
    • 例如,当实际上有这样的文件时,收到这样的错误消息一点也不奇怪。然后我们会有一个更具体的问题:"为什么软件找不到文件?这就是进步。
    • (通常答案是"因为它找错了地方"或"因为它没有访问该文件的权限"。
  • 阅读相关工具和函数的文档。
  • 我们如何验证我们自己对情况的理解,或者错误消息中描述的情况?
    • 根据上下文,这可能涉及重写代码的一些试验和错误
      • 打印(记录(其在执行期间的状态
      • 做一些类似但与它正在做的事情不同的事情,我们更确定应该有效。
      • 做一些类似但与它正在做的事情不同的事情,我们更确定这应该行不通。
  • 寻求帮助。

似乎搁置有时使用 dumbdbm 进行序列化。

使用 dbm改用 dbm:

import dbm
with dbm.open($filename, 'n') as db:
# read/write

最新更新