20190218-学习python使用shelve遇到raise error, "db type could not be determined"

照书上敲代码,运行了提示raise error, "db type could not be determined",现场如下:

ubuntu-vm:~/code/massageboard$ python
Python 2.7.6 (default, Nov 13 2018, 12:45:42)
[GCC 4.8.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import shelve
DATA_FILE='guestbook.dat'
>>> DATA_FILE='guestbook.dat'
>>>
>>> def save_data(name,comment,create_at):
... database=shelve.open(DATA_FILE)
... if 'greeting_list' not in database:
... greeting_list=[]
... else:
... greeting_list=database['greeting_list']
... greeting_list.insert(0,{
... 'name':name,
... 'comment':comment,
... 'create_at':create_at,
... })
... database['greeting_list']=greeting_list
... database.close()
...
>>> import datetime
>>> save_data('test','test comment',datetime.datetime(2019,02,18,10,0,0))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 2, in save_data
File "/usr/lib/python2.7/shelve.py", line 239, in open
return DbfilenameShelf(filename, flag, protocol, writeback)
File "/usr/lib/python2.7/shelve.py", line 223, in __init__
Shelf.__init__(self, anydbm.open(filename, flag), protocol, writeback)
File "/usr/lib/python2.7/anydbm.py", line 82, in open
raise error, "db type could not be determined"
anydbm.error: db type could not be determined
>>>

故障排除过程:

ubuntu-vm:~/code/massageboard$ ls
guestbook.dat guestbook.py guestbook.pyc index.html main.css __pycache__
ubuntu-vm:~/code/massageboard$ rm guestbook.dat #删除数据存储文件
ubuntu-vm:~/code/massageboard$ ls
guestbook.py guestbook.pyc index.html main.css __pycache__ ubuntu-vm:~/code/massageboard$ python
Python 2.7.6 (default, Nov 13 2018, 12:45:42)
[GCC 4.8.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import datetime
>>> from guestbook import save_data
>>> save_data('test','test comment',datetime.datetime(2019,02,18,10,0,0))
>>>
上一篇:[转]Python 之 使用 PIL 库做图像处理


下一篇:Python 之 使用 PIL 库做图像处理