首页 > 数据库技术 > 详细

1-2、make_db_file.py

时间:2017-04-07 01:07:31      阅读:201      评论:0      收藏:0      [点我收藏+]
 1 #-*- coding: UTF-8 -*-   
 2 """
 3 用自定义的格式将内存数据库对象保存到文件中;
 4 假定数据不使用‘endrec.’,‘enddb.‘和‘=》’;
 5 假定数据库是字典的字典;警告:使用eval可能存在危险,它会将字符串当作代码执行;
 6 也可以使用eval()一次创建一条字典记录;
 7 对于print(key,file=dbfile),也可以使用dbfile.write(key + ‘\n‘);
 8 """
 9 
10 
11 dbfilename = people-file
12 ENDDB = enddb.
13 ENDREC = endrec.
14 RECSEP = =>
15 
16 def storeDbase(db, dbfilename=dbfilename):
17     "将数据库格式化保存为普通文件"
18     dbfile = open(dbfilename, w)
19     for key in db:
20         print (key, file=dbfile)
21         for (name,value) in db[key].items():
22             print(name + RECSEP + repr(value),file = dbfile)
23         print(ENDREC, file=dbfile)
24     print(ENDDB, file=dbfile)
25     dbfile.close()
26 
27 def loadDbase(dbfilename = dbfilename):
28     "解析数据,重新构建数据库"
29     dbfile = open(dbfilename)
30     import sys
31     sys.stdin = dbfile
32     db = {}
33     key = input()
34     while key != ENDDB:
35         rec = {}
36         field = input()
37         while field != ENDREC:
38             name,value = field.split(RECSEP)    
39             rec[name] = eval(value)
40             field = input()
41         db[key]= rec
42         key = input()
43     return db
44 
45 if __name__ == __main__:
46     from initdata import db
47     storeDbase(db)

cmd中执行python 1-2、make_db_file.py后,目录下会多出来一个文件和文件夹

技术分享

然后,cmd中执行

python

>>>for line in open(‘people-file‘):

>>>  print(line,end=‘‘)

>>>

会将initdata中的数据打印出来。

1-2、make_db_file.py

原文:http://www.cnblogs.com/wuzhenyang/p/6676024.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!