文件编辑和保存

时间:2013-12-19 14:44:51

标签: python file-io save editing

我的(python)应用程序将文件加载到内存中,让用户对数据进行增量编辑/保存。数据主要是键/值对,因此我考虑使用JSON来表示信息。应用程序将是用户访问数据的唯一方法,因此存储数据的确切格式仅由应用程序设计驱动。文件大小永远不会变得太大,因此内存不足也不是限制因素。每次用户决定“保存”时,是否有更好的方法将信息保存到磁盘而不是完全擦除旧文件并写入新数据?

1 个答案:

答案 0 :(得分:2)

每次要保存时,都必须将对象转换为JSON并写入磁盘。您可能想要调查shelve是否可以满足您的需求。您可以使用字符串作为键将字典保存到磁盘,并根据需要更新特定的键...

import shelve
db = shelve.open('data.db')
print db['keyname']
db['keyname'] = 'some new user data'
db.sync()
db.close()

shelve的主要优点是易于使用。缺点包括使用大文件访问速度慢,缺乏跨系统兼容性以及无法信任来自第三方来源的文件。因此,如果希望用户通过电子邮件发送文件或通过网络共享内容,shelve将不是一个安全的选择。