前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python 自制文件存储数据库

python 自制文件存储数据库

作者头像
用户5760343
发布2022-05-13 17:15:58
9010
发布2022-05-13 17:15:58
举报
文章被收录于专栏:sktj
代码语言:javascript
复制
make_db_file.py
"""
 Save in-memory database object to a file with custom formatting;
 assume 'endrec.', 'enddb.', and '=>' are not used in the data;
 assume db is dict of dict;  warning: eval can be dangerous - it
 runs strings as code;  could also eval() record dict all at once;
 could also dbfile.write(key + '\n') vs print(key, file=dbfile);
 """
dbfilename = 'people-file'
 ENDDB  = 'enddb.'
 ENDREC = 'endrec.'
 RECSEP = '=>'
def storeDbase(db, dbfilename=dbfilename):
 "formatted dump of database to flat file"
 dbfile = open(dbfilename, 'w')
 for key in db:
 print(key, file=dbfile)
 for (name, value) in db[key].items():
 print(name + RECSEP + repr(value), file=dbfile)
 print(ENDREC, file=dbfile)
 print(ENDDB, file=dbfile)
 dbfile.close()
def loadDbase(dbfilename=dbfilename):
 "parse data to reconstruct database"
 dbfile = open(dbfilename)
 import sys
 sys.stdin = dbfile
 db = {}
 key = input()
 while key != ENDDB:
 rec = {}
 field = input()
 while field != ENDREC:
 name, value = field.split(RECSEP)
 rec[name] = eval(value)
 field = input()
 db[key] = rec
 key = input()
 return db
if name == 'main':
 from initdata import db
 storeDbase(db)
代码语言:javascript
复制
###############people-file
 bob
 pay=>30000
 job=>'dev'
 age=>42
 name=>'Bob Smith'
 endrec.
 sue
 pay=>44000.0
 job=>'hdw'
 age=>45
 name=>'Sue Jones'
 endrec.
 tom
 pay=>0
 job=>None
 age=>50
 name=>'Tom Tom'
 endrec.
 enddb.

读取

代码语言:javascript
复制
from make_db_file import loadDbase
 db = loadDbase()
 for key in db:
 print(key, '=>\n  ', db[key])
 print(db['sue']['name'])

更新

代码语言:javascript
复制
from make_db_file import loadDbase, storeDbase
 db = loadDbase()
 db['sue']['pay'] *= 1.10
 db['tom']['name'] = 'Tom Tom'
 storeDbase(db)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-05-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 读取
  • 更新
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档