使用跨平台的python

2024-05-15 20:41:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望得到一些关于Python中的书架/数据库的建议。在

问题:我在mac上创建了一个数据库,我想在Windows7上使用它。我使用python3.2、macos10.7和win7。在

当我打开并把书架放在mac上时,一切都很好。我得到了一个扩展名为“.db”的文件。在我的windows python上无法识别。不过,我可以在pc上创建一个新的数据库,并获得扩展名为“.bak,dat,.dir”的文件。在

我猜pc上的python与macpython使用的底层数据库不同?在

我不确定哪种方法是正确的,但也许我可以:

更改我的系统使用的默认数据库? 找出我的mac python使用哪个数据库并将其添加到pc上? 改变我存储数据的方式?在

速度不是问题,数据大小只有几兆字节,而且访问频率不高。在

希望能在那里找到一个帮手。提前谢谢-任何帮助都将不胜感激。在

/埃斯本

我在做什么:

Import shelve
db = shelve.open('mydb')
entries = db['list']
db.close

很直截了当,我有一个正在工作的数据库文件,名为“马来西亚第纳尔“在mac上,但当我尝试在pc python上打开它时,我得到:

回溯(最近一次呼叫): 文件“/库/框架/Python.framework/Versions/3.2/lib/python3.2/dbm/init.py”,第107行,其中 f=io.打开(文件名+“.pag”,“rb”) IOError:[Errno 2]没有这样的文件或目录:'我的数据库.pag'


Tags: 文件数据数据库dbwindowsmac建议shelve
2条回答

sqlite3模块是一个跨平台的模块,它甚至受到许多其他语言和工具的支持。在

pickle模块比较简单,而且跨平台。你给它一个对象,它将它转储到一个文件中。没有像sqlite那样的表或行。在

谢谢你的回复!在

我似乎python中的shelves不容易被迫使用特定的db,但是pickles的工作方式很有魅力。至少从mac os->windows 7。在

所以简而言之:如果你想要便携,不要用架子,直接用泡菜。在

/埃斯本

相关问题 更多 >