我希望能得到关于Python中的 shelves/数据库的一些建议。
问题:我在Mac上创建了一个数据库,想在Windows 7上使用它。我使用的是Python 3.2、MacOS 10.7和Win 7。
当我在Mac上打开并保存我的 shelve 时一切都很好。我得到一个扩展名为“ .db”的文件。但是在我的Windows-Python上它没有被识别。不过我可以在PC上创建新的数据库,并获得扩展名为“ .bak,dat,.dir”的文件。
我猜测PC上的Python没有与Mac上使用的相同的基础数据库?
我不确定这里应该采取哪种正确的方法,但也许我可以:
改变系统使用的默认数据库? 找出我的Mac-Python使用的数据库并将其添加到PC上? 完全改变我的数据存储方式?
速度不是问题,数据大小只有几兆字节,并且不经常访问。
希望能在这里找到帮助之手。提前致谢 - 任何帮助都会受到高度赞赏。
/ Esben
问题:我在Mac上创建了一个数据库,想在Windows 7上使用它。我使用的是Python 3.2、MacOS 10.7和Win 7。
当我在Mac上打开并保存我的 shelve 时一切都很好。我得到一个扩展名为“ .db”的文件。但是在我的Windows-Python上它没有被识别。不过我可以在PC上创建新的数据库,并获得扩展名为“ .bak,dat,.dir”的文件。
我猜测PC上的Python没有与Mac上使用的相同的基础数据库?
我不确定这里应该采取哪种正确的方法,但也许我可以:
改变系统使用的默认数据库? 找出我的Mac-Python使用的数据库并将其添加到PC上? 完全改变我的数据存储方式?
速度不是问题,数据大小只有几兆字节,并且不经常访问。
希望能在这里找到帮助之手。提前致谢 - 任何帮助都会受到高度赞赏。
/ Esben
Import shelve
db = shelve.open('mydb')
entries = db['list']
db.close
很简单,我在Mac上有一个名为“mydb.db”的工作数据库文件,但是当我尝试在PC-Python上打开它时,我得到了以下错误消息:
Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/dbm/init.py", line 107, in whichdb f = io.open(filename + ".pag", "rb") IOError: [Errno 2] No such file or directory: 'mydb.pag'